欢迎回来!这是《在VMware Workstation 17 Pro 上安装 Gentoo Linux》系列的最终篇,也是我们漫长安装之旅的收官之作!

在上一篇中,我们成功编译了专属内核,为系统注入了强大的动力。现在,我们的Gentoo系统已经拥有了灵魂、躯体和心脏。本篇,我们将为它完成最后的“神经连接”和“外观雕琢”,并最终见证它的首次独立启动。
我们将一鼓作气,完成所有收尾工作:
MBR(BIOS)和GPT都支持“文件系统”标签和“文件系统”的UUID。 这些属性可以在尝试查找和挂载块设备时使用,可以使用 blkid 命令查看。

(chroot) livecd / # blkid
/dev/sr0: BLOCK_SIZE="2048" UUID="2025-08-24-19-11-15-00" LABEL="Gentoo-amd64-20250824" TYPE="iso9660" PTTYPE="PMBR"
/dev/loop0: BLOCK_SIZE="131072" TYPE="squashfs"
/dev/sda2: UUID="c30de363-3bdb-4cd1-9379-45748f03f74a" TYPE="swap" PARTUUID="fa2d6f7f-0042-4760-840e-504366e220da"
/dev/sda3: UUID="863c8b8c-af6f-422f-ba8b-86cc69e311da" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="a2f42279-8440-4010-8c71-a8be1203c676"
/dev/sda1: UUID="AFB7-FA56" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="38315cce-cf2f-44c2-867e-073109234dc1"
🔔 提示:这里我为了出于方便直接使用PARTUUID,通常使用UUID即可。
在Linux系统下,系统所用到的所有分区都必须在 /etc/fstab文件中指明。这个文件包含了这些分区的挂载点(在系统目录树中的位置)、挂载方法和特殊挂载选项(是否自动挂载,是否某个用户可以挂载它等)。
为了避免手动输入UUID可能造成的失误,使用blkid >> /etc/fstab命令把分区信息追加到文件中,删除多余的信息进行修改。
(chroot) livecd / # blkid >> /etc/fstab
(chroot) livecd / # nano /etc/fstab
(chroot) livecd / # cat /etc/fstab | grep -A 4 PART
PARTUUID=fa2d6f7f-0042-4760-840e-504366e220da /none swap sw 0 0
PARTUUID=a2f42279-8440-4010-8c71-a8be1203c676 / xfs defaults,noatime 0 1
PARTUUID=38315cce-cf2f-44c2-867e-073109234dc1 /efi vfat umask=0077,tz=UTC 0 2

系统管理员必须要做的事情之一就是命名他们的机器。但是很多用户觉得很难起一个合适的主机名。为了加快进度,应该知道所有你所命名的名字都是可以在今后重新修改的。下面的示例使用 oneh作为主机名。
(chroot) livecd / # echo oneh > /etc/hostname
(chroot) livecd / # cat /etc/hostname
oneh
大多数 LAN 网络都运行 DHCP 服务器。这种情况下建议使用 dhcpcd 程序获取 IP 地址。
# 自动获取IP地址,如果需要手动配置,请参考官方 Wiki
(chroot) livecd / # emerge --ask net-misc/dhcpcd
# 启动服务
(chroot) livecd / # systemctl enable dhcpcd
Created symlink '/etc/systemd/system/multi-user.target.wants/dhcpcd.service' → '/usr/lib/systemd/system/dhcpcd.service'.

