联网
分区
分区方案:
| 磁盘 |
大小 |
类型 |
| 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
|
挂载根分区
下载 Sgtage
解压 Stage
1
|
tar xpvf stage-* -C /mnt
|
创建 efi 目录
挂载 efi 分区
1
|
mount /dev/sda1 /mnt/boot/efi
|
生成 fstab
1
|
xgenfstab -U /mnt > /mnt/etc/fstab
|
进入新系统
配置 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
列出 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
|
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
设置 root 密码
同步快照
配置 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,把官方源改成国内源即 可。中科大、清华、北外源都行。
密钥验证
安装固件
安装内核
内核推荐gentoo-kernel-bin这个是预编译包,自己编译就选gentoo-kernel或gentoo-sources,至于怎么编译我这里就不过多叙述了。
1
|
emerge installkernel gentoo-kernel-bin
|
安装引导
配置引导
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 环境
重启进入新系统
同步 portaget 树
选择 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
更新 world