首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >在VMware上从零安装Gentoo Linux (第二篇:安装 Stage 与 Chroot)

在VMware上从零安装Gentoo Linux (第二篇:安装 Stage 与 Chroot)

作者头像
一根头发丝的宽度
发布2026-05-06 20:09:37
发布2026-05-06 20:09:37
1170
举报

欢迎回来!这里是《在VMware上从零安装Gentoo Linux》系列指南的第二篇。

上一篇中,我们已经成功完成了基础准备:配置了虚拟机、启动了Live环境、并对磁盘进行了分区和格式化,为Gentoo系统搭建好了“骨架”。现在,我们将开始填充这个“骨架”,为其注入灵魂——下载系统基础文件并进入全新的安装环境。

本篇我们将继续操作,核心步骤包括:

  1. 安装 Stage3:下载并解压构建Gentoo系统的“种子”文件。
  2. 配置编译选项:调整系统参数,为后续大量编译工作做好准备。
  3. Chroot:完成关键一步,“切换”到新系统中,后续所有操作都将在新系统内进行。

让我们开始吧!

5. 安装 Stage 文件

stage文件充当 Gentoo 安装的种子,stage 文件基于特定的 profiles,并包含一个几乎完整的系统。 在选择stage文件时,选择一个具有与所需系统类型对应的配置文件目标的文件非常重要,请参阅系统初始化的两种范式:Gentoo中OpenRC传统派与Systemd革新派深度解析

5.1 工作目录

在下载 stage 文件之前,当前目录应该设置为用于安装的挂载位置/mnt/gentoo

代码语言:javascript
复制
livecd ~ # cd /mnt/gentoo/
5.2 设置准确的日期和时间

Stage 存档通常使用 HTTPS 获取,这需要相对准确的系统时间。时钟偏差会阻止下载工作,如果在安装后将系统时间调整了相当多,则可能导致不可预知的错误。 可以使用 date 命令验证当前时间和日期。一般情况下都是正常的。如果出现较大偏差(分钟级以上)可以使用 ntpd或者 chronyd来同步时间。也可以手动执行date MMDDhhmmYYYY命令(将MMDD…替换为实时数值)来设置日期。

代码语言:javascript
复制
livecd ~ # date
Thu Aug 28 17:07:52 UTC 2025
# 手动example: date 082817072025
5.3 下载 stage3 文件并解压

国内的镜像站找到 gentoo stage 文件的下载地址,使用 wget 进行下载即可。这里选择不带桌面的 stage 文件。下载完成后使用 tar 解压即可,如果需要可以参考官方 Wiki 对下载的文件进行验证。

🔔 提示:也可以使用 links 命令进行下载,比如 links https://mirrors.tuna.tsinghua.edu.cn/gentoo/

代码语言:javascript
复制
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
6. 编译选项

启动编辑器来更改部分变量,如下图所示:

代码语言:javascript
复制
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
7. 准备并切换根目录
7.1 复制 DNS 信息

在进行新环境之前,还有一件要做的事情就是复制 /etc/resolv.conf 中的DNS信息。需要完成这个来确保即使进入到新环境后网络仍然可以使用。建议通过cp命令的 --dereference选项。

代码语言:javascript
复制
livecd /mnt/gentoo # cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
7.2 挂载必要的文件系统

需要提供的文件系统是:

  • /proc/是一个伪文件系统,虽然它看起来像是常规文件,但是却是由 Linux 内核生成
  • /sys/是一个伪文件系统,它类似被取代的 /proc/,但是比 /proc/ 更结构化
  • /dev/是一个包含全部设备文件的常规文件系统,一部分由Linux设备管理器(通常是udev)管理
  • /run/是一个临时文件系统,用于运行时生成的文件,例如 PID 文件和锁

/proc/ 位置将要挂载到 /mnt/gentoo/proc/,而其它的都是绑定挂载。字面上的意思是,例如 /mnt/gentoo/sys/ 事实上就是 /sys/(它只是同一个文件系统的第二个条目点),而 /mnt/gentoo/proc/ 是(可以说是)文件系统的一个新的挂载。

代码语言:javascript
复制
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 
7.3 设置 ebuid 仓库
代码语言:javascript
复制
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
7.4 选择镜像站点

为了能更快的下载源代码,推荐选择一个访问快、地理位置接近的镜像。Portage 将会在make.conf文件中查找 GENTOO_MIRRORS变量,并使用其中所列的镜像。

镜像选择工具 mirrorselect 提供一个美观的文字界面(TUI)以便快速查询和选择合适的镜像源。

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

8. 进入新环境

把根目录(能访问到最顶层的位置)从当前的安装环境(安装CD或其他安装媒介)变为安装系统(叫做初始化分区),因此叫作 change rootchroot

完成chroot有三个步骤:

  1. 如果可以的话,使用 chroot 或 arch-chroot 将根目录的位置从 /(在安装媒介里)更改成 /mnt/gentoo/ (在分区里)
  2. 使用 source 命令将一些设置(那些在 /etc/profile 中的)重新载入到内存中
  3. 更改主提示符来帮助我们记住当前会话在一个 chroot 环境里面。
代码语言:javascript
复制
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 安装的第二阶段:系统部署与环境切换。我们来回顾一下本篇的成果:

  1. 注入系统灵魂:下载并解压了构建 Gentoo 系统所必需的 Stage3 压缩包。
  2. 调配编译引擎:配置了 make.conf 文件,设置了合适的编译线程数和许可证协议,为后续高效编译软件包打下了基础。
  3. 搭建操作桥梁:通过绑定挂载,将主机的重要系统目录映射到了新环境中。
  4. 完成环境切换:成功执行 chroot 命令,进入了目标系统环境。

现在,我们的新系统已经不再是空的“骨架”,而是拥有了基本系统文件和配置的“躯体”。我们正站在这个新系统的内部。

接下来,最核心、最“Gentoo”的部分来了!

在下一篇文章《在VMware上从零安装Gentoo Linux (第三篇:系统配置与内核编译)》中,我们将:

  • 配置 ebuild仓库、时区 和 Locale。
  • 安装 CPU微码 和 硬件固件,确保系统稳定性和硬件兼容性。
  • 迎来最大挑战——配置并编译 Linux 内核!这将是真正打造属于你自己系统的时刻。

如果在操作过程中遇到任何问题,欢迎在评论区留言交流!

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 5. 安装 Stage 文件
    • 5.1 工作目录
    • 5.2 设置准确的日期和时间
    • 5.3 下载 stage3 文件并解压
  • 6. 编译选项
  • 7. 准备并切换根目录
    • 7.1 复制 DNS 信息
    • 7.2 挂载必要的文件系统
    • 7.3 设置 ebuid 仓库
    • 7.4 选择镜像站点
  • 8. 进入新环境
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档