gentoo安装教程

下载镜像

CD镜像可以从官方下载页或任意一个镜像站下载。


配置启动盘

使用软件配置该镜像的启动盘

或者在已有linux系统上dd写入U盘

1
dd if=install-amd64-minimal-<发布时间戳>.iso of=/dev/sdd bs=4096 status=progress && sync

基础安装

网络配置

有线的不用配置,ping的通就行,例如ping archlinux.org
无线的可以使用以下命令配置网络

1
net-setup

启动SSH服务

1
rc-service sshd start

这样可以通过ssh进行连接操作
开启后记得设置一下密码,默认的livecd账户都是root

1
passwd

查看ip

1
ip -br a s

然后连接即可

分区

可以采用cfdiskpartedfdisk又或者gdisk
我这里模拟测试分的是30G

分区 大小
EFI 1G
swap 4G
/ 25G
cfdisk配置的话类型分别选择EFI、Linux Swap、Linux FileSystem
partedfdisk就不用管,一个类型标签而已,不影响,只是加了方便看而已,按规定大小分区就行

格式化分区

btrfsext4xfs文件系统个人习惯

  • 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分区

1
mkswap /dev/sda2

格式化/分区

1
mkfs.ext4 /dev/sda3

挂载配置分区

启用swap分区

1
swapon /dev/sda2

查看swap分区启用情况

1
swapon -s

挂载/分区

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。

首先移动到根

1
cd /mnt/gentoo

date查看时间是否符合

1
date

使用ntp来纠正时钟偏差

1
chronyd -q

下载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

1
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,我改为

1
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编辑添加

1
sys-devel/gcc graphite

这里我就不加了,比较慢

可以加-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

1
arch-chroot /mnt/gentoo

有些发行版会将/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
emerge-webrsync

阅读新闻条目

1
2
eselect news list
eselect news read

选择正确的配置文件

1
eselect profile list

这里的默认选择,适合hyperland

1
[4]   default/linux/amd64/23.0/desktop/systemd (stable) *

这边我改选为

1
eselect profile set 7
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
# 编辑 sdl2 配置文件,删除或注释掉那一行
nano /etc/portage/package.use/sdl2

# 保存退出后,重新更新一次 libsdl2 即可
emerge --ask --verbose media-libs/libsdl2

删除没用的包

查看输出,是否确定删除

1
emerge --ask --pretend --depclean

happy,那就删除

1
emerge --ask --depclean

设置时区

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文件中的所有指定的地区

1
locale-gen

现在当前配置

1
eselect locale list

更改配置,我这里的4是en_US

1
eselect locale set 4

现在重新加载环境

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
dispatch-conf

安装

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

生成分区信息

1
genfstab /

以UUID的方式挂载生成分区信息

1
genfstab -U /

输出到fstab

1
genfstab -U / > /etc/fstab

配置主机名

例如galaxy

1
echo galaxy > /etc/hostname

配置dhcp

安装dhcp包

1
emerge --ask net-misc/dhcpcd

确保systemd中启用服务

1
systemctl enable dhcpcd

设置root密码

1
passwd

启用sshd

1
systemctl enable 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

1
emerge -av 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 用户名

设置一下密码

1
passwd 用户名

给wheel组开放管理员权限

1
2
3
visudo

%wheel ALL=(ALL:ALL) ALL

安装sudo工具

1
emerge --ask app-admin/sudo

删除stage文件(可选)

1
rm /stage3-*.tar.*

安装图形化界面

安装完整的kde桌面

1
2
# 安装完整 KDE 桌面(包含 Plasma、常用工具)
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
# 设置 SDDM 为默认显示管理器(生成 systemd 配置)
echo "DISPLAYMANAGER=sddm" > /etc/conf.d/display-manager

启用sddm服务

1
2
# 启用并启动 SDDM 服务(开机自启 + 立即生效)
systemctl enable --now sddm.service