Gentoo GNU/Linux 安装指南

联网

分区

分区方案:

磁盘 大小 类型
sda1 300M efi
sda2 剩余空间 /

这里我用fdisk来分区,用法 fdisk /dev/sda 或 fdisk /dev/nvme,具体名称可通过lsblk 查看。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
fdisk /dev/sda

输入:g #将磁盘类型转换成gpt
输入:n #新建分区
默认回车
默认回车
输入:+300M #设置磁盘大小为300M
输入:t #更改分区类型
输入:1 #将分区类型改为 efi 分区

输入:n #新建分区
默认回车
默认回车
默认回车 #设置磁盘大小为剩余空间
输入:t
默认回车 #选择需要更改的分区,默认是2所以回车就行
输入:23 #分区类型改为 linux root(x86_64)

输入:p #列出分区表
输入:wq #保存退出

当然根分区你不改成linux root(x86_64),默认的linux filesystem也能正常使用。

格式化分区

1
2
mkfs.fat -F 32 /dev/sda1
mkfs.ext4 /dev/sda2

挂载根分区

1
mount /dev/sda2 /mnt

下载 Sgtage

解压 Stage

1
tar xpvf stage-* -C /mnt

创建 efi 目录

1
mkdir /mnt/boot/efi

挂载 efi 分区

1
mount /dev/sda1 /mnt/boot/efi

生成 fstab

1
xgenfstab -U /mnt > /mnt/etc/fstab

进入新系统

1
xchroot /mnt

配置 make.conf

配置文件路径: /etc/portaget/make.conf

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

# NOTE: This stage was built with the bindist USE flag enabled
MAKEOPTS="-j6" # 编译线程,比如8核16线程的可以给个14
ACCEPT_LICENSE="*" # 接受所有软件,自由和非自由闭源软件
EMERGE_DEFAULT_OPTS="--getbinpkg --usepkg" # 获取预编译包和使用预编译包
GENTOO_MIRRORS=https://mirrors.bfsu.edu.cn/gentoo # 快照镜像站

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C.UTF-8

设置主机名

1
echo host > /etc/hostname

配置本地化

1
2
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen

生成 locale

1
locale-gen

列出 locale 列表

1
2
3
4
5
6
7
8
9
eselect locale list

Available targets for the LANG variable:
  [1]  C
  [2]  C.UTF-8
  [3]  POSIX
  [4]  en_US.UTF-8
  [5]  zh_CN.UTF-8
  [ ]  (free form)

选择 locale

1
eselect locale set 4

设置时区

1
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

设置 root 密码

1
passwd

同步快照

1
emerge-webrsync

配置 portage 源

创建 repos.conf 目录

1
2
mkdir /etc/portage/repos.conf
cp /usr/share/portage/config/repos.conf /etc/portage/repos.conf

配置文件路径: /etc/portage/repos.conf/repos.conf

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
[DEFAULT]
main-repo = gentoo

[gentoo]
location = /var/db/repos/gentoo
sync-type = rsync
sync-uri = rsync://mirrors.bfsu.edu.cn/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 3
sync-openpgp-key-package = sec-keys/openpgp-keys-gentoo-release
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-keyserver = hkps://keys.gentoo.org
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4
sync-webrsync-verify-signature = yes
sync-git-verify-commit-signature = true

提示💡: 只需要改sync-uri,把官方源改成国内源即可。中科大、清华、北外源都行。

配置二进制包源

配置文件路径:/etc/portaget/binrepos.conf/gentoo.conf

1
2
3
4
5
6
7
8
9
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consider using a local mirror.

[gentoo]
priority = 9959
sync-uri = https://mirrors.bfsu.edu.cn/gentoo/releases/amd64/binpackages/23.0/x86-64
verify-signature = true
location = /var/cache/binhost/gentoo

如果你的 CPU 支持 x86-64-v3 把这个加在后面。

1
2
3
4
5
[gentoo-x86-64-v3]
priority = 9999
sync-uri = https://mirrors.bfsu.edu.cn/gentoo/releases/amd64/binpackages/23.0/x86-64-v3/
verify-signature = true
location = /var/cache/binhost/gentoo-x86-64-v3

提示💡: 只需要改sync-uri,把官方源改成国内源即 可。中科大、清华、北外源都行。

密钥验证

1
getuto

安装固件

1
emerge linux-firmware

安装内核

内核推荐gentoo-kernel-bin这个是预编译包,自己编译就选gentoo-kernelgentoo-sources,至于怎么编译我这里就不过多叙述了。

1
emerge installkernel gentoo-kernel-bin

安装引导

1
emerge grub

配置引导

1
2
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Gentoo GNU/Linux"
grub-mkconfig -o /boot/grub/grub.cfg

退出 chroot 环境

1
exit

重启进入新系统

1
init 6 或 reboot

