一、分区和格式化
我是两块硬盘,/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