3步搞定Gentoo安装:gentoo-install图形化安装工具完整指南
3步搞定Gentoo安装:gentoo-install图形化安装工具完整指南
【免费下载链接】gentoo-installA gentoo installer with a TUI interface that supports systemd and OpenRC, EFI and BIOS, as well as variable disk layouts using ext4, zfs, btrfs, luks and mdraid.项目地址: https://gitcode.com/gh_mirrors/ge/gentoo-install
Gentoo 以「自由定制」闻名,却也以「安装劝退」著称:手动装一次往往要读上百页手册。而 gentoo-install 正是为破解这一痛点而生的开源项目:它是一款带图形交互界面(TUI)的 Gentoo 安装器,自动帮你完成分区、下载 stage3、配置 Portage、装内核、生成引导项等全部脏活累活,让你从「被劝退」变成「三小时装完」。本教程将带你从零开始,用 3 步跑通一次完整的 Gentoo 安装。
一、为什么装 Gentoo 这么劝退,又为什么要选这个安装器
先说说我的血泪史。第一次折腾 Gentoo 时,我照着官方手册一步步来:手工分区、解压 stage3、chroot 进去、手动同步 Portage 树、写 fstab、编译内核、配置引导器……中间任何一步出了偏差,都要回头翻手册排查。更别提还要在 systemd 和 OpenRC、EFI 和 BIOS、ext4 和 btrfs 之间做各种「选择困难症」式的决策。说实话,那一次我差点就放弃了。
gentoo-install 项目的思路很简单:把「最佳实践安装流程」固化成脚本,再用菜单式界面让你像逛超市一样勾选配置。它有这几个让我觉得「早该有人做」的特点:
- TUI 图形化配置:灵感来自 Linux 内核的 menuconfig,选项层次清晰,每个选项都能看帮助说明;
- 覆盖主流磁盘方案:经典单盘、ZFS 中心、btrfs 中心、RAID0/RAID1+LUKS 加密、使用已有分区,几乎一网打尽;
- 双启动方式全支持:EFI(推荐)与 BIOS 都能引导,无需你手动写引导器配置;
- 系统化与守护进程自由选:systemd 或 OpenRC,以及 hardened、musl、desktop 等各类 stage3 变体。
如果你已经折腾过几次 Gentoo、想要一套可重复执行的「最佳实践」,或者你是想试试 Gentoo 却怕入坑的新手,这个工具都值得一试。
| 对比项 | 手动安装 | gentoo-install |
|---|---|---|
| 分区 | 手写 fdisk/gdisk 指令 | 选择方案后自动完成 |
| stage3 下载 | 手动核对校验值 | 自动下载并做加密校验 |
| Portage 初始化 | 手动 rsync/git 同步 | 自动同步并可跑 mirrorselect |
| 内核与引导 | 手动编译、写引导器 | 自动装内核、生成 initramfs 和启动项 |
| 出错恢复 | 全靠自己摸索 | 提供紧急 shell 与 chroot 工具 |
二、第 1 步:准备 Live 环境,把安装器「请进来」
安装器需要在Live 环境(也就是启动盘里的临时系统)里运行,而不是在你日常使用的系统里。我个人推荐用 Arch Linux 的 Live ISO 来充当这个环境,因为脚本在需要时会自动临时安装一些依赖程序(比如 ZFS 支持),而 Arch 的 Live 环境自带完善的包管理器,配合最顺滑。
进入 Live 环境后,只需三条命令,跟着操作即可:
pacman -Sy git # 在 Live 环境里安装 git(Arch 用 pacman) git clone https://gitcode.com/gh_mirrors/ge/gentoo-install cd gentoo-install仓库克隆下来后,你会看到install、configure两个可执行脚本,以及gentoo.conf.example配置示例。顺便说一句:安装全程需要 root 权限,建议先用sudo su切到 root 再继续。如果用的是非 Arch 的 Live 环境,只要保证系统里有 git 和 dialog 这两个小工具,也完全没问题。
三、第 2 步:3 分钟完成环境配置,TUI 界面与配置文件任选其一
配置是整个安装过程中最有「掌控感」的一步,而 gentoo-install 给了你两条路:图形化菜单或手写配置文件。新手建议走第一条,老手可以两条都试试。
路线 A:运行./configure,打开图形化配置界面
./configure稍等片刻,你就能看到下面这个经典的菜单界面:
整个界面分成几个功能区,从上到下依次是:
- 分区方案(Partitioning scheme):选
classic_single_disk经典单盘、zfs_centric、btrfs_centric、raid0_luks等;还能进一步设置启动类型(efi/bios)、是否使用 swap、根文件系统类型、是否 LUKS 加密,以及目标磁盘; - 主机名与时区(Hostname & Timezone):填主机名、选时区、键盘布局和 locale;
- Stage3 与 Portage:选择 systemd 还是 OpenRC 的 stage3 变体、Portage 用 git 还是 rsync 同步、选择 Gentoo 镜像;
- 可选功能:是否安装 sshd、root 的 SSH 公钥、附加软件包等。
选中某个选项后可以按Select进入子菜单,按Help查看每个选项的详细解释,最后按Save保存为gentoo.conf。整个过程其实很简单——就像在手机设置里调参数一样。
路线 B:直接编辑配置文件
如果你更喜欢文本编辑器的手感,也可以跳过界面,直接基于示例文件写配置:
cp gentoo.conf.example gentoo.conf vim gentoo.conf # 换成你顺手的编辑器即可gentoo.conf.example里的注释写得非常详尽,几乎每个变量都配了中文都能看懂的说明(咳,其实是英文,但逻辑很直白)。这里有我最常用的几个核心选项,供你参考:
| 配置项 | 可选值示例 | 说明 |
|---|---|---|
create_classic_single_disk_layout swap=8GiB type=efi luks=true root_fs=ext4 /dev/sdX | 磁盘布局函数 | 经典单盘方案:boot + swap + root,root 可选 LUKS 加密 |
STAGE3_VARIANT | systemd/openrc | 决定用哪个初始化系统 |
KERNEL_TYPE | bin/source | bin用预编译内核,source本地编译 |
PORTAGE_SYNC_TYPE | git/rsync | Portage 树同步方式,git 更快 |
ENABLE_SSHD | true/false | 是否安装并配置安全的 sshd |
ADDITIONAL_PACKAGES | ("app-editors/neovim") | 安装结束后额外要装的软件 |
无论走哪条路,有一个开关是必须手动打开的:配置末尾的I_HAVE_READ_AND_EDITED_THE_CONFIG_PROPERLY=false,把它改成true。这相当于向脚本确认「我已认真读过配置」。我第一次就是因为没改这个值,被脚本礼貌地拦了下来。
四、第 3 步:运行./install,看脚本替你完成七件大事
配置保存好后,就进入真正的安装环节了:
./install脚本会先要求你确认分区方案——这是动手前最后一道安全闸门,请务必看清楚目标磁盘,别装错盘(这也是我反复提醒自己的事)。确认之后,脚本会大致按下面这个顺序自动推进:
- 分区:按你的磁盘方案自动分区,并挂载好文件系统;
- 下载并解压 stage3:从镜像站拉取基础系统压缩包,并做加密校验防止内容被篡改;
- 初始化 Portage:同步软件仓库、可选运行 mirrorselect 挑选最快镜像;
- 基础系统配置:写入主机名、时区、键盘布局、locale;
- 安装内核等必要软件包:默认装
gentoo-kernel-bin预编译内核,配合 dracut 生成 initramfs; - 让系统可引导:自动生成 fstab、构建 initramfs,并通过 efibootmgr 或 syslinux 写入启动项;
- 收尾保障:配置有线网络、装好 eix 查询工具、设置 root 密码;如果勾选了 sshd 或附加软件包,也会在这一步完成。
分区完成之后,绝大多数流程可以无人值守地跑完。万一某个软件包编译失败,脚本不会直接放弃,而是弹出选项让你选择:进入 shell 修复、重试、或跳过。这种「带救生圈」的设计,是它区别于普通脚本的最大亮点。
五、重启进入新系统:第一次登录后建议做的三件事
安装结束、拔掉 Live 启动盘重启后,你会第一次进入自己亲手(其实是脚本帮你)装好的 Gentoo 系统。登录 root 后,先别急着得意,我建议你按下面三步把系统再打磨一下:
- 读一下 Portage 新闻:Gentoo 的重大变更会通过新闻通知,运行
eselect news read逐条查看即可; - 把内核换成自编译的:默认的预编译内核兼容性最好,但 Gentoo 的精髓在于定制。等你熟悉了之后,可以用
KERNEL_TYPE=source重新安装,再逐步精简内核模块; - 优化编译参数:用
resolve-march-native工具把CFLAGS设置为匹配你 CPU 的原生指令集,再用cpuid2cpuflags生成CPU_FLAGS_X86。这两步能让软件编译速度和运行性能都有肉眼可见的提升。
另外,以后升级内核时,脚本已经贴心地在/boot/efi/(EFI 启动)或/boot/bios/(BIOS 启动)下放置了generate_initramfs.sh脚本,跟着「emerge 新内核 → eselect kernel set → 重新生成 initramfs → 拷贝内核」的流程走即可,无需再从零折腾。
六、装到一半出问题?三招自救方法请收好
哪怕脚本再贴心,Gentoo 软件仓库日新月异,偶尔也会遇到棘手情况。别慌,这里有三招足够应对大多数场景:
第一招:利用脚本自带的「紧急 shell」。安装过程中若某条关键命令失败,脚本会询问你的处理方式,此时按S键即可进入 chroot 环境内的紧急 shell,你可以像平时一样执行命令修复问题,修完按Ctrl-D退出,再选择retry重试。
第二招:用--chroot进入装好的系统修东西。系统装好后如果启动失败需要进去修复,只需挂载好你的根分区到/mnt,然后运行:
./install --chroot /mnt脚本会自动挂载必要的特殊文件系统并进入 chroot,退出时还会帮你清理干净,非常省心。
第三招:熟记两个高频问题的解法。
| 现象 | 原因与对策 |
|---|---|
| chroot 里装 ZFS 失败 | 新版 ZFS 模块要求的内核版本高于 stable 提供,可在紧急 shell 里临时追加echo 'ACCEPT_KEYWORDS="~amd64"' >> /etc/portage/make.conf再重试 |
| 分区后 blkid 找不到 UUID | 磁盘上有残留文件系统签名干扰识别,先用wipefs -a <设备>彻底清空磁盘再重装 |
如果你遇到的是其他报错,注意看脚本输出的错误信息——它几乎对每条关键命令都做了成功检查,给出的提示通常已经很具体了。
七、进阶玩法:让安装器为你的自动化「打工」
当你跑通一次安装、觉得「不过瘾」时,还有几个高阶功能值得解锁:
- SSH 远程管理:配置里开启
ENABLE_SSHD=true并填入ROOT_SSH_AUTHORIZED_KEYS,装好的系统会自带一份「仅允许 ed25519 密钥、禁止密码登录」的安全 sshd 配置,你可以直接在局域网里用 Ansible 之类的工具继续自动化后续部署; - 附加软件包:往
ADDITIONAL_PACKAGES数组里加软件名(如app-editors/neovim),安装收尾时脚本会替你一并装好; - 钩子(Hooks):
gentoo.conf.example尾部提供了before_install、after_install等一系列钩子函数,想在任何阶段插入自定义逻辑,只要取消注释、写上你的命令即可。
想深入了解脚本实现细节的话,可以翻翻仓库里的scripts/main.sh(安装主流程)、scripts/config.sh(磁盘布局函数)和tests/(自动化测试与 shellcheck 检查),它们既是文档,也是很好的 Bash 学习范本。
八、总结:从「被劝退」到「三小时装机」
回头看,gentoo-install 打动我的地方不在于它「替你做完了什么」,而在于它把 Gentoo 官方手册里最繁琐、最容易出错的环节变成了可复现的流程:./configure配出符合心意的方案,./install一键推进,出错时还有紧急 shell 和 chroot 兜底。对于新手,它是一张低门槛的入场券;对于老手,它是一份可版本化的最佳实践清单。
下一步,建议你先在一台虚拟机里完整跑一遍安装流程(仓库的tests/create-vm-gentoo.sh就是干这个的),熟悉之后再上真机。装完记得像第五节说的那样,花点时间阅读 Portage 新闻、体验编译自己的内核——到那时,你才算真正摸到了 Gentoo 的门道。祝装机顺利!
【免费下载链接】gentoo-installA gentoo installer with a TUI interface that supports systemd and OpenRC, EFI and BIOS, as well as variable disk layouts using ext4, zfs, btrfs, luks and mdraid.项目地址: https://gitcode.com/gh_mirrors/ge/gentoo-install
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
