安装时网络
开启dhcp
dhcpcd eth0
测试网络:
ping baidu.com
不能通:
net-setup
分区
fdisk /dev/vda
分一个256的efi(/dev/vda1),用于挂载到/boot,再分一个32G的swap,再分一个/(/dev/vda3)
文件系统
efi
mkfs.vfat -F 32 /dev/vda1
/
mkfs.ext4 /dev/vda3
swap建议先不要开。
挂载分区
mkdir --parents /mnt/gentoo
mount /dev/vda3 /mnt/gentoo
安装stage包
设置时间
date 102113392022 #日月时分年
下载stage
cd /mnt/gentoo
links https://mirrors.tuna.tsinghua.edu.cn/gentoo
选里面的release/amd64/autobuilds/里的stage3-*desktop-oprc*。
解压:
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner
配置编译选项
nano -w /mnt/gentoo/etc/portage/make.conf
参照着官网给的改一下:
# 为所有语言设置编译标志
COMMON_FLAGS="-march=native -O2 -pipe"
# 为两个变量使用相同的设置
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
在make.conf中最好再加上
MAKEOPTS="-j2"
这里-j后面的数字取决于你的RAM,每个job需要至少2GB,如-j6需要12GB。
选择镜像站点
分发文件
官网给的是:
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
这个命令在我这里用不了,只能手加了,选清华源:
nano /mnt/gentoo/etc/portage/make.conf
在里面加上:
GENTOO_MIRRORS="https://mirrors.tuna.tsinghua.edu.cn/gentoo"
Gentoo build软件仓库
通过复制/etc/portage/repos.conf/gentoo.conf文件来配置。
$ mkdir --parents /mnt/gentoo/etc/portage/repos.conf
$ cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
实测后面安装软件用官方链接很慢,所以还是把它换成清华源,
修改 /etc/portage/repos.conf/gentoo.conf
,
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
修改为
sync-uri = rsync://mirrors.tuna.tsinghua.edu.cn/gentoo-portage
复制DNS
在进行新环境之前,还有一件要做的事情就是复制/etc/resolv.conf
中的DNS信息。需要完成这个来确保即使进入到新环境后网络仍然可以使用。/etc/resolv.conf
包含着当前网络中的DNS服务器。
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
cp命令的 --dereference 选项。这可以保障如果/etc/resolv.conf是一个符号链接的话,复制的是那个目标文件而不是这个符号文件自己。
挂载文件系统
mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
mount --bind /run /mnt/gentoo/run
mount --make-slave /mnt/gentoo/run
–make-rslave操作是稍后安装systemd支持时所需要的。
进入新环境
完成chroot有三个步骤:
- 使用 chroot 将根目录的位置从 /(在安装媒介里)更改成 /mnt/gentoo/ (在分区里)
- 使用 source 命令将一些设置(那些在 /etc/profile 中的)重新载入到内存中
- 更改主提示符来帮助我们记住当前会话在一个 chroot 环境里面。
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot)${PS1}"
挂载boot分区:
现在已经进入新的环境,必须创建并挂载 boot 分区。 当编译内核并安装引导加载程序时,这将非常重要
mount /dev/vda1 /boot
配置Portage
emerge --sync
这里sync比较慢,我们前面设置的是系统的,这里还在引导,所以设置环境变量用清华源:
export GENTOO_MIRRORS="http://mirrors.tuna.tsinghua.edu.cn/gentoo"
export GNU_URL="http://mirrors.tuna.tsinghua.edu.cn/gnu"
export SNAPSHOT_URL="http://mirrors.tuna.tsinghua.edu.cn/gentoo/snapshots"
选择正确的配置文件:
eselect profile list
选default/linux/amd64/17.1/desktop
:
eselect profile set 2
配置文件是任何一个Gentoo系统的积木。它不仅指定USE、CFLAGS和其它重要变量的默认值,还会锁定系统的包版本范围。这些设定全是由Gentoo的Portage开发者们来维护。
更新@world集合
emerge --ask --verbose --update --deep --newuse @world
这一步比较慢,好等。
配置USE变量
CPU_FLAGS_*
$ emerge --ask app-portage/cpuid2cpuflags
$ echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags
时区
echo "Asia/Shanghai" > /etc/timezone
区域设置生成
$ nano -w /etc/locale.gen
#改成下面的:
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN,UTF-8 UTF-8
$ locale-gen
区域设置选择
先不管
编译内核
安装内核源码:
emerge --ask sys-kernel/gentoo-sources
这会在/usr/src
中安装源码。
可用查看一下,列出所有已经安装的内核:
eselect kernel list
[1] linux-5.15.52-gentoo
要创建一个名为 linux 的符号链接,使用:
$ eselect kernel set 1
$ ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-5.15.52-gentoo
配置内核选项
看官网
安装预编译内核
vi /etc/portage/make.conf ACCEPT_LICENSES="linux-fw-redistributable no-source-code"
emerge gentoo-kernel-bin
文件系统信息
nano -w /etc/fstab
参照下面的:
调整与准备磁盘步骤的任何格式差异
/dev/sda1 /boot vfat defaults,noatime 0 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext4 noatime 0 1
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
网络
安装配置dhcp
emerge --ask net-misc/dhcpcd
rc-update add dhcpcd default
rc-service dhcpcd start
在Gentoo Linux安装时,网络已经配置。然而,这是安装的 live 环境本身的配置,并不是新的系统环境的网络配置。现在你所要设置的是 Gentoo 系统的永久网络配置。
emerge --ask --noreplace net-misc/netifrc
nano -w /etc/conf.d/net
在里面写上(根据你的网卡):
config_网卡名="dhcp"
为了在启动时自动激活网络接口,你必须添加这些到default运行级别。
cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default
系统信息
root密码
passwd
安装系统日志工具(可选)
emerge --ask app-admin/sysklogd
rc-update add sysklogd default
cron守护进程(可选)
emerge --ask sys-process/cronie
rc-update add cronie default
文件索引(可选)
emerge --ask sys-apps/mlocate
sshd(可选)
rc-update add sshd default
时间同步
emerge --ask net-misc/chrony
rc-update add chronyd default
dhcpcd
emerge --ask net-misc/dhcpcd
引导器
用grub
emerge --ask --verbose sys-boot/grub
UEFI用户注意:运行上述命令将在出现之前输出启用的GRUB_PLATFORMS 值。 当使用支持UEFI的系统时,用户需要确保启用 GRUB_PLATFORMS=“efi-64” 参数(默认情况下是这样)。 如果设置不是这样,则需要在安装 GRUB 之前将 GRUB_PLATFORMS="efi-64"添加到/etc/portage/make.conf:
root #echo ‘GRUB_PLATFORMS=“efi-64”’ >> /etc/portage/make.conf
root #emerge --ask sys-boot/grub
UEFI:
grub-install --target=x86_64-efi --efi-directory=/boot
当/boot分区没有格式化成vfat时,必须修改 --efi-directory选项到EFI系统分区。
grub-mkconfig -o /boot/grub/grub.cfg
重启系统
(chroot)none$ exit
- Group Description
- audio 允许使用声音设备
- cdrom 允许直接使用光驱设备
- floppy 允许直接使用软驱
- games 允许运行游戏
- portage 能够访问portage受限资源。
- usb 允许使用USB设备
- video 允许使用视频采集设备和硬件加速
- wheel 可以使用su.
cdimage ~#cd
cdimage ~#umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~#umount -R /mnt/gentoo
cdimage ~#reboot
用户管理
useradd -m -G users,whell,audio -s /bin/bash sixqaq
passwd sixqaq
删除tar包
rm /stage3-*.tar.*
完成。