gentoo安装教程
下载镜像
CD镜像可以从官方下载页或任意一个镜像站下载。
配置启动盘
使用软件配置该镜像的启动盘
或者在已有linux系统上dd写入U盘
1
| dd if=install-amd64-minimal-<发布时间戳>.iso of=/dev/sdd bs=4096 status=progress && sync
|
基础安装
网络配置
有线的不用配置,ping的通就行,例如ping archlinux.org
无线的可以使用以下命令配置网络
启动SSH服务
这样可以通过ssh进行连接操作
开启后记得设置一下密码,默认的livecd账户都是root
查看ip
然后连接即可
分区
可以采用cfdisk或parted或fdisk又或者gdisk
我这里模拟测试分的是30G
| 分区 |
大小 |
| EFI |
1G |
| swap |
4G |
| / |
25G |
cfdisk配置的话类型分别选择EFI、Linux Swap、Linux FileSystem |
|
parted和fdisk就不用管,一个类型标签而已,不影响,只是加了方便看而已,按规定大小分区就行 |
|
格式化分区
btrfs、ext4、xfs文件系统个人习惯
btrfs有快照功能,更方便,但读写次数多,长期容易损坏硬盘,适用想频繁快照恢复的
ext4是非常常用的一种,稳定比较高,适用个人
xfs性能提升了一点,但是文件系统不能缩小,适用与服务器
这边我使用ext4
1 2 3 4
| sda 8:0 0 30G 0 disk ├─sda1 8:1 0 1G 0 part ├─sda2 8:2 0 4G 0 part └─sda3 8:3 0 25G 0 part
|
比如分区用以下命令
格式化EFI分区
1
| mkfs.vfat -F 32 /dev/sda1
|
格式化swap分区
格式化/分区
挂载配置分区
启用swap分区
查看swap分区启用情况
挂载/分区
1
| mount /dev/sda3 /mnt/gentoo
|
注:如果不存在/mnt/gentoo,可以采用如下命令创建
1
| mkdir --parents /mnt/gentoo
|
挂载EFI分区(这边用的是/efi,有三种/efi,/boot,/boot /boot/efi)
这里采用的是efi安装的就先创建先
1
| mkdir --parents /mnt/gentoo/efi
|
1
| mount /dev/sda1 /mnt/gentoo/efi
|
安装stage文件
Gentoo 的 stage 文件 是用于快速初始化系统安装的 预编译基础系统镜像,其核心作用是跳过最耗时的系统核心组件编译步骤,为后续手动配置和编译完整系统打下基础。
根据编译程度和用途,stage 文件主要分为以下几类,对应不同的安装需求:
- stage3:最常用的类型,包含完整的基础系统(如内核、编译器、基础命令等),已预编译并可直接启动,适合绝大多数用户快速开始安装。
- stage1/stage2:仅包含最核心的工具链(如GCC、binutils),需从源码逐步编译出完整基础系统,仅用于追求极致自定义(如特殊架构、最小化系统)的高级用户,普通用户无需使用。
- stage4:非官方标准类型,通常是第三方制作的 “半成品”系统镜像(可能包含桌面环境、驱动等),旨在进一步简化安装,但兼容性和定制性不如官方 stage3。
首先移动到根
date查看时间是否符合
使用ntp来纠正时钟偏差
下载stage文件,例如本案例采用清华源的stage3的amd64-destop-systemd
1
| wget https://mirrors.tuna.tsinghua.edu.cn/gentoo/releases/amd64/autobuilds/20250831T170358Z/stage3-amd64-desktop-systemd-20250831T170358Z.tar.xz
|
解压一下
1
| tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner -C /mnt/gentoo
|
配置编译选项
vim 编辑etc/portage/make.conf,不会用可以用nano
1
| vim etc/portage/make.conf
|
添加如下配置
1 2 3 4 5 6 7 8
| MAKEOPTS="-j12" GENTOO_MIRRORS="https://mirrors.tuna.tsinghua.edu.cn/gentoo/" USE="systemd -elogind alas pipewire icu policykit udisks archive udev -gtk -gnome qt6 qt5 gtk4 gtk3 gtk2 kde alsa X xorg wayland opengl vulkan fcitx dist-kernel dbus openssl ffmpeg" VIDEO_CARDS="amdgpu radeonsi" ACCEPT_LICENSE="*" LINGUAS="en en_US zh zh_CN" L10N="en en-US zh zh-Hans zh-Hans-CN zh-CN" GRUB_PLATFORMS="efi-64"
|
注意:
MAKEOPTS:编译的线程数,最好取你的CPU逻辑核心数和已内存为单位的/2之间选一个小的
我这里8G内存,4核2线程也就是8线程。保守的话就3
GENTOO_MIRRORS:设置为tuna清华源
USE:
- systemd 因为这里用的stage守护进程选的是systemd,用着优化更好,-elogind避免与systemd冲突
- pipewire是音频守护进程
- policykit事关权限要加
- archive文件管理器
- -gtk -gnome kde意思是不用gnome桌面环境,用kde。用gnome的话就是-gtk gnome -kde
- X xorg图形化显示协议,新的一种是wayland,但兼容性没有xorg好,都开
- vulkan 对显卡的一些优化
- fcitx输入法
- openssl可以选依赖
- ffmpeg对音频进行优化
VIDEO_CARDS:
这个可以在gentoo wiki安装选择适合自己的
gentoo wiki VIDEO_CARDS:
https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation/en#VIDEO_CARDS
这边我intel,我改为
ACCEPT_LICENSE:*,所有的证书都允许,省事
GRUB_PLATFORMS:grub boot lodaer引导的设置
可以修改添加一下COMMON_FLAGS,对cpu进行一下优化,O2是比较保守的优化,激进一点就O3,-pipe指用管道进行编译,会加快速度,但是对内存有要求
1
| COMMON_FLAGS="-march=native -O2 -pipe"
|
加上-finline-functions
1
| COMMON_FLAGS="-march=native -O2 -pipe -finline-functions"
|
要加-fgraphito-identity如下参数,还要新建编辑一个文件etc/portage/package.use/gcc,vim编辑添加
这里我就不加了,比较慢
可以加-fno-math-errno -fno-trapping-math,对浮点进行优化
1
| COMMON_FLAGS="-march=native -O2 -pipe -finline-functions -fno-math-errno -fno-trapping-math"
|
Chrooting
复制DNS信息
1
| cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
|
可以arch脚本移动到root
有些发行版会将/dev/shm链接到 /run/shm/,官方的这个min不用,如果是链接这种情况就得配置如下操作
1 2 3
| test -L /dev/shm && rm /dev/shm && mkdir /dev/shm mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm chmod 1777 /dev/shm /run/shm
|
进入新环境
1 2 3
| chroot /mnt/gentoo /bin/bash source /etc/profile export PS1="(chroot) ${PS1}"
|
配置Portage
更新一下webrsync,从网络安装 Gentoo ebuild 仓库快照
阅读新闻条目
1 2
| eselect news list eselect news read
|
选择正确的配置文件
这里的默认选择,适合hyperland
1
| [4] default/linux/amd64/23.0/desktop/systemd (stable) *
|
这边我改选为
1
| [7] default/linux/amd64/23.0/desktop/plasma (stable) *
|
更新@world集合
1
| emerge --ask --verbose --update --deep --changed-use @world
|
报错了
解决media-video/pipewire 包存在未满足的依赖约束
1 2 3 4 5
| # 新建 pipewire 配置文件 nano /etc/portage/package.use/pipewire
# 为 pipewire 启用 extra USE 标志,匹配 ffmpeg 依赖 media-video/pipewire extra
|
解决软件包循环依赖问题,核心是 ffmpeg、libsdl2、pipewire 三者之间形成了依赖闭环
1 2 3 4 5
| # 新建 sdl2 配置文件 nano /etc/portage/package.use/sdl2
# 临时关闭 libsdl2 的 pipewire 依赖,解决循环依赖问题 media-libs/libsdl2 -pipewire
|
重新执行更新命令,优先安装循环中的包
1
| emerge --ask --verbose --update --deep --changed-use @world
|
安装完成后恢复 libsdl2 的 pipewire 支持
1 2 3 4 5
| nano /etc/portage/package.use/sdl2
emerge --ask --verbose media-libs/libsdl2
|
删除没用的包
查看输出,是否确定删除
1
| emerge --ask --pretend --depclean
|
happy,那就删除
设置时区
1
| ln -sf ./usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
生成时区设置
1 2 3 4 5
| nano /etc/locale.gen
en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8
|
运行locale-gen命令,生成/etc/locale.gen文件中的所有指定的地区
现在当前配置
更改配置,我这里的4是en_US
现在重新加载环境
1
| env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
|
安装内核
编辑/etc/portage/package.use/installkernel
1 2
| nano /etc/portage/package.use/installkernel sys-kernel/installkernel grub
|
更新配置文件
安装
1
| emerge --ask sys-kernel/gentoo-kernel
|
安装固件和微码
安装Linux Firmware
1
| emerge --ask sys-kernel/linux-firmware
|
安装SOF Firmware
1
| emerge --ask sys-firmware/sof-firmware
|
安装intel的微码
1
| emerge -av sys-firmware/intel-microcode
|
配置fstab文件
便捷的方法:安装genfstab工具自动生成
1
| emerge -av sys-fs/genfstab
|
生成分区信息
以UUID的方式挂载生成分区信息
输出到fstab
1
| genfstab -U / > /etc/fstab
|
配置主机名
例如galaxy
1
| echo galaxy > /etc/hostname
|
配置dhcp
安装dhcp包
1
| emerge --ask net-misc/dhcpcd
|
确保systemd中启用服务
设置root密码
启用sshd
Shell补全安装和启用
1
| emerge --ask app-shells/bash-completion
|
安装时间同步包
安装
1
| emerge --ask net-misc/chrony
|
启用时间同步服务
1
| systemctl enable chronyd.service
|
文件系统工具
ext4工具下载
1
| emerge -av sys-fs/e2fsprogs
|
XFS工具下载
1
| emerge -av sys-fs/xfsprogs
|
btrfs工具下载
1
| emerge -av sys-fs/btrfs-progs
|
VFAT工具下载
1
| emerge --av sys-fs/dosfstools
|
建议安装 sys-block/io-scheduler-udev-rules 以确保与例如 nvme 设备等正确的调度器行为
1
| emerge --ask sys-block/io-scheduler-udev-rules
|
grub工具安装
1
| emerge --ask --verbose sys-boot/grub
|
如果要多系统检测引导的话,需要安装我们熟知os-prober
安装grub引导器
1
| grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=gentoo
|
生成配置grub配置文件
1
| grub-mkconfig -o /boot/grub/grub.cfg
|
重启之前,可以创建一个用户
1
| useradd -m -G users,wheel,audio -s /bin/bash 用户名
|
设置一下密码
给wheel组开放管理员权限
1 2 3
| visudo
%wheel ALL=(ALL:ALL) ALL
|
安装sudo工具
1
| emerge --ask app-admin/sudo
|
删除stage文件(可选)
安装图形化界面
安装完整的kde桌面
1 2
| emerge -av kde-plasma/plasma-meta
|
安装Xorg
1 2
| 安装 Xorg 服务器(图形化基础) emerge -av x11-base/xorg-server
|
安装sddm
1 2
| 安装 SDDM(KDE 官方显示管理器,systemd 兼容) emerge -av sys-apps/sddm
|
设置sddm为默认配置
1 2
| echo "DISPLAYMANAGER=sddm" > /etc/conf.d/display-manager
|
启用sddm服务
1 2
| systemctl enable --now sddm.service
|