一、分区和格式化

我是两块硬盘,/dev/sda是M.2接口的固态硬盘,/dev/sdb是西数的500G的机械硬盘,因为接触Gentoo时间不久,没敢装在固态硬盘里,在安装Gentoo系统和平时安装编译软件的时候会产生大量的零碎文件,有人说把临时文件挂载到内存,我没有尝试过,目前分区方案如下:

/dev/sda1    EFI分区    FAT32   #和Win10共享EFI目录,挂载到/boot/EFI目录下/dev/sdb1    /分区          ext4/dev/sdb2    swap分区/dev/sdb3    /home分区      ext4

相关命令:

使用parted来分区,mkfs.ext4来给/分区与home分区格式化

mkswap /dev/sdb2 && swapon /dev/sdb2  #创建和启动swap分区mount /dev/sdb1 /mnt/gentoo   #挂载根分区mkdir -p /mnt/gentoo/boot/EFI  #创建/boot/EFI目录mkdir /mnt/gentoo/home      #创建home目录mount /dev/sda1 /mnt/gentoo/boot/EFI #挂载EFI分区到/boot/EFI目录mount /dev/sdb3 /mnt/gentoo/home     #挂载/home分区

至此,所有分区已创建并挂载

二、下载Stage3与解压

cd /mnt/gentoolinks http://mirrors.163.com/gentoo   #下载Stage3tar xvjpf stage3-*.tar.bz2 --xattrs  #解压Stage3

三、设置编译参数

cpuinfo2cpuflags-x86 >> /mnt/gentoo/etc/portage/make.conf #使用前先安装它

执行完,修改make.conf,否则出现两行一样的变量。

CFLAGS="-march=native -O2 -pipe"

MAKEOPTS="-j5" (官方Wiki说CPU 核心+1是个不错的选择,这里是4核心)
LANGUAS="zh_CN"(设置软件编译里的 LANGUAS 变量)
VIDEO_CARDS="intel i965"(Intel的wiki页上说skylake应该这样修改VIDEO_CARDS变量)
INPUT_DEVICES="evdev" (我这是个人PC,如果是笔记本记得加synaptics来支持触控版)
GENTOO_MIRRORS="http://mirrors.163.com/gentoo/"(163软件源对我来说最快ustc也不错)

四、同步镜像设置

# mkdir /mnt/gentoo/etc/portage/repos.conf (添加软件仓库镜像目录)# cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf# vim /mnt/gentoo/etc/portage/repos.conf/gentoo.confsync-uri=rsync://mirrors.163.com/gentoo-portage

五、挂载并 Chroot 系统

挂载系统

# cp -L /etc/resolv.conf /mnt/gentoo/etc# cd /mnt/gentoo# mount -t proc proc /mnt/gentoo/proc# mount --rbind sys /mnt/gentoo/sys# mount --make-rsalve /mnt/gentoo/sys# mount --rbind dev /mnt/gentoo/dev# mount --make-rsalve /mnt/gentoo/dev

Chroot 到新系统

# chroot /mnt/gentoo /bin/bash (切换到新系统)# source /etc/profile (更新配置文件)# export PS1="(chroot) $PS1"(设置环境变量提示符)

六、同步 Portage 软件包树

# emerge-webrsync (通常不需要,我的网速足够快,直接emerge --sync就可以)# emerge --sync (更新portage树)

七、选择配置文件

# eselect profile list (列出所有可用profile选项)# eselect profile set 12(设置profile为systemd,没有desktop/systemd可选,在全局USE里设置了X)

八、USE Flag 设置

# vim /etc/portage/make.conf (编辑 make.conf 文件)
添加 USE Flag 标记
USE=“X systemd jpeg png -kde -ipv6” (根据情况不断增加与减少)

九、时区和本地化设置

时区设置

# echo "Asia/Shanghai" > /etc/timezone

本地化设置

语言设置

# vim /etc/locale.gen添加如下:en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8zh_CN.GBK GBKzh_CN.GB2312 GB2312zh_CN.GB18030 GB18030

更新语言列表

# locale-gen

设置本地语言

# eselect locale list (查看所有可用语言)# eselect locale set NUM(设置本地语言为英文,我是英文界面支持中文显示和中文输入法就可以了)

更新环境变量及配置文件

# env-update && source /etc/pfofile

十、安装内核

# emerge -avt gentoo-sources (安装内核)

十一、配置内核

cd /usr/src/linuxmake menuconfig(这步要注意参考Systemd,Stub_kernel,并根据自己硬件情况来选)make && make modules_installmake install(内核会生成到/boot目录下vm*文件,由于我是Stub_kernel,需要cp到/boot/EFI/EFI/Boot/bootx64.efi Stub_kernel wiki上要求)

十二、编辑启动挂载文件 fstab

# vim /etc/fstab

十三、为root设置密码

# passwd root

十四、安装引导

由于我不打算安装引导器(Grub2与Lilo之类)来引导,直接使用efibootmgr,之前的内核编译和安装已为此做好准备,EFI目录在/dev/sda的第一个分区,命令如下:

efibootmgr -c -d /dev/sda -p1 -L "Gentoo Linux" -l "\EFI\Boot\bootx64.efi"

这样就写到UEFI固件了,可以efibootmgr -v来看一下引导项,除了Windows的还有一个Gentoo linux的,直接在BIOS里面指定Windows还是Gentoo作为默认启动项,开机按F12也可以临时选择了,非常方便,对于有强迫症的我来说,这比多一层grub优雅多了,还有一层原因是可以开启主板和Windows的快速启动,一点也不影响。网上这块的教程几乎没有,有不懂的小伙伴可以在下面留言交流!

*安装过程过出现的问题:

内核配置systemd方面Build in kernel应该写入

root=PARTUUID=xxxx init=/usr/lib/systemd/systemd

#网卡是r8169模块

#声卡ALC887,要把Realtek Build in勾选。

#intel核显要安装linux-firmware否则dmesg可以看到i915两个错误,要按如下Wiki选择和添入

Device Drivers  --->    Generic Driver Options  --->        -*- Userspace firmware loading support        [*] Include in-kernel firmware blobs in kernel binary            (i915/skl_dmc_ver1_26.bin)            (/lib/firmware) Firmware blobs root directory