同步 portaget 树

1
emerge --sync

选择 profile

列出 profile

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
eselect profile list

Available profile symlink targets:
  [1]   default/linux/amd64/23.0 (stable)
  [2]   default/linux/amd64/23.0/systemd (stable)
  [3]   default/linux/amd64/23.0/desktop (stable)
  [4]   default/linux/amd64/23.0/desktop/systemd (stable) *
  [5]   default/linux/amd64/23.0/desktop/gnome (stable)
  [6]   default/linux/amd64/23.0/desktop/gnome/systemd (stable)
  [7]   default/linux/amd64/23.0/desktop/plasma (stable)
  [8]   default/linux/amd64/23.0/desktop/plasma/systemd (stable)
  [9]   default/linux/amd64/23.0/no-multilib (stable)
  [10]  default/linux/amd64/23.0/no-multilib/systemd (stable)
  [11]  default/linux/amd64/23.0/no-multilib/hardened (stable)
  [12]  default/linux/amd64/23.0/no-multilib/hardened/systemd (stable)
  [13]  default/linux/amd64/23.0/no-multilib/hardened/selinux (stable)
  [14]  default/linux/amd64/23.0/no-multilib/hardened/selinux/systemd (stable)
  [15]  default/linux/amd64/23.0/no-multilib/prefix (exp)
  [16]  default/linux/amd64/23.0/no-multilib/prefix/kernel-2.6.32+ (exp)
  [17]  default/linux/amd64/23.0/no-multilib/prefix/kernel-2.6.16+ (exp)
  [18]  default/linux/amd64/23.0/no-multilib/prefix/kernel-3.2+ (exp)
  [19]  default/linux/amd64/23.0/llvm (exp)
  [20]  default/linux/amd64/23.0/llvm/systemd (exp)
  [21]  default/linux/amd64/23.0/hardened (stable)
  [22]  default/linux/amd64/23.0/hardened/systemd (stable)
  [23]  default/linux/amd64/23.0/hardened/selinux (stable)
  [24]  default/linux/amd64/23.0/hardened/selinux/systemd (stable)
  [25]  default/linux/amd64/23.0/split-usr (stable)
  [26]  default/linux/amd64/23.0/split-usr/desktop (stable)
  [27]  default/linux/amd64/23.0/split-usr/desktop/gnome (stable)
  [28]  default/linux/amd64/23.0/split-usr/desktop/plasma (stable)
  [29]  default/linux/amd64/23.0/split-usr/no-multilib (stable)
  [30]  default/linux/amd64/23.0/split-usr/no-multilib/selinux (stable)
  [31]  default/linux/amd64/23.0/split-usr/no-multilib/hardened (stable)
  [32]  default/linux/amd64/23.0/split-usr/no-multilib/hardened/selinux (stable)
  [33]  default/linux/amd64/23.0/split-usr/no-multilib/prefix (exp)
  [34]  default/linux/amd64/23.0/split-usr/no-multilib/prefix/kernel-2.6.32+ (exp)
  [35]  default/linux/amd64/23.0/split-usr/no-multilib/prefix/kernel-2.6.16+ (exp)
  [36]  default/linux/amd64/23.0/split-usr/no-multilib/prefix/kernel-3.2+ (exp)
  [37]  default/linux/amd64/23.0/split-usr/llvm (exp)
  [38]  default/linux/amd64/23.0/split-usr/hardened (stable)
  [39]  default/linux/amd64/23.0/split-usr/hardened/selinux (stable)
  [40]  default/linux/amd64/23.0/x32 (dev)
  [41]  default/linux/amd64/23.0/x32/systemd (exp)
  [42]  default/linux/amd64/23.0/split-usr/x32 (exp)
  [43]  default/hurd/amd64/23.0 (exp)
  [44]  default/linux/amd64/23.0/musl (dev)
  [45]  default/linux/amd64/23.0/musl/systemd (dev)
  [46]  default/linux/amd64/23.0/musl/llvm (exp)
  [47]  default/linux/amd64/23.0/musl/llvm/systemd (exp)
  [48]  default/linux/amd64/23.0/musl/hardened (exp)
  [49]  default/linux/amd64/23.0/musl/hardened/systemd (exp)
  [50]  default/linux/amd64/23.0/musl/hardened/selinux (exp)
  [51]  default/linux/amd64/23.0/split-usr/musl (dev)
  [52]  default/linux/amd64/23.0/split-usr/musl/llvm (exp)
  [53]  default/linux/amd64/23.0/split-usr/musl/hardened (exp)
  [54]  default/linux/amd64/23.0/split-usr/musl/hardened/selinux (exp)

选择 profile

1
eselect profile set 4

更新 world

1
emerge -avuDN @world
本站文章采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
使用 Hugo 构建,主 题 StackJimmy 设计