安装Gentoo3
Welcome back.
l10n
现在选择时区,在目录/usr/share/zoneinfo/中查阅,选择之后创建符号链接ln -sf ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime。这里选择上海。
然后生成区域设置,完整的列表在/usr/share/i18n/SUPPORTED,编辑/etc/locale.gen,添加项或者删除前边注释符号,我直接使用en_US.UTF-8 UTF-8,运行locale-gen,生成指定的地区。
选择区域设置,eselect locale list显示可用项,eselect locale set <number>设置项。
之后重新加载环境,env-update && source /etc/profile。
配置Linux内核
安装固件,emerge --ask sys-kernel/linux-firmware。
安装微码,AMD CPU 的微码更新在 sys-kernel/linux-firmware 软件包内分发。Intel CPU 的微码可以在 sys-firmware/intel-microcode 包中找到,并且需要单独安装。
选择启动引导,GRUB吧,为了安装时自动运行grub-mkconfig,启用grub flag。echo "sys-kernel/installkernel grub" > /etc/portage/package.use/installkernel。
初始化好像要initramfs,在installkernel添加一个flag,echo “dracut” >> /etc/portage/package.use/installkernel。
安装软件emerge --ask sys-kernel/installkernel。
安全启动好像很麻烦,不会跳过。
内核使用全自动Distribution内核安装,要想签名从源码构建的内核,要在make.conf中添加一个USE flag:modules-sign,以及以下几行:
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # 仅当MODULES_SIGN_KEY不包含证书时才需要。
MODULES_SIGN_HASH="sha512" # 默认为sha512。
使用openSSL生成密钥openssl req -new -noenc -utf8 -sha256 -x509 -outform PEM -out kernel_key.pem -keyout kernel_key.pem,这里生成的密钥包含了密钥和附带的证书。
修改权限chmod 400 kernel_key.pem。
这里再在make.conf中添加几行好像就可以安全启动了,USE flag要再加一个secureboot:
SECUREBOOT_SIGN_KEY="/path/to/kernel_key.pem"
SECUREBOOT_SIGN_CERT="/path/to/kernel_key.pem"
然后从源码构建内核emerge --ask sys-kernel/gentoo-kernel。
这玩意编译了得三个小时吧,纯逆天。
然后可以清理一下emerge --depclean。
之后要安装一个分布式内核?在make.conf里添加一个USE flagdist-kernel。
然后可以重新构建模块emerge --ask @module-rebuild。
然后安装内核源emerge --ask sys-kernel/gentoo-sources。
创建符号链接。
eselect kernel list
eselect kernel set <number>
这里输出有两个,选择linux-x.x.x-gentoo。然后可以查看符号链接ls -l /usr/src/linux。
关于文件系统
编辑/etc/fstab。
Gentoo安装手册让手动编辑,但是Arch Linux教程中可以使用genfstab来自动生成。
要先退出chroot环境,然后genfstab -U /mnt/gentoo >> /mnt/gentoo/etc/fstab。
生成之后检查一下,Gentoo建议在根分区的选项加一个noatime,说是启动更快。
好东西就要来了
网络配置
主机名设置echo name > /etc/hostname。
安装dhcpcd,emerge --ask net-misc/dhcpcd。
如果启动服务使用systemctl enable dhcpcd。
如果报错不用担心,一会会解决。
主机文件,暂时就一个主机不需要配置。
passwd设置root密码。
为系统的各种组件的首次启动设置为新的systemd环境做好准备。
systemd-machine-id-setup
systemd-firstboot --prompt
systemctl preset-all --preset-mode=enable-only
安装工具
这里可以看自己需求选择,参考官网
建议安装网络工具,开机没法联网就很麻烦。
配置启动引导程序
使用GRUB,emerge --ask --verbose sys-boot/grub,注意查看编译选项中有对应平台标志,比如efi-64 pc,如果没有可以添加到make.conf。
对于UEFI系统grub-install --efi-directory=/efi。
这里又有安全启动,好复杂不弄了。
配置GRUB,grub-mkconfig -o /boot/grub/grub.cfg,确保能够检测到Linux image。
这里会出现问题,双系统只能检测到Linux,需要emerge --ask sys-boot/os-prober然后重新运行上一条命令。
并且还会出现依赖错误,编译os-prober需要grub的编译选项中有mount,可以在/etc/portage/package.use/中添加一个,然后emerge --ask --verbose --oneshot --newuse sys-boot/grub重新编译grub。
最后退出chroot环境,umount -R /mnt/gentoo
,reboot。
很好啊,开机黑屏。根本连TUI都出不来。
气死了总共编译了得12个小时吧,一开机还是一片漆黑,我都有点心疼我电脑了,Gentoo快去死吧,下次用Arch。