20191010
目錄
在VirtualBox裏安裝Gentoo Linux基本系統(amd64+UEFI引導+GPT分區)
#設置時間,解壓stage3-amd64.tar.xz和portage.tar.bz2
#用livecd啓動修復VritualBox的UEFI引導錯誤(Grub2)
Gentoo Linux
下載
官方鏡像(amd64):(緩慢,迅雷下載)
Minimal Installation CD: http://distfiles.gentoo.org/releases/amd64/autobuilds/
Hybrid ISO (LiveDVD): https://gentoo.osuosl.org//releases/amd64/
Gentoo Packages:https://mirrors.evowise.com/gentoo//releases/snapshots/current/
國內鏡像
Netease.com, Inc. http://mirrors.163.com/gentoo/
Tsinghua University https://mirrors.tuna.tsinghua.edu.cn/gentoo
國內鏡像(amd64):(推薦,但可能不是最新,迅雷下載)
Minimal Installation CD: http://mirrors.163.com/gentoo/releases/amd64/autobuilds/
Hybrid ISO (LiveDVD): http://mirrors.163.com/gentoo/releases/amd64/
Gentoo Packages:http://mirrors.163.com/gentoo/releases/snapshots/current/
Gentoo Linux 手冊(amd64):https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation/zh-cn
GNOME安裝指南:https://wiki.gentoo.org/wiki/GNOME/Guide/zh-cn
KDE安裝指南:https://wiki.gentoo.org/wiki/KDE/zh-cn
度盤:https://pan.baidu.com/s/16CKZV1maNJRY8F54N5QzYQ
提取碼:ucx9
在VirtualBox裏安裝Gentoo Linux基本系統(amd64+UEFI引導+GPT分區)
#參考
《根據Gentoo handbook安裝——gentoo基本系統+UEFI引導》
#注意
1、重啓之前,你發現已經耗費數個或數十個小時!(所以用虛擬機的好處是可以暫停和休眠)
2、安裝教程中黑色圖框裏的命令一步一步執行,就可以完成Gentoo的最小安裝(非圖形化),其中包括可選部分。其他未明顯標識的命令和描述作爲擴展參考。
3、VirtualBox6.0在安裝完Gentoo後,poweroff,再啓動,只顯示UEFI Interactive Shell畫面,教程中有解決方法。
#準備
#創建Gentoo虛擬機
1.4GB內存(默認1GB安裝過程夠用)
2.32GB硬盤(默認8GB)
PS:
1、vdi文件是可以改名字的,但是改名字之前需要在 管理 -> 虛擬介質管理器,選中vdi文件,釋放 -> 刪除 -> 保留,vdi文件改名字後,在 虛擬介質管理器 註冊,然後在虛擬機存儲設置裏重新掛載。
2、虛擬機 .vbox 文件導入,控制 -> 註冊。
#VirtualBox設置
1.管理 -> 全局設定 -> 擴展,安裝官方的Oracle_VM_VirtualBox_Extension_Pack
(Deepin下需要運行gksu-properties,將認證模式由su改爲sudo)
#VirtualBox的Gentoo設置
1.常規 -> 系統 -> 主板,開啓EFI; -> 主板,選擇與實際相同的核心數。
2.常規 -> 顯示,顯存大小128M。
3.常規 -> 存儲,控制器選中 使用主機輸入輸出(I/O)緩存;*.vdi磁盤如果是固態請選中 固態驅動器。
4.常規 -> 網絡 -> 網卡1 -> 高級 -> 端口轉發,配置本機轉發端口號(例如9022)和虛擬機SSH端口號(默認爲22)。
5.常規 -> USB設備,按實際硬件選擇控制器。
#下載Minimal Installation CD,Hybrid ISO (LiveDVD),Stage 3,Portage
install-amd64-minimal-*.iso
livedvd-amd64-multilib-*.iso
stage3-amd64-*.tar.xz
portage-*.tar.bz2
#使用ISO編輯軟件(UltraISO、Rufus)將官方下載的 stage3-amd64.tar.xz 和 portage.tar.bz2 放入 install-amd64-minimal.iso 和livedvd-amd64-multilib-*.iso裏,並設定爲VritualBox光盤鏡像(節省下載時間)
#使用軟件將ISO寫入USB,如Windows下的UltraISO、Rufus,Linux下的WoeUSB
#Linux下使用命令將ISO寫入USB
if=ISO路徑 of=USB路徑
#進入livecd,啓動SSH
#啓動Gentoo虛擬機,進入livecd
livecd ~ #
#設置LiveCD的root密碼, 方便使用ssh方式進行安裝
passwd
#啓動sshd, 使用ssh方式進行安裝(這樣就可以複製粘貼了,否則你只能手動輸入命令……)
/etc/init.d/sshd start
#使用終端連接虛擬機(例如Finalshell)
ssh -p 9022 [email protected]
#或者
ssh -p 9022 root@localhost
#分區、格式化、掛載
#默認分區方案
分區 | 文件系統 | 大小 | 描述 |
---|---|---|---|
/dev/sda1 | (bootloader) | 2M | BIOS boot partition |
/dev/sda2 | ext2 (or fat32 if UEFI is being used) | 128M | Boot/EFI system partition |
/dev/sda3 | (swap) | 512M or higher | Swap partition |
/dev/sda4 | ext4 | Rest of the disk | Root partition |
#用fisk命令查看磁盤掛載情況
fdisk -l
#得知系統磁盤的分區
Disk /dev/sda: 32GiB
#用parted對/dev/sda磁盤進行分區
parted /dev/sda
#變更
(parted)
#查看分區情況
print
#格式化整個磁盤爲gpt分區格式(GUID Partition Table)
mklabel gpt
#提示改變分區類型將會移除磁盤上的所有分區,磁盤上的所有數據也將丟失,輸入 y 繼續執行
#啓動分區分配2M,1號grub分區,設置bios_grub啓動
mkpart primary 1M 3M
name 1 grub
set 1 bios_grub on
#引導分區分配128M,2號boot分區,設置boot啓動(與WIN10共存時,不需要再創建EFI分區)
mkpart primary 3M 131M
name 2 boot
set 2 boot on
#交換分區分配512M(或取1倍的內存容量)
mkpart primary 131M 643M
name 3 swap
#剩下空間分配給根分區
mkpart primary 643M -1
name 4 rootfs
#檢查分區情況並退出parted
print
quit
#格式化分區(ESP分區爲Fat32格式)(與WIN10共存時,不要mkdir格式化已有的EFI分區)
mkfs.ext2 /dev/sda1
mkfs.fat -F 32 /dev/sda2
mkfs.ext4 /dev/sda4
#格式化並啓用swap
mkswap /dev/sda3
swapon /dev/sda3
#進入parted檢查分區情況並退出
parted /dev/sda
print
quit
#掛載分區
mount /dev/sda4 /mnt/gentoo
#創建並掛載/boot/efi(不同於官方的/boot,是爲了與WIN10共存)
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sda2 /mnt/gentoo/boot/efi
#配置網絡
#自動配置網絡
#查看網絡標識(VirtualBox裏是enp0s3)
ifconfig
#配置網絡(選擇DHCP)
net-setup enp0s3
#可選:使用PPTP
#編輯/etc/ppp/pap-secrets或/etc/ppp/chap-secrets讓它包含正確的用戶名/密碼組合
nano -w /etc/ppp/chap-secrets
nano -w /etc/ppp/options.pptp
pptp <server ip>
#手動配置網絡
#如果net-setup或pppoe-setup都失敗,需要手動加載合適的內核模塊。
#找出內核模塊提供網絡
root #ls /lib/modules/`uname -r`/kernel/drivers/net
#比如,要加載pcnet32模塊
modprobe pcnet32
#檢查網卡,比如eth0
ifconfig
ifconfig eth0
#列出系統中可用網絡接口命名
ls /sys/class/net
#使用DHCP
dhcpcd eth0
#使用DHCP服務器所提供的主機名和域名
dhcpcd -HD eth0
#準備無線網絡鏈接,例如wlp9s0網卡
iw dev wlp9s0 info
iw dev wlp9s0 link
ip link set dev wlp9s0 up
#連接到名爲“GentooNode”的開放網絡
iw dev wlp9s0 connect -w GentooNode
#設置一個WEP密鑰:使用d:前綴:
iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
#使用ASCII WEP密鑰連接:
iw dev wlp9s0 connect -w GentooNode key 0:some-password
#使用ifconfig和route
#要指派一個IP地址,需要IP地址、廣播地址和掩碼。替換${IP_ADDR}爲正確的IP地址、${BROADCAST}爲正確的廣播地址以及${NETMASK}爲正確的掩碼:
ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
#使用route設置路由。替換${GATEWAY}爲正確的網絡IP地址:
route add default gw ${GATEWAY}
#替換${NAMESERVER1}和${NAMESERVER2}爲合適的名稱服務器地址:
nano -w /etc/resolv.conf
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}
#測試網絡
ping www.baidu.com
#設置時間,解壓stage3-amd64.tar.xz和portage.tar.bz2
#查詢時間(必要)
date
WEB Oct 16 18:28:02 UTC 2019
#設置時間:10月16日 18:28 2019
date 101618282019
#自動設置時間(將向時間服務器顯示系統的IP地址和相關網絡信息)
emerge --ask net-misc/ntp
ntpd -q -g
#使用df命令查看分區掛載情況
df
#得知dev/sr0掛載到/mnt/cdrom,光盤鏡像位置
#查看/mnt/cdrom目錄
dir /mnt/cdrom
#找到stage3-amd64.tar.xz和portage.tar.bz2
#解壓mnt/cdrom的stage3和portage
time tar xpvf /mnt/cdrom/stage3-amd64.tar.xz -C /mnt/gentoo
time tar xjpvf /mnt/cdrom/portage.tar.bz2 -C /mnt/gentoo/usr
#如果要手動下載stage壓縮包
cd /mnt/gentoo
#圖形瀏覽器
使用圖形化網頁瀏覽器從主網站下載小節複製stage文件URL,將鏈接粘貼到命令行中的 wget程序以下載stage tarball:
wget <PASTED_STAGE_URL>
#命令行瀏覽器
#使用links
links https://www.gentoo.org/downloads/mirrors/
#使用一個HTTP代理,在傳入URL上加一個-http-proxy選項:
links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/
#訪問releases/amd64/autobuilds/current-install-amd64-minimal/,選擇以下項目,按 d 下載:
stage3-amd64-*.tar.xz
stage3-amd64-*.tar.xz.CONTENTS(包含stage壓縮包內的所有文件的列表)
stage3-amd64-*.tar.xz.DIGESTS(包含用不同的算法校驗的stage文件)
stage3-amd64-*.tar.xz.DIGESTS.asc(包含不同的stage文件的校驗和,加密簽名,由Gentoo項目提供)
#按 q 來關閉命令行瀏覽器
#校驗
#使用openssl命令驗證SHA512校驗值:
openssl dgst -r -sha512 stage3-amd64-<release>.tar.?(bz2|xz)
#使用sha512sum命令驗證SHA512校驗值:
sha512sum stage3-amd64-<release>.tar.?(bz2|xz)
#驗證Whirlpool校驗值:
openssl dgst -r -whirlpool stage3-amd64-<release>.tar.?(bz2|xz)
#在ISO文件中驗證加密簽名的.DIGESTS.asc:
gpg --verify stage3-amd64-<release>.tar.?(bz2|xz){.DIGESTS.asc,}
#解壓stage壓縮包
tar xpvf stage3-*.tar.bz2 --xattrs-include='*.*' --numeric-owner
#配置編譯選項
#檢查電腦核心數
cat /proc/cpuinfo | grep processor
#用nano編輯器在make.conf中加入 MAKEOPTS="-jN" ,注意N爲CPU數目(CPU核心數)+1 ,完成按 Ctrl+X (保存 y )回車
nano -w /mnt/gentoo/etc/portage/make.conf
#可選:使用mirrorselect選擇境像站點,移動光標按 空格鍵 選擇China的鏡像,Tab鍵切換OK和Cancel,回車確認
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
#配置Gentoo ebuild 軟件倉庫
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
#使用cat命令檢查gentoo.conf
cat /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
#複製DNS信息
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
#掛載必要的文件系統
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
#進入新環境
#使用chroot將根位置從/(在安裝媒介裏)更改成/mnt/gentoo/(在分區裏)
chroot /mnt/gentoo /bin/bash
#變更
livecd / #
#使用source命令將一些設置(那些在/etc/profile中的)重新載入到內存中
source /etc/profile
#更改主提示符來幫助我們記住當前會話在一個chroot環境裏面。
export PS1="(chroot) ${PS1}"
#變更
(chroot)livecd / #
#配置Portage
#從網站安裝ebuild 數據庫快照
emerge-webrsync
#閱讀新聞條目
#對於news模塊,最常用的有三個操作:
1、使用list顯示一個可用新聞條目的預覽。
2、使用read來閱讀新聞條目。
3、使用purge將在新聞條目閱讀後刪除,並且不能再次閱讀。
eselect news list
eselect news read
#更多關於新聞閱讀器的信息可以通過其手冊頁查看:
man news.eselect
#可選:更新Portage ebuild 數據庫
emerge --sync
#在慢速的終端上,比如一些framebuffer或者串口控制檯,建議使用--quiet選項來加速這個進程:
emerge --sync --quiet
#選擇正確的配置文件,注意*爲默認項
eselect profile list
#選擇配置文件(默認/Desktop是16,最小安裝減少編譯時間。/Desktop/Gnome是21,/Desktop/Plasma是23)
eselect profile set 16
#更新@world集合
#更新系統的@world set,以便可以構建系統。當系統應用了任何升級,或從任何profile構建stage3後,應用了變化的use標記時,請執行:
time emerge --ask --verbose --update --deep --newuse @world
#安裝時如果提示USE changes,輸入 y 回車,然後執行
etc-update
#然後輸入-3 ,回車,輸入 y 回車。執行
time emerge --ask --verbose --update --deep --newuse @world
#(默認約10分鐘,gnome環境100多分鐘,plasma環境400多分鐘)
#配置USE變量
#檢查當前活動的USE標記
emerge --ask --info | grep ^USE
#可用的USE標記的完整描述。
less /var/db/repos/gentoo/profiles/use.desc
#在less命令中,可以通過使用↑和↓鍵來滾動,並且可以按q退出。
#示例,支持DVD、ALSA,以及CD錄製的基於KDE系統的USE設置:
nano -w /etc/portage/make.conf
USE="-gtk -gnome qt5 kde dvd alsa cdr"
#忽略所有默認的USE設置並完全由自己管理,需在make.conf中定義USE以-*開頭:
USE="-* X acl alsa "
#時區
ls /usr/share/zoneinfo
#選擇的時區是Asia/Shanghai
echo "Asia/Shanghai" > /etc/timezone
#重新配置sys-libs/timezone-data包
emerge --config sys-libs/timezone-data
#配置地區
nano -w /etc/locale.gen
#添加US和CN地區及附加字符格式,按Ctrl+X退出,按y保存確認
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GBK
zh_CN.UTF-8 UTF-8
#生成/etc/locale.gen文件中指定的所有地區
locale-gen
#通過eselect locale list可顯示可用的目標
eselect locale list
Available targets for the LANG variable:
.
[5] en_US.utf8
.
[9] zh_CN.utf8
.
#通過eselect locale set VALUE可以設定正確的地區(建議安裝完系統再改爲中文,否則安裝過程中有亂碼)
eselect locale set 5
#查詢、設置時間(必要)
date
WEB Oct 16 18:28:02 UTC 2019
#設置時間:10月16日 18:28 2019
date 101618282019
#自動設置時間(將向時間服務器顯示系統的IP地址和相關網絡信息)
time emerge --ask net-misc/ntp
ntpd -q -g
#重新加載環境
env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
#安裝源碼
time emerge --ask sys-kernel/gentoo-sources
#(約3分鐘)
#這將在/usr/src/中安裝Linux內核源碼,並有一個符號連接叫作linux將指向安裝的內核源碼
ls -l /usr/src/linux
lrwxrwxrwx 1 root root 20 OCT 14 21:38 /usr/src/linux -> linux-4.19.72-gentoo
#爲了不丟失特定於CPU的優化,將要求用戶更新make.conf(以及可能的package.use)文件。
#安裝cpuid2cpuflags(約14分鐘)
time emerge --ask app-portage/cpuid2cpuflags
cpuid2cpuflags
cpuid2cpuflags >> /etc/portage/make.conf
nano -w /etc/portage/make.conf
#修改格式
CPU_FLAGS_X86="aes avx mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"
#安裝pciutils,用lspci命令查看PCI設備
emerge --ask sys-apps/pciutils
#默認:手動配置
emerge --ask sys-apps/pciutils
cd /usr/src/linux
make menuconfig
#以下僅供參考
# 啓用devtmpfs支持
Device Drivers --->
Generic Driver Options --->
[*] Maintain a devtmpfs filesystem to mount at /dev
#Enabling SCSI disk support
Device Drivers --->
SCSI device support --->
<*> SCSI disk support
#選擇所需要的文件系統
File systems --->
<*> Second extended fs support
<*> The Extended 3 (ext3) filesystem
<*> The Extended 4 (ext4) filesystem
<*> Reiserfs support
<*> JFS filesystem support
<*> XFS filesystem support
<*> Btrfs filesystem support
DOS/FAT/NT Filesystems --->
<*> MSDOS fs support
<*> VFAT (Windows-95) fs support
#選擇PPPoE所需要的驅動
Pseudo Filesystems --->
[*] /proc file system support
[*] Tmpfs virtual memory file system support (former shm fs)
#激活SMP支持
rocessor type and features --->
[*] Symmetric multi-processing support
#激活USB輸入設備的支持
HID support --->
-*- HID bus support
<*> Generic HID driver
[*] Battery level reporting for HID devices
USB HID support --->
<*> USB HID transport layer
[*] USB support --->
<*> xHCI HCD (USB 3.0) support
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD (USB 1.1) support
#Selecting processor types and features
Processor type and features --->
[ ] Machine Check / overheating reporting
[ ] Intel MCE Features
[ ] AMD MCE Features
Processor family (AMD-Opteron/Athlon64) --->
( ) Opteron/Athlon64/Hammer/K8
( ) Intel P4 / older Netburst based Xeon
( ) Core 2/newer Xeon
( ) Intel Atom
( ) Generic-x86-64
Executable file formats / Emulations --->
[*] IA32 Emulation
#Enable support for GPT
-*- Enable the block layer --->
Partition Types --->
[*] Advanced partition selection
[*] EFI GUID Partition support
#Enable support for UEFI
Processor type and features --->
[*] EFI runtime service support
[*] EFI stub support
[*] EFI mixed-mode support
Firmware Drivers --->
EFI (Extensible Firmware Interface) Support --->
<*> EFI Variable Support via sysfs
#Compiling and installing
make && make modules_install
make install
可選:生成一個initramfs
emerge --ask sys-kernel/genkernel
genkernel --install initramfs
#示例,啓用LVM和軟件RAID (mdadm) 的支持:
genkernel --lvm --mdadm --install initramfs
#initramfs將存儲在/boot/
ls /boot/initramfs*
#使用genkernel自動配置(生手或虛擬機推薦)
time emerge --ask sys-kernel/genkernel
#安裝時如果提示 USE changes,輸入 y 回車,然後執行
etc-update
#然後輸入-3 ,回車,輸入 y 回車,然後執行(約5分鐘)
time emerge --ask sys-kernel/genkernel
#查看文件系統標籤和 UUID 由 LABEL 和 UUID 前綴標識
blkid
#編輯/etc/fstab系統的掛載點(fs可以用 UUID=* 來表示)
nano -w /etc/fstab
<fs> <mountpoint> <type> <opts> <dump/pass>
/dev/sda2 /boot/efi vfat noauto,noatime 1 2
/dev/sda3 none swap sw 0 0
UUID=* / ext4 noatime 0 1
#編譯內核源碼(約100多分鐘,CPU100%)
time genkernel all
#記下內核和initrd名字作爲編輯引導器配置文件的信息
ls /boot/kernel* /boot/initramfs*
/boot/initramfs-genkernel-x86_64-4.19.72-gentoo /boot/kernel-genkernel-x86_64-4.19.72-gentoo
#內核模塊
#配置模塊
#一些奇特硬件需要幫助來加載其驅動程序。
#可以在 /etc/modprobe.d/*.conf 文件中,爲模塊設置添加附加選項。
#用find命令查看所有可用模塊,運行下面的。替換“<kernel version>”爲剛剛編譯的內核版本:
find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
#舉例,要自動加載3c59x.ko模塊(3Com網卡家族的特定驅動),編輯/etc/modules-load.d/network.conf文件並在裏面輸入模塊名字。實際的文件名對 loader 來說無關緊要。
mkdir -p /etc/modules-load.d
nano -w /etc/modules-load.d/network.conf
3c59x
#可選:安裝固件(默認已經安裝)
emerge --ask sys-kernel/linux-firmware
文件系統信息
關於 fstab
創建/etc/fstab文件
/etc/fstab文件使用一種特殊語法格式。每行都包含六個字段。這些字段之間由空白鍵(空格鍵,tab鍵,或者兩者混合使用)分隔。每個字段都有自己的含意:
1.#第一個字段顯示要掛載的特殊 block 設備或遠程文件系統。 有幾種設備標識符可用於特殊塊設備節點,包括設備文件路徑,文件系統標籤,UUID,分區標籤以及UUID。
2.第二個字段是分區掛載點,也就是分區應該掛載到的地方
3.第三個字段給出分區所用的文件系統
4.第四個字段給出的是掛載分區時mount命令所用的掛載選項。由於每個文件系統都有自己的掛載選項,我們建議你閱讀mount手冊(man mount)以獲得所有掛載選項的列表。多個掛載選項之間是用逗號分隔的。
5.第五個字段是給dump使用的,用以決定這個分區是否需要dump。一般情況下,你可以把該字段設爲0(零)。
第六個字段是給fsck使用的,用以決定系統非正常關機之後文件系統的檢查順序。根文件系統應該爲1,而其它的應該爲2(如果不需要文件系統自檢的話可以設爲0)。
nano -w /etc/fstab
文件系統標籤和 UUID 由 LABEL 和 UUID 前綴標識,可以使用 blkid 命令查看
blkid
#網絡信息
#設置主機名
nano -w /etc/conf.d/hostname
hostname="主機名"
#域名
nano -w /etc/conf.d/net
dns_domain_lo="homenetwork"
#如果你選擇不設定域名,你可以去掉登錄界面上的這條信息:“This is hostname.(none)”。你只需要修改/etc/issue ,把字符串.\O從該文件裏刪掉即可。
#NIS域
nano -w /etc/conf.d/net
nis_domain_lo="my-nisdomain"
#配置網絡
#安裝net-misc/netifrc
emerge --ask --noreplace net-misc/netifrc
#打開 /etc/conf.d/net
nano -w /etc/conf.d/net
#注意,以下舉例中的網絡標示enp0s3是通過ifconfig命令得到。
#靜態IP定義
#設置 config_enp0s3 和 routes_enp0s3 輸入IP地址信息和路由信息:
config_enp0s3="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_enp0s3="default via 192.168.0.1"
#要使用DHCP,定義 config_enp0s3:
config_enp0s3="dhcp"
#在啓動時自動啓用網絡鏈接
#加這些到default運行級別
cd /etc/init.d
ln -s net.lo net.enp0s3
rc-update add net.enp0s3 default
cd /
#如果錯誤輸入eth0,可以進行刪除操作
cd /etc/init.d
ln -s -b net.lo net.eth0
rc-update del net.eth0 default
#hosts 文件
(如果不設置,StartX無法運行)
nano -w /etc/hosts
# 定義的是現在系統
IP 主機域名 主機名
127.0.0.1 tux.homenetwork tux localhost
# 定義你網絡上的其它系統
IP 主機域名 主機名
192.168.0.5 jenny.homenetwork jenny
192.168.0.6 benny.homenetwork benny
#系統信息
#設置root密碼
passwd
#配置引導和啓動(默認)
#Gentoo(在使用OpenRC時)使用/etc/rc.conf配置系統的服務,啓動和關閉。
nano -w /etc/rc.conf
#打開/etc/conf.d/keymaps 來處理鍵盤設置(默認)
nano -w /etc/conf.d/keymaps
#要特別注意keymap這個變量 。如果你選擇了錯誤的KEYMAP,在你敲擊鍵盤的時候會有奇怪的結果。
#時鐘設置
#如果你機器上的時鐘不用UTC,你需要在配置文件加上clock="local"。否則,你的時鐘就有可能出現偏差。
nano -w /etc/conf.d/hwclock
#系統日誌工具
emerge --ask app-admin/sysklogd
rc-update add sysklogd default
#可選:Cron守護進程
emerge --ask sys-process/cronie
rc-update add cronie default
#如果使用dcron或fcron,需要執行附加的初始化命令:
(chroot)livecd / # crontab /etc/crontab
#可選:文件索引
emerge --ask sys-apps/mlocate
#可選:遠程訪問
#要在安裝後遠程訪問系統,請將sshdinit腳本添加到 default 運行級別:
# rc-update add sshd default
#如果需要終端訪問(在遠程服務器的情況下這是可能的),請在 /etc/inittab中取消註釋控制檯部分:(主機COM口)
nano -w /etc/inittab
# SERIAL CONSOLES,端口請自行修改
s0:12345:respawn:/sbin/agetty 115200 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 115200 ttyS1 vt100
#可選:文件系統工具
(識別Windows的NTFS分區要安裝sys-fs/ntfs3g)
emerge --ask sys-fs/e2fsprogs
emerge --ask sys-fs/xfsprogs
emerge --ask sys-fs/reiserfsprogs
emerge --ask sys-fs/jfsutils
emerge --ask sys-fs/dosfstools
emerge --ask sys-fs/btrfs-progs
emerge --ask sys-fs/ntfs3g
#網絡工具
#安裝DHCP客戶端
emerge --ask net-misc/dhcpcd
#可選:安裝PPPoE客戶端(非常漫長,不推薦)
time emerge --ask net-dialup/ppp
#可選:安裝無線網絡工具
time emerge --ask net-wireless/iw net-wireless/wpa_supplicant
#(默認約5分鐘,桌面環境約100多分鐘)
#選擇引導器
#默認:GRUB2
#MBR用戶
#當使用只支持MBR分區表的舊版BIOS系統時,無需進行其他配置即可安裝GRUB:
emerge --ask --verbose sys-boot/grub:2
#UEFI用戶
echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
time emerge --ask sys-boot/grub:2
#(默認約6分鐘,桌面環境約10多分鐘)
#如果GRUB2在未先添加GRUB_PLATFORMS="efi-64"到make.conf時就已經emerge過,可以添加這一行(像上面顯示那樣)然後通過--update --newuse options to emerge:選項來重新計算 world package set :
emerge --ask --update --newuse --verbose sys-boot/grub:2
#Install
#通過grub-install命令安裝GRUB2所需的文件到/boot/grub/目錄
#使用BIOS時:
grub-install /dev/sda
#使用UEFI時:
#確保EFI系統分區在運行grub-install“之前”已經掛載。
#檢查/boot/efi是否存在,沒有就創建(不同於官方的/boot,是爲了與WIN10共存)
dir /boot
mkdir -p /boot/efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi
#重要
如果grub_install返回類似的錯誤Could not prepare Boot variable: Read-only file system
,可能需要將efivars特殊掛載重新安裝爲讀寫才能成功:
mount -o remount,rw /sys/firmware/efi/efivars
#一些主板製造商似乎只支持EFI系統分區(ESP)中.EFI文件的 /efi/boot/目錄。 GRUB安裝程序可以使用 --removable選項自動執行此操作。 在運行以下命令之前驗證是否已安裝ESP。 假設ESP安裝在/boot(如前所述),執行:
grub-install --target=x86_64-efi --efi-directory=/boot --removable
這將創建UEFI規範定義的默認目錄,然後將 grubx64.efi 文件複製到由同一規範定義的“默認”EFI文件位置。
#注意:如果是安裝win10 與gentoo 雙系統,需要另外安裝 os-prober 用以檢測 win10 的引導:
emerge --ask sys-boot/os-prober
etc-update
#然後輸入-3 ,回車,輸入 y (必須輸入y再回車),回車。
emerge --ask sys-boot/os-prober
os-prober
#再一次配置
#要生成最終的GRUB2配置,運行grub-mkconfig命令
grub-mkconfig -o /boot/grub/grub.cfg
#修復VritualBox的UEFI引導錯誤
mkdir -p /boot/efi/EFI/boot
cp /boot/efi/EFI/gentoo/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
#備選:LILO
#備選:efibootmgr
#備選: Syslinux
#重啓系統
#退出chroot環境並unmount全部已持載分區
exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo
#當然,別忘了移除可引導CD,否則可能再次從CD啓動,而不是新的Gentoo系統。
#當重啓進全新安裝的Gentoo環境,繼續完成結束Gentoo安裝。
reboot
#用戶管理
#添加一個日常使用的用戶
#在Unix/Linux系統中,用root進行工作是一件危險的事情,應該儘量避免。因此我們強烈推薦您爲日常使用添加一個普通用戶。
#用戶所屬的組定義了其可以執行的活動。下表中列出了許多您可能希望使用的重要組:
Group Description
audio 允許使用聲音設備
cdrom 允許直接使用光驅設備
floppy 允許直接使用軟驅
games 允許運行遊戲
portage 能夠訪問portage受限資源。
usb 允許使用USB設備
video 允許使用視頻採集設備和硬件加速
wheel 可以使用su.
#比如,創建一個叫作larry的wheel、users、audio和video組的成員用戶,首先作爲root登錄(只有root能創建用戶)並運行useradd:
Login:root
Password: (輸入root 密碼)
root # useradd -m -G users,wheel,audio,video -s /bin/bash larry
root # passwd larry
Password: (輸入larry的密碼)
Re-enter password: (重複輸入密碼)
#如果一個用戶仍需要以root身份做一些任務,他們可以使用su -來臨時得到root權限。另一種方式是使用sudo包,如果配置正確的話,非常安全。
#虛擬機備份
#建議Poweroff一次,再啓動,確認引導正確。然後在Poweroff後對虛擬機生存快照備份。
=======================================================
修復引導
#用livecd啓動修復VritualBox的UEFI引導錯誤(Grub2)
(前提是你已經按照官方教程安裝好Gentoo,然後發現VirtualBox關機後無法UEFI啓動,只顯示UEFI Interactive Shell畫面)
mount /dev/sda4 /mnt/gentoo
mkdir -p /mnt/gentoo/boot/efi/EFI/boot
mount /dev/sda2 /mnt/gentoo/boot/efi
cp /mnt/gentoo/boot/efi/EFI/gentoo/grubx64.efi /mnt/gentoo/boot/efi/EFI/boot/bootx64.efi
reboot
#用livecd啓動修復引導錯誤(Grub2)
disk -l
parted /dev/sda
print
quit
#得知boot分區是/dev/sda2,/分區是/dev/sda4
mount /dev/sda4 /mnt/gentoo
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sda2 /mnt/gentoo/boot/efi
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
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
blkid
nano -w /etc/fstab
#確認fstab表正確
grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory /boot
#注意:如果是安裝win10 與gentoo 雙系統,需要另外安裝 os-prober 用以檢測 win10 的引導:
emerge --ask sys-boot/os-prober
#安裝時如果提示USE changes,輸入 y 回車,然後執行
etc-update
#然後輸入-3 ,回車,輸入 y 回車,然後執行
emerge --ask sys-boot/os-prober
os-prober
grub-mkconfig -o /boot/grub/grub.cfg
#修復VritualBox的UEFI引導錯誤(Grub2)
mkdir -p /boot/efi/EFI/boot
cp /boot/efi/EFI/gentoo/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo
reboot
#系統內修復引導(Grub2)
disk -l
parted /dev/sda
print
quit
#得知boot分區是/dev/sda2
mkdir -p /boot/efi/EFI/gentoo
mount /dev/sda2 /boot/efi
blkid
nano -w /etc/fstab
#確認fstab表正確
grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory /boot
grub-mkconfig -o /boot/grub/grub.cfg
#修復VritualBox的UEFI引導錯誤
mkdir -p /boot/efi/EFI/boot
cp /boot/efi/EFI/gentoo/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
reboot
安裝Gentoo Linux+Plasma桌面環境
#參考
KDE https://wiki.gentoo.org/wiki/KDE/zh-cn#.E4.BC.9A.E8.AF.9D.E7.AE.A1.E7.90.86.E5.99.A8
X server https://wiki.gentoo.org/wiki/X_server
Xorg https://wiki.gentoo.org/wiki/Xorg/Guide/zh-cn
Consolekit https://wiki.gentoo.org/wiki/ConsoleKit
Eudev https://wiki.gentoo.org/wiki/Eudev
D-Bus https://wiki.gentoo.org/wiki/D-Bus
Polkit https://wiki.gentoo.org/wiki/Polkit
Udisks https://wiki.gentoo.org/wiki/Udisks
#準備
...
... 此段的過程參考非圖形化的安裝教程
...
#LiveDVD啓動,無密碼登錄,打開Konsole,設置gentoo密碼, 方便使用ssh方式進行安裝
passwd
#獲得root權限
su -
#或sudo -i
#啓動sshd, 使用ssh方式進行安裝(這樣就可以複製粘貼了,否則你只能手動輸入命令……)
/etc/init.d/sshd start
#使用終端連接虛擬機(例如Finalshell),用戶gentoo
ssh -p 9022 [email protected]
...
... 此段的過程參考非圖形化的安裝教程
...
#掛載必要的文件系統
mount /dev/sda4 /mnt/gentoo
#與WIN10共存時,直接mount WIN10的efi分區
mkdir -p /mnt/gentoo/boot/efi
mount /dev/sda2 /mnt/gentoo/boot/efi
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
#進入新環境
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
...
... 此段的過程參考非圖形化的安裝教程
...
...
#KDE
#KDE是一個自由軟件社區,其提供了一組應用程序,包括流行的 Plasma 桌面環境。
#Gentoo對KDE項目的支持非常好,包括對KDE Frameworks 5,Plasma 5和Applications的全面支持,以及其他各種各樣基於KDE的軟件。
#配置
#Profile選擇/desktop/plasma
eselect profile list
eselect profile set *
#更新@world集合(約478分鐘)
time emerge --ask --verbose --update --deep --newuse @world
#安裝時如果提示USE changes,輸入 y 回車,然後執行
etc-update
#然後輸入-3 ,回車,輸入 y 回車。執行
time emerge --ask --verbose --update --deep --newuse @world
...
... 系統安裝完成重啓
... 新建新用戶
... 此段的過程參考非圖形化的安裝教程
... PS:emerge加入--quiet簡潔輸出
...
#重啓
reboot
#獲得root權限
su -
#安裝sudo
time emerge --ask app-admin/sudo
#使wheel組的成員能夠執行的任何命令
nano -w /etc/sudoers
## Uncommet to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
#安裝openssh(默認已安裝)
time emerge --ask --changed-use net-misc/openssh
#使用終端連接虛擬機(例如Finalshell)
ssh -p 9022 新用戶@127.0.0.1
#服務
#在接下來的章節裏,按着安裝步驟,這些服務將會默認自動選上,具體的取決於之前選擇的profile。但在第一次啓動KDE Plasma之前,還是需要將它們設置妥當。爲了不會使用默認設置,建議在安裝KDE Plasma或者KDE應用程序之前,通過emerge ‑‑oneshot先安裝這些服務,以便Portage將它們考慮進去。
#會話管理器
#從下列中只選一個:
elogind: 從systemd項目中提取的單獨的logind服務包,用於OpenRC或其他初始化系統。
systemd: 使用systemd提供的會話管理器,systemd用戶不需要爲此做更多的工作。
consolekit: Framework for defining and tracking users, login sessions, and seats. It is currently default for the desktop/plasma profile.
爲了支持 Wayland,我們需要一個logind實現。Gentoo提供elogind作爲systemd的替代。
#設備管理器
從下列中只選一個:
eudev: Gentoo的udev分支,旨在獲得更好的兼容性。desktop/plasma profile默認使用eudev。
udev: 支持udev Linux動態和固定設備命名。
systemd: 使用systemd提供的設備管理器,systemd用戶不需要爲此做更多的工作。
#雜項
D-Bus: 使用D-Bus消息總線系統。
polkit: 啓用polkit框架以獲得控制全局服務的權限。
udisks: 啓用對一些存儲相關服務的支持。
#本教程中,會話管理器選擇consolekit,設備管理器選擇eudev,其他還有D-Bus、polkit、udisks。
#但即使不設置這些,也不影響進入Plasma桌面。
#添加consolekit、dbus、polkit和udisks到USE標記
nano -w /etc/portage/make.conf
USE="consolekit"
USE="dbus"
USE="policykit"
USE="udisks"
time emerge --ask --changed-use --deep @world
(約14分鐘)
#安裝D-Bus
emerge --ask ‑‑oneshot sys-apps/dbus
#啓動D-Bus
/etc/init.d/dbus start
#添加爲默認運行級別:(可選)
rc-update add dbus default
#安裝polkit
#先決條件:D-Bus已經配置完成。
#確認
find / -name .config
nano -w /usr/src/linux-4.19.72-gentoo/.config
#按 Ctrl+W 查找到 CONFIG_FUTEX=y 這個選項。
#之前運行genkernel all的話,就會有這個選項。手動配置沒有的話,請在Live CD下找到該文件編譯,然後再重新編譯一次,最後再把該文件加載到引導中去。
#沒有的話,會導致CPU高負荷。
time emerge --ask ‑‑oneshot sys-auth/polkit
(約12分鐘)
#配置polkit
#The actions files are in /usr/share/polkit-1/actions, the rules files are in /usr/share/polkit-1/rules.d and /etc/polkit-1/rules.d.
#Rules
#Rules redefine who's authorized for an action. The rules files begin with a number and are processed in lexical order. The first file with a matching rule is used. Own files should have a low number, like 10. The filenames have the .rules suffix.
#舉例,讓wheel羣組的用戶也可以使用管理員權限
mkdir -p /etc/polkit-1/rules.d
nano -w /etc/polkit-1/rules.d/10-admin.rules
polkit.addAdminRule(function(action, subject) {
return ["unix-group:wheel"];
});
#舉例,允許用戶larry可以掛載磁盤
nano -w /etc/polkit-1/rules.d/10-udisks.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.udisks2.filesystem-mount" &&
subject.user == "larry") {
return polkit.Result.YES;
}
});
#配置udisk
#先決條件:D-Bus和polkit已配置完成。
cd /usr/src/linux
make menuconfig
#udisks1
Device Drivers --->
< > ATA/ATAPI/MFM/RLL support (DEPRECATED) --->
[*] USB support --->
<*> Support for Host-side USB
[*] USB runtime power management (autosuspend) and wakeup
File Systems -->
Native Language Support -->
<*> NLS UTF8
#udisks2
General setup --->
[*] Support for paging of anonymous memory (swap)
Device Drivers --->
< > ATA/ATAPI/MFM/RLL support (DEPRECATED) --->
File Systems -->
Native Language Support -->
<*> NLS UTF8
Pseudo filesystems --->
-*- Tmpfs virtual memory file system support (former shm fs)
[*] Tmpfs POSIX Access Control Lists
#安裝eudev
time emerge --ask ‑‑oneshot sys-fs/eudev
#配置eudev
#RC的名字是udev,而不是eudev。它需要在sysinit運行級別中註冊:
rc-update add udev sysinit
#提示:從syfs /udev-init-scripts版本29開始,udev-trigger也應該添加到sysinit運行級別。
#如果系統使用multilib,例如,有abi_x86_64(32)使用標誌對舊的udev包是活動的,那麼不要忘記更改它:(當然如果是32的,請把64改爲32即可。)
nano -w /etc/protage/package.use
# sys-fs/udev abi_x86_64
sys-fs/eudev abi_x86_64
#爲了保持經典的命名,可以在/etc/udev/rules.d中使用相同命名的空文件覆蓋此規則d目錄:
touch /etc/udev/rules.d/80-net-name-slot.rules
#使用新的“可預測的”命名,新的網絡接口命名約定不一樣,因此需要重新鏈接接口。使用/etc/init.d/net.lo作爲需要添加的任何接口名稱的鏈接目標。請確保將下面命令中的替換爲系統中出現的以太網接口名稱。通過運行ifconfig命令可以發現存在哪些接口:
ifconfig
#爲/etc/init中的現有接口創建符號鏈接:
ln -s /etc/int.d/net.lo /etc/init.d/net/<界面名稱>
ln -s /etc/conf.d/net.lo /etc/conf.d/net/<界面名稱>
將腳本添加到默認運行級別
re-update add net.<界面名稱> default
#配置ConsoleKit
#先決條件:D-Bus已經配置完成。
cd /usr/src/linux
make menuconfig
#Required options for ConsoleKit
General setup --->
[*] Auditing support
[*] Enable system-call auditing support
#X.Org server
https://wiki.gentoo.org/wiki/Xorg/Guide
#Intel顯卡設置
https://wiki.gentoo.org/wiki/Intel#Kernel
#NVIDIA、AMD/ATI Radeon、AMDGPU顯卡設置
https://wiki.gentoo.org/wiki/Xorg/Guide
#檢測顯卡信息
lspci | grep -i VGA
#檢測輸入設備信息
portageq envvar INPUT_DEVICES
#安裝xorg-drivers
(約14分鐘)
time emerge --ask x11-base/xorg-drivers
#安裝xorg-server
(約7分鐘)
time emerge --ask x11-base/xorg-server
#更新系統變量,更新profile配置文件
env-update
source /etc/profile
#嘗試用startx運行 X server
https://wiki.gentoo.org/wiki/Xorg/Guide
#調整 X 設置
#設置屏幕分辨率
#多顯示器
#配置鍵盤
#安裝plasma-meta
(116約分鐘)
time emerge --ask kde-plasma/plasma-meta
#小工具
#kde-plasma/kdeplasma-addons 提供了很多有用的小工具
time emerge --ask kde-plasma/kdeplasma-addons
#顯示管理器
#無顯示管理器
#系統托盤
#Pidgin
#KWallet 自動解鎖
#SSH/GPG 密鑰啓動/關閉腳本
#使用root權限運行 GUI 應用
#KDE Applications
time emerge --ask kde-apps/kde-apps-meta
#本地化
Plasma-5 和應用程序的每個包都提供了本地化文件。可以在系統設置中啓用本地化。
KDE PIM
KDE PIM 是一整套用於管理個人信息的應用程序,包括郵件,日曆,聯繫人等。它有幾個可選的運行時依賴來擴展其功能:
病毒檢測:app-antivirus/clamav
垃圾郵件過濾:mail-filter/bogofilter 或 mail-filter/spamassassin
time emerge --ask app-antivirus/clamav
time emerge --ask mail-filter/bogofilter
或 time emerge --ask mail-filter/spamassassin
#安裝kde-frameworks
(約29分鐘)
time emerge --ask kde-frameworks/plasma
#更多KDE軟件
最主要的 KDE 應用程序在 Porage 樹的 kde-apps 和kde-misc 分類中。
#將sddm設置爲默認的顯示管理器
time emerge --ask x11-misc/sddm
rc-update add xdm default
nano -w /etc/conf.d/xdm
#DISPLAYMANAGER="xdm"
DISPLAYMANAGER="sddm"
##安裝konsole或Xterm終端
time emerge --ask kde-apps/konsole
time emerge --ask x11-terms/xterm
#安裝virtualbox附加組件(約20分鐘)
time emerge --ask app-emulation/virtualbox-guest-additions
#字體
emerge --ask wqy-zenhei
emerge --ask wqy-microhei
#瀏覽器
#安裝Chrome(約17分鐘)
time emerge --ask www-client/google-chrome
#提示license Change,輸入 y 回車。然後執行
etc-update
#然後輸入-3 ,回車,輸入 y 回車。執行
time emerge --ask www-client/google-chrome
#安裝火狐瀏覽器
emerge --ask www-client/firefox-bin
#安裝Opera
emerge --ask www-client/opera
#重啓
reboot
#重啓,開機grub菜單,按 e ,在以下段落中添加 single ,按 F10 boot
linux /kernel-genkernel...-gentoo single root=...
#登錄Gentoo Linux(Plasma桌面環境)
#登錄畫面左上角Sessionx選擇Plasma on xorg
#檢查用戶larry的video cards權限
getfacl /dev/dri/card0 | grep larry
user:larry:rw-
#將用戶添加到video group:
gpasswd -a larry video
#PS:虛擬機網卡設置橋接模式,啓動gentoo虛擬機,登錄路由器知道gentoo虛擬機的IP。SSH IP登錄gentoo虛擬機:
ssh IP