首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >在VMware上从零安装Gentoo Linux (第四篇:配置引导与系统收尾)

在VMware上从零安装Gentoo Linux (第四篇:配置引导与系统收尾)

作者头像
用户12454170
发布2026-05-06 20:12:08
发布2026-05-06 20:12:08
360
举报

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

上一篇中,我们成功编译了专属内核,为系统注入了强大的动力。现在,我们的Gentoo系统已经拥有了灵魂、躯体和心脏。本篇,我们将为它完成最后的“神经连接”和“外观雕琢”,并最终见证它的首次独立启动。

我们将一鼓作气,完成所有收尾工作:

  • 配置系统脉络:设置文件系统表 (fstab)、主机名和网络,让系统各部分协同工作。
  • 安装系统引导器 (GRUB):配置系统的“启动按钮”,这是从虚拟机启动到Gentoo的临门一脚。
  • 首次重启!:最激动人心的时刻,卸载所有设备,重启并验证我们的安装是否成功。
  • 安全与收尾:创建日常用户、配置sudo权限并进行最后的清理工作。
14. 文件系统信息
14.1 分区表和 UUID

MBR(BIOS)和GPT都支持“文件系统”标签和“文件系统”的UUID。 这些属性可以在尝试查找和挂载块设备时使用,可以使用 blkid 命令查看。

代码语言:javascript
复制
(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即可。

14.2 挂载分区

在Linux系统下,系统所用到的所有分区都必须在 /etc/fstab文件中指明。这个文件包含了这些分区的挂载点(在系统目录树中的位置)、挂载方法和特殊挂载选项(是否自动挂载,是否某个用户可以挂载它等)。

为了避免手动输入UUID可能造成的失误,使用blkid >> /etc/fstab命令把分区信息追加到文件中,删除多余的信息进行修改。

代码语言:javascript
复制
(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
15. 网络信息
15.1 主机名

系统管理员必须要做的事情之一就是命名他们的机器。但是很多用户觉得很难起一个合适的主机名。为了加快进度,应该知道所有你所命名的名字都是可以在今后重新修改的。下面的示例使用 oneh作为主机名。

代码语言:javascript
复制
(chroot) livecd / # echo oneh > /etc/hostname
(chroot) livecd / # cat /etc/hostname
oneh
15.2 网络

大多数 LAN 网络都运行 DHCP 服务器。这种情况下建议使用 dhcpcd 程序获取 IP 地址。

代码语言:javascript
复制
# 自动获取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'.
15.3 hosts 文件

/etc/hosts文件中定义有关的网络信息,它将帮助你将那些无法被域名解析器解析的主机名解析成IP地址。

本次安装实践不做配置。

16. 一些系统设置
16.1 Root 密码

使用“passwd”命令设置“root”密码

代码语言:javascript
复制
(chroot) livecd / # passwd root

...

Enter new password: 
Re-type new password: 
passwd: password updated successfully
16.2 文件索引

想索引你的系统文件使得你能够使用locate工具很快定位它们,需要安装 sys-apps/mlocate

代码语言:javascript
复制
(chroot) livecd / # emerge --ask sys-apps/mlocate
16.3 ssh 访问

运行以下命令来启用 SSH 服务端:

代码语言:javascript
复制
(chroot) livecd / # systemctl enable sshd
Created symlink '/etc/systemd/system/multi-user.target.wants/sshd.service' → '/usr/lib/systemd/system/sshd.service'.
16.4 时间同步

使用一些同步系统时钟的方法很重要。通常使用 NTP协议和软件。有一些 NTP 协议的其他实现,例如 Chrony

代码语言:javascript
复制
# 查找 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'.
17. Grub 引导
17.1 选择引导加载程序

完成配置Linux内核、安装系统工具和编辑配置文件之后,现在是时候去安装Linux引导加载程序。引导加载程序负责在引导过程中启动内核——若没有引导加载程序,系统将不知道按下电源键后将如何进行。

代码语言:javascript
复制
(chroot) livecd / # echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
(chroot) livecd / # emerge --ask sys-boot/grub
17.2 安装 grub

通过grub-install命令安装 GRUB 所需的文件到/boot/grub/目录。

‼️ 重要:确保 EFI 系统分区在运行 grub-install 之前就已经挂载。否则它可能会把 grub-install 安装的 GRUB EFI 文件 grubx64.efi到错误的目录,并且不会提供任何辨识使用错误目录的信息。

代码语言:javascript
复制
(chroot) livecd / # grub-install --target=x86_64-efi --efi-directory=/efi
Installing for x86_64-efi platform.
Installation finished. No error reported.
17.3 写入配置

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

代码语言:javascript
复制
(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 命令检查是否存在内核文件。如果文件确实不存在,回到内核部分重新安装。

18. 重启系统

退出chroot环境并unmount全部已持载分区。然后初始化最终的、真实的测试:reboot。

代码语言:javascript
复制
(chroot) livecd / # exit
exit
livecd ~ # cd
livecd ~ # umount -l /mnt/gentoo/dev{/shm,/pts,}
livecd ~ # umount -R /mnt/gentoo
livecd ~ # reboot
19. 用户管理
19.1 添加一个日常使用的用户

用 root 进行工作是一件危险的事情,应该尽量避免。

代码语言:javascript
复制
useradd -m -G users,wheel,audio -s /bin/bash oneh 
passwd oneh
19.2 添加 sudo 权限

安装 app-admin/sudo软件包,为普通用户添加 sudo 权限

代码语言:javascript
复制
oneh ~ # emerge --search app-admin/sudo
oneh ~ # emerge --ask app-admin/sudo

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

代码语言:javascript
复制
oneh ~ # visudo
# 添加行内容
oneh ALL=(ALL:ALL) ALL

⏰ 提醒:一般不推荐直接给予普通用户最大权限。

19.3 磁盘清理

如果 Gentoo 安装完毕并且系统已经重启过,并且所有事情都完成好了,那么我们现在就要从硬盘上删除下载的 stage3 的 tar 包。记住它们下载在 / 目录。

代码语言:javascript
复制
oneh ~ # rm /stage3-amd64-systemd-20250824T160411Z.tar.xz
20. 安装完成

安装 fastfetch

代码语言:javascript
复制
oneh ~ # emerge --ask fastfetch

🎉 屏幕上的系统信息清晰呈现,标志着我们的 Gentoo Linux 系统已经100%安装完成并成功运行!🎉


🎉 系列总结与祝贺🎉

从第一篇的空白虚拟机到这个完全由你亲手编译、配置而成的正在运行的系统,我们共同完成了一次漫长而富有成就感的旅程。让我们最后回顾一下我们共同达成的所有里程碑:

  • 第一篇:基础准备 -> 创建虚拟机、分区、格式化、挂载。
  • 第二篇:系统部署 -> 安装Stage3、配置Portage、完成关键的chroot。
  • 第三篇:核心攻坚 -> 配置系统、更新World、亲手编译Linux内核。
  • 第四篇:完美收官 -> 配置引导、成功重启、完成用户与安全设置。

恭喜你! 你不是仅仅安装了一个Linux发行版,而是通过理解每一个步骤,真正地构建了一个属于你自己的操作系统。这份耐心和成功,值得大大的赞!

🚀 下一步可以做什么?

系统的安装不是终点,而是探索Gentoo巨大潜力的起点。接下来,你可以:

  • 探索USE标记:精调软件包编译选项,打造更精简或功能更丰富的系统。
  • 安装桌面环境:尝试 emerge GNOME, KDE Plasma 或 Xfce 等,打造你的工作站。
  • 深入Portage:学习关键词、掩包等高级功能,成为真正的Portage管理高手。
  • 服务与配置:配置防火墙、搭建开发环境或各种服务器应用。

感谢你陪伴这个系列走到最后。希望这篇指南为你打开了DIY系统的大门。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一根头发丝的宽度 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 14. 文件系统信息
    • 14.1 分区表和 UUID
    • 14.2 挂载分区
  • 15. 网络信息
    • 15.1 主机名
    • 15.2 网络
    • 15.3 hosts 文件
  • 16. 一些系统设置
    • 16.1 Root 密码
    • 16.2 文件索引
    • 16.3 ssh 访问
    • 16.4 时间同步
  • 17. Grub 引导
    • 17.1 选择引导加载程序
    • 17.2 安装 grub
    • 17.3 写入配置
  • 18. 重启系统
  • 19. 用户管理
    • 19.1 添加一个日常使用的用户
    • 19.2 添加 sudo 权限
    • 19.3 磁盘清理
  • 20. 安装完成
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档