一、分區和格式化
我是兩塊硬盤,/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/gentoo links http://mirrors.163.com/gentoo #下載Stage3 tar 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.conf sync-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-8 zh_CN.UTF-8 UTF-8 zh_CN.GBK GBK zh_CN.GB2312 GB2312 zh_CN.GB18030 GB18030
更新語言列表
# locale-gen
設置本地語言
# eselect locale list (查看所有可用語言) # eselect locale set NUM(設置本地語言爲英文,我是英文界面支持中文顯示和中文輸入法就可以了)
更新環境變量及配置文件
# env-update && source /etc/pfofile
十、安裝內核
# emerge -avt gentoo-sources (安裝內核)
十一、配置內核
cd /usr/src/linux make menuconfig(這步要注意參考Systemd,Stub_kernel,並根據自己硬件情況來選) make && make modules_install make 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