在 /etc/hosts文件中定义有关的网络信息,它将帮助你将那些无法被域名解析器解析的主机名解析成IP地址。
本次安装实践不做配置。
使用“passwd”命令设置“root”密码
(chroot) livecd / # passwd root
...
Enter new password:
Re-type new password:
passwd: password updated successfully
想索引你的系统文件使得你能够使用locate工具很快定位它们,需要安装 sys-apps/mlocate。
(chroot) livecd / # emerge --ask sys-apps/mlocate
运行以下命令来启用 SSH 服务端:
(chroot) livecd / # systemctl enable sshd
Created symlink '/etc/systemd/system/multi-user.target.wants/sshd.service' → '/usr/lib/systemd/system/sshd.service'.
使用一些同步系统时钟的方法很重要。通常使用 NTP协议和软件。有一些 NTP 协议的其他实现,例如 Chrony。
# 查找 chrony
(chroot) livecd / # emerge --search net-misc/chrony
# 安装 chrony
(chroot) livecd / # emerge --ask net-misc/chrony
# 。。。
# 启动
(chroot) livecd / # systemctl enable chronyd.service
Created symlink '/etc/systemd/system/multi-user.target.wants/chronyd.service' → '/usr/lib/systemd/system/chronyd.service'.
完成配置Linux内核、安装系统工具和编辑配置文件之后,现在是时候去安装Linux引导加载程序。引导加载程序负责在引导过程中启动内核——若没有引导加载程序,系统将不知道按下电源键后将如何进行。
(chroot) livecd / # echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
(chroot) livecd / # emerge --ask sys-boot/grub

通过grub-install命令安装 GRUB 所需的文件到/boot/grub/目录。
‼️ 重要:确保 EFI 系统分区在运行 grub-install 之前就已经挂载。否则它可能会把 grub-install 安装的 GRUB EFI 文件
grubx64.efi到错误的目录,并且不会提供任何辨识使用错误目录的信息。
(chroot) livecd / # grub-install --target=x86_64-efi --efi-directory=/efi
Installing for x86_64-efi platform.
Installation finished. No error reported.

生成最终的 GRUB 配置,运行grub-mkconfig命令:

(chroot) livecd / # grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.12.41-gentoo-x86_64
Found initrd image: /boot/intel-uc.img /boot/amd-uc.img /boot/initramfs-6.12.41-gentoo-x86_64.img
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done
⚠️ 注意:至少找到一个Linux镜像在命令的输出中,它们是用来引导系统的。如果不是这样,进入到 /boot/ 并使用 ls 命令检查是否存在内核文件。如果文件确实不存在,回到内核部分重新安装。
退出chroot环境并unmount全部已持载分区。然后初始化最终的、真实的测试:reboot。
(chroot) livecd / # exit
exit
livecd ~ # cd
livecd ~ # umount -l /mnt/gentoo/dev{/shm,/pts,}
livecd ~ # umount -R /mnt/gentoo
livecd ~ # reboot

用 root 进行工作是一件危险的事情,应该尽量避免。
useradd -m -G users,wheel,audio -s /bin/bash oneh
passwd oneh

安装 app-admin/sudo软件包,为普通用户添加 sudo 权限
oneh ~ # emerge --search app-admin/sudo
oneh ~ # emerge --ask app-admin/sudo

使用 visudo打开配置文件,添加行 oneh ALL=(ALL:ALL) ALL,保存并退出。

oneh ~ # visudo
# 添加行内容
oneh ALL=(ALL:ALL) ALL
⏰ 提醒:一般不推荐直接给予普通用户最大权限。
如果 Gentoo 安装完毕并且系统已经重启过,并且所有事情都完成好了,那么我们现在就要从硬盘上删除下载的 stage3 的 tar 包。记住它们下载在 / 目录。
oneh ~ # rm /stage3-amd64-systemd-20250824T160411Z.tar.xz
安装 fastfetch
oneh ~ # emerge --ask fastfetch

🎉 屏幕上的系统信息清晰呈现,标志着我们的 Gentoo Linux 系统已经100%安装完成并成功运行!🎉
🎉 系列总结与祝贺🎉
从第一篇的空白虚拟机到这个完全由你亲手编译、配置而成的正在运行的系统,我们共同完成了一次漫长而富有成就感的旅程。让我们最后回顾一下我们共同达成的所有里程碑:
恭喜你! 你不是仅仅安装了一个Linux发行版,而是通过理解每一个步骤,真正地构建了一个属于你自己的操作系统。这份耐心和成功,值得大大的赞!
🚀 下一步可以做什么?
系统的安装不是终点,而是探索Gentoo巨大潜力的起点。接下来,你可以:
感谢你陪伴这个系列走到最后。希望这篇指南为你打开了DIY系统的大门。