gentoo 安装笔记
来源:互联网 发布:手指脱皮 知乎 编辑:程序博客网 时间:2024/05/22 03:22
本此安装主要根据gentoo 官方wiki.用virtual box 安装.
1.从gentoo官方下载minimal 的livecd.
2.在virtual box中新建一个虚拟电脑,并加载gentoo minimal 的livecd.
3.启动虚拟电脑,在启动提示符下,用户可以按 F1 按键显示可用的内核.
boot:
gentoo
然后回车即可.
按 F2 按键显示可用的启动选项。我这里没有采用启动选项.
4.进入gentoo 的livecd 系统里面.
5.配置live cd gentoo的网络,因为安装过程需要用到网络.系统的接口名称可以和旧的eth0命名规则很不一样。近期的安装媒介可能显示常规网络接口名字像是eno0、ens1或enp5s0。查看ifconfig输出中找到有你本地网络相关的IP地址的接口。
如果网络没有自动配置,最简单的方式是运行net-setup脚本来设置:
root #
net-setup eth0
net-setup将会询问关于网络环境的一些问题。当所有这些完成后,网络连接就应该工作。
也可以root #
dhcpcd eth0
来自动设置网络.
然后root #
ping www.baidu.com
测试网络通否.
6.给虚拟电脑的硬盘进行分区,用fdisk来进行分区,使用MBR,没有使用GPT.
7.创建文件系统.
root #
mkfs.ext2 /dev/sda2
root #
mkfs.ext4 /dev/sda4
root #
mkswap /dev/sda3
root #
swapon /dev/sda3
8.挂载文件系统。
root #
mount /mnt/gentoo
root #
mkdir /mnt/gentoo/boot
root #
mount /dev/sda2 /mnt/gentoo/boot
9. 安装stage3.
在安装Gentoo之前,确保日期和时间正确设置。一个错误配置的时钟可能在未来导致奇怪的结果!要验证当前的日期和时间,运行date:
root #
date
Fri Mar 29 16:21:18 UTC 2005
选择一个阶段tar包,如果你要安装x64的gentoo系统,如果你要兼容32位的程序,需要选择multilib的tar3包,如果你选择no-multilib的tar3包,那最后就不能兼容32位的程序了。由于我这是安装的x86的gentoo系统,就没有no-multilib 和 multilib 之分,就无所谓了。
下载阶段tar包,前往挂载根文件系统的Gentoo挂载点(很像/mnt/gentoo):
root #
cd /mnt/gentoo
根据不同的安装媒介,这里有一堆工具可用来下载一个阶段。这些工具之一就是links,一个非图形化、目录驱动的浏览器。要下载一个阶段,访问到Gentoo镜像列表形如:
root #
links https://www.gentoo.org/downloads/mirrors/
在镜像列表中,选择一个附近镜像站,我选择的是163的镜像。访问releases/x86/autobuilds/。那里将显示所有可用stage文件。选择一个,然后按 D 下载。完成以后,按Q退出这个浏览器。在下载stage文件后,就可以验证所下载的stage包的完整性。我直接忽略了。
解开阶段tar包,现在,解压下载的stage到系统。我们使用 tar来进行:
root #
tar xvjpf stage3-*.tar.bz2 --xattrs
官方wiki还要配置/mnt/gentoo/etc/portage/make.conf,我也直接忽略了,因为好像默认的就能用了。
10. 选择境像站点.gentoo提供一个叫作mirrorselect的好工具,它为用户选择所需镜像提供了一个很好的交换。只需要移动光标选择镜像并按Spacebar选择一个或多个镜像。
root #
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
选择镜像的第二个重要步骤是通过/etc/portage/repos.conf/gentoo.conf文件来配置Gentoo的主仓库。
root #
mkdir /mnt/gentoo/etc/portage/repos.conf
root #
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
不用修改。
复制DNS信息,将live cd里面的dns信息复制到要安装的gentoo系统里面。
root #
cp -L /etc/resolv.conf /mnt/gentoo/etc/
11.挂载必要的文件系统
root #
mount -t proc proc /mnt/gentoo/proc
root #
mount --rbind /sys /mnt/gentoo/sys
root #
mount --make-rslave /mnt/gentoo/sys
root #
mount --rbind /dev /mnt/gentoo/dev
root #
mount --make-rslave /mnt/gentoo/dev
--make-rslave操作是稍后安装systemd支持时所需要的。
12. 进入新环境
root #
chroot /mnt/gentoo /bin/bash
root #
source /etc/profile
root #
export PS1="(chroot) $PS1"
13. 配置Portage。
安装Portage快照。一个用来告诉Portage哪些软件标题可用于安装、哪些配置文件可以由管理员选择等等的文件集合。建议使用emerge-webrsync。这将从Gentoo的一介镜像中得到最新的Portage快照(Gentoo每天发布一个基准)并安装到系统中。
root #
emerge-webrsync
emerge-webrsync可能会报找不到/usr/portage/位置。这是预期内的并且不用担心——这个工具将会创建这个位置。
Portage可能会提示建议运行某些更新。这是因为在安装了一个新的Portage快照后,Portage发现了stage3文件中已经安装的某些软件有了更新的版本。现在可以安全的忽略它;当Gentoo安装完成后可以重新触发更新。
14. 选择正确的配置文件。
使用eselect,你能看到当前系统正在使用什么配置文件,现在来使用profile
模块:
root #
eselect profile list
Available profile symlink targets: [1] default/linux/x86/13.0 * [2] default/linux/x86/13.0/desktop [3] default/linux/x86/13.0/desktop/gnome [4] default/linux/x86/13.0/desktop/kde
可以键入以下命令为系统选择一个不同的配置文件:
root #
eselect profile set 8
我选择的是 default/linux/x86/13.0/systemd
更新@world集合,gentoo默认是使用OpenRC as the default init system,由于我上一步选择了
default/linux/x86/13.0/systemd,就需要更新@world集合
root #
emerge --ask --update --deep --newuse @world
官方wiki要配置USE变量,这里我使用默认的即可。
15. 设置时区
为系统选择时区。在/usr/share/zoneinfo/中查找可用的时区,然后写进/etc/timezone文件
root #
ls /usr/share/zoneinfo
假设要选择的时区是Asia/Shanghai:
root #
echo "Asia/Shanghai" > /etc/timezone
root #
emerge --config sys-libs/timezone-data
16. 配置地区。地区不只是指定系统应该使用的与系统进行交互的语言,同时也指定了字符串排序,日期和时间的显示等规则。系统应该支持的地区应该在/etc/locale.gen中提到。
root #
nano -w /etc/locale.gen
输入以下内容:
en_US ISO-8859-1en_US.UTF-8 UTF-8zh_CN GBKzh_CN.UTF-8 UTF-8
下一步是运行locale-gen。它将生成/etc/locale.gen文件中指定的所有地区。root #
locale-gen
要验证所选择的地区当前可用,运行locale -a。等完成后,我们就来设定系统级别的区域设置。我们又一次使用eselect来做这件事,现在使用locale模块。通过eselect locale list可显示可用的目标:
root #
eselect locale list
Available targets for the LANG variable:
[1] C
[2] en_US
[3] en_US.iso88591
[4] en_US.utf8
[5] POSIX
[6] zh_CN
[7] zh_CN.gbk
[8] zh_CN.utf8
[ ] (free form)
通过eselect locale set VALUE可以设定正确的地区:
root #
eselect locale set 8
此时选择中文会出现乱码,我还是用的en_US.utf8。
备注:这中间好像有个地方让我使用“.空格/etc/profile”命令来更新什么东西。
17. 现在重新加载环境:
root #
env-update && source /etc/profile && export PS1="(chroot) $PS1"
18. 安装源码之一.选择一个合适的内核并使用emerge来安装它。官方wiki上的命令是:
root #
emerge --ask sys-kernel/
经过我实践,这个好像官方已经修改了,这个命令提示sys-kernel找不到。使用下面的命令:
root #
emerge --ask gentoo-sources
这将在/usr/src/中安装Linux内核源码,并有一个符号连接叫作linux将指向安装的内核源码:
root #
ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-3.16.5-gentoo
19. 安装源码之二。现在进入内核源码目录并执行make menuconfig。这将启动一个菜单驱动的配置屏幕。
root #
cd /usr/src/linux
root #
make menuconfig
-------------------------------------------------------------------------------------------------------------
Device Drivers ---> Generic Driver Options ---> [*] Maintain a devtmpfs filesystem to mount at /dev [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs
File systems --->(Select one or more of the following options as needed by your system) <*> Second extended fs support <*> Ext3 journalling file system support <*> The Extended 4 (ext4) filesystem <*> FUSE filesystem support ... Pseudo Filesystems ---> [*] /proc file system support [*] Virtual memory file system support (former shm fs)
Processor type and features ---> [*] Symmetric multi-processing support
Device Drivers ---> Network device support --->
Ethernet driver support(NEW)-->
<*> AMD PCnet32 PCI support
SCSI device support-->
<*>SCSI disk support
SCSI low-level drivers-->
<*>BusLogic SCI support
Fusion MPT device support-->
所有的
Gentoo linux --->
support for init systems, system and services manageers --->[*] systemd
Device Drivers --->
USB support-->
<*>USB Mass Storage support
Input device support--->
[*] Mice ---> <*> PS/2 mouse
然后开始编译:
root #
make && make modules_install
root #
make install
这将复制内核镜像到/boot/,一起的还有System.map文件和内核配置文件。
20. 生成一个initramfs.
在某些情况中需要建立一个initramfs——一个基于内存的初始化文件系统。最觉的原因是当重要的文件系统位置(如/usr/或/var/)在分离的分区。通过一个initramfs,这些分区可以使用initramfs里面的工具来完成挂载。如果没有initramfs的,存在着巨大的风险,系统将无法正常开机,因为这是负责安装的文件系统工具需要驻留在这些文件系统的信息。 initramfs中的一个将在必要的文件拉进它的内核启动之后使用的档案,但控制被移交前转移到初始化工具。在initramfs的脚本,然后将确保分区正确地安装在系统继续启动之前。
要安装一个initramfs,首先安装sys-kernel/genkernel,然后用它生成一个initramfs:
root #
emerge --ask sys-kernel/genkernel
root #
genkernel --lvm --mdadm --install initramfs
在上面的命令,我们启用initramfs对LVM和软件raid(mdadm)的支持
initramfs将存储在/boot/。结果文件可以简单的通过列出以initramfs开头的文件来找到:
root #
ls /boot/initramfs*
21. 配置/etc/fstab文件:
root #
nano -w /etc/fstab
上面的命令会打开一个编辑器,删除里面所有的东西, 输入以下内容,然后按Ctrl + O 和回车保存, 按Ctrl + X 退出编辑器
/dev/sda2 /boot ext2 defaults,noatime 1 2
/dev/sda3 none swap sw 0 0
/dev/sda4 / ext4 noatime 0 1
22. 其他配置。
root #
nano -w /etc/conf.d/hostname
# 设置主机名变量,选择主机名
hostname="gentoo"
---------------------------------------------------------------------------
root #
passwd root
上面的命令设置root密码
23. 安装系统工具
System logger
root #
emerge --ask app-admin/sysklogd
root #
rc-update add sysklogd default
-------------------------------------------------------------------
Cron daemon
root #
emerge --ask sys-process/cronie
root #
rc-update add cronie default
root #
crontab /etc/crontab
---------------------------------------------------------------------------
File indexing
root #
emerge --ask sys-apps/mlocate
------------------------------------------------------------------
Remote access
root #
rc-update add sshd default
---------------------------------------------------------------------------------
Filesystem tools
root #
emerge --ask sys-fs/e2fsprogs
----------------------------------------------------------
DHCP client
root #
emerge --ask net-misc/dhcpcd
24. 配置系统引导程序Bootloader。
root #
emerge --ask sys-boot/grub:2
root #
grub2-install /dev/sda
root #
grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.16.5-gentoo
Found initrd image: /boot/initramfs-genkernel-x86-3.16.5-gentoo
done
上面第三个命令官方wiki显示是grub2-mkconfig,但是经我实践,这个命令现在修改成grub-mkconfig
25. 重启系统.当然,别忘了移除可引导CD,否则可能再次从CD启动,而不是新的Gentoo系统。
- gentoo安装文档 笔记
- gentoo 安装笔记
- Gentoo安装笔记(part1)
- Gentoo安装笔记(part2)
- Gentoo安装笔记(part3)
- Gentoo安装笔记(part4)
- Gentoo安装笔记(part5)
- Gentoo安装笔记(part6)
- Gentoo安装笔记(part7)
- Gentoo系统安装笔记
- Gentoo安装笔记
- gentoo 安装笔记
- Gentoo安装笔记
- gentoo 安装笔记 2009.07.10
- 第一次安装gentoo后笔记
- gentoo安装笔记(1)
- Gentoo在qemu上的安装笔记
- Gentoo 安装笔记 -- 2014/2/23
- 关于最近刷leetcode总结
- RandomAccessFile发生java.io.FileNotFoundException
- 【leetcode】Tree——Binary Tree Level Order Traversal(102)
- BeanFectory与AppliCationContext 的
- 文章标题
- gentoo 安装笔记
- 最大子列和问题
- 前后端分离那些事
- 解决ThinkServer TS250中网卡在centos6.5中没有安装驱动
- 机器学习总结1
- Gradle基本知识点与常用配置
- 【模拟试题】进制转换(normal) Time Limit:1000MS Memory Limit:65536K Total Submit:451 Accepted:203 Descriptio
- 写一个漂亮的注册页面
- 关于解决android studio出现Error:Execution failed for task ':app:mergeDebugResources'. 的方法