
欢迎回来!这里是《在VMware上从零安装Gentoo Linux》系列指南的第二篇。
在上一篇中,我们已经成功完成了基础准备:配置了虚拟机、启动了Live环境、并对磁盘进行了分区和格式化,为Gentoo系统搭建好了“骨架”。现在,我们将开始填充这个“骨架”,为其注入灵魂——下载系统基础文件并进入全新的安装环境。
本篇我们将继续操作,核心步骤包括:
让我们开始吧!
stage文件充当 Gentoo 安装的种子,stage 文件基于特定的 profiles,并包含一个几乎完整的系统。 在选择stage文件时,选择一个具有与所需系统类型对应的配置文件目标的文件非常重要,请参阅系统初始化的两种范式:Gentoo中OpenRC传统派与Systemd革新派深度解析。
在下载 stage 文件之前,当前目录应该设置为用于安装的挂载位置/mnt/gentoo:
livecd ~ # cd /mnt/gentoo/
Stage 存档通常使用 HTTPS 获取,这需要相对准确的系统时间。时钟偏差会阻止下载工作,如果在安装后将系统时间调整了相当多,则可能导致不可预知的错误。 可以使用 date 命令验证当前时间和日期。一般情况下都是正常的。如果出现较大偏差(分钟级以上)可以使用 ntpd或者 chronyd来同步时间。也可以手动执行date MMDDhhmmYYYY命令(将MMDD…替换为实时数值)来设置日期。
livecd ~ # date
Thu Aug 28 17:07:52 UTC 2025
# 手动example: date 082817072025

在国内的镜像站找到 gentoo stage 文件的下载地址,使用 wget 进行下载即可。这里选择不带桌面的 stage 文件。下载完成后使用 tar 解压即可,如果需要可以参考官方 Wiki 对下载的文件进行验证。
🔔 提示:也可以使用 links 命令进行下载,比如
links https://mirrors.tuna.tsinghua.edu.cn/gentoo/
livecd /mnt/gentoo # wget https://mirrors.tuna.tsinghua.edu.cn/gentoo/releases/amd64/autobuilds/current-stage3-amd64-systemd/stage3-amd64-systemd-20250824T160411Z.tar.xz
livecd /mnt/gentoo # tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

启动编辑器来更改部分变量,如下图所示:
livecd /mnt/gentoo # nano /mnt/gentoo/etc/portage/make.conf
# 修改 COMMON_FLAGS 参数,增加 MAKEOPTS 和 ACCEPT_LICENSE 参数
# 大量的 job 显著消耗内存。建议每个 job 至少有 2 GiB RAM (所以,-j4 至少 需要 8 GiB)。
# 避免内存溢出,根据可用内存降低 job 数量。
# -l 值可以略高于线程数,比如 4 线程,这里就可以配置数值 5

在进行新环境之前,还有一件要做的事情就是复制 /etc/resolv.conf 中的DNS信息。需要完成这个来确保即使进入到新环境后网络仍然可以使用。建议通过cp命令的 --dereference选项。
livecd /mnt/gentoo # cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
需要提供的文件系统是:
/proc/是一个伪文件系统,虽然它看起来像是常规文件,但是却是由 Linux 内核生成/sys/是一个伪文件系统,它类似被取代的 /proc/,但是比 /proc/ 更结构化/dev/是一个包含全部设备文件的常规文件系统,一部分由Linux设备管理器(通常是udev)管理/run/是一个临时文件系统,用于运行时生成的文件,例如 PID 文件和锁/proc/ 位置将要挂载到 /mnt/gentoo/proc/,而其它的都是绑定挂载。字面上的意思是,例如 /mnt/gentoo/sys/ 事实上就是 /sys/(它只是同一个文件系统的第二个条目点),而 /mnt/gentoo/proc/ 是(可以说是)文件系统的一个新的挂载。
livecd /mnt/gentoo # mount --types proc /proc /mnt/gentoo/proc
livecd /mnt/gentoo # mount --rbind /sys /mnt/gentoo/sys
livecd /mnt/gentoo # mount --make-rslave /mnt/gentoo/sys
livecd /mnt/gentoo # mount --rbind /dev /mnt/gentoo/dev
livecd /mnt/gentoo # mount --make-rslave /mnt/gentoo/dev
livecd /mnt/gentoo # mount --bind /run /mnt/gentoo/run
livecd /mnt/gentoo # mount --make-slave /mnt/gentoo/run

livecd /mnt/gentoo # mkdir --parents /mnt/gentoo/etc/portage/repos.conf
livecd /mnt/gentoo # cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
livecd /mnt/gentoo # nano /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
# 修改参数 sync-uri 值为:rsync://mirrors.tuna.tsinghua.edu.cn/gentoo-portage/
# 修改参数 sync-rsync-verify-metamanifest 值为 no
# 修改参数 sync-webrsync-verify-signature 值为 no

为了能更快的下载源代码,推荐选择一个访问快、地理位置接近的镜像。Portage 将会在make.conf文件中查找 GENTOO_MIRRORS变量,并使用其中所列的镜像。
镜像选择工具 mirrorselect 提供一个美观的文字界面(TUI)以便快速查询和选择合适的镜像源。

livecd /mnt/gentoo # mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
* Using url: https://api.gentoo.org/mirrors/distfiles.xml
* Downloading a list of mirrors...
🔔 提示:可以直接打开
/mnt/gentoo/etc/portage/make.conf加入GENTOO_MIRRORS=url

把根目录(能访问到最顶层的位置)从当前的安装环境(安装CD或其他安装媒介)变为安装系统(叫做初始化分区),因此叫作 change root或 chroot。
完成chroot有三个步骤:
livecd /mnt/gentoo # chroot /mnt/gentoo /bin/bash
livecd / # source /etc/profile
livecd / # export PS1="(chroot) ${PS1}"

恭喜!命令提示符前的 (chroot) 标志着我们已经成功“钻入”了新系统内部! 从现在开始,我们执行的每一条命令都将在全新的 Gentoo 环境中直接生效,这与之前操作 LiveCD 环境有本质区别。这是我们安装过程中一个至关重要的里程碑。
💡 故障恢复提示:正如上文所说,如果后续安装过程中断或重启,你无需重新分区。只需重新挂载根分区 (/dev/sda3) 到 /mnt/gentoo,重新执行绑定挂载(第7步骤)和 chroot(第8步骤)即可回到这个安装状态,继续操作。。。
本篇小结 & 下篇预告
至此,我们已经成功完成了 Gentoo 安装的第二阶段:系统部署与环境切换。我们来回顾一下本篇的成果:
现在,我们的新系统已经不再是空的“骨架”,而是拥有了基本系统文件和配置的“躯体”。我们正站在这个新系统的内部。
接下来,最核心、最“Gentoo”的部分来了!
在下一篇文章《在VMware上从零安装Gentoo Linux (第三篇:系统配置与内核编译)》中,我们将:
如果在操作过程中遇到任何问题,欢迎在评论区留言交流!