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