Gentoo入门指北
description: 一些疑難雜症,希望可以幫到
不完整的Gentoo安裝
不過我建議你應當滿足/準備以下
1.強大的內心
2.一塊U盤和你要安裝的
磁碟
3.獨立思考的大腦
4.不厭其煩的嘗試
5.
chatgpt
& Google & 官網文檔
開始
!!!systemctl
⚠️
前半部分是在live CD
狀態下操作的,我這裡就不執行分割了,分割工具有像cfdisk
,fdisk
分割 建議了解下 MBR
分割表 和GUID
分割表區別,我覺得你都是Linux
用戶了,您應該很上手。
liveCD
環境下
1 | mkdir /mnt/gentoo |
創建 /mnt/gentoo
1 | mkdir /mnt/gentoo/boot |
創建 /mnt/gentoo/boot
通過lsblk
看到我這邊 對sda已經操作完成 分割完成。
sda1 用作 boot ,sda2 用作操作系統路徑
1 | root@archiso ~ # lsblk |
1 | mkfs.vfat -F 32 /dev/sda1 |
1 | mkfs.ext4 /dev/sda2 |
我怕你看不懂,我這裡簡單說下,sda是我要用來存放gentoo的硬盤
sda1用作boot 給了256M,sda2 是系統路徑
格式化 磁碟
然後我們通過mount 讓sda掛載到這個系統上。
1 | mount /dev/sda2 /mnt/gentoo |
1 | mount /dev/sda1 /mnt/gentoo/boot |
stage3 配置
1 | wget https://mirrors.ustc.edu.cn/gentoo/releases/amd64/autobuilds/current-stage3-amd64-desktop-systemd/stage3-amd64-desktop-systemd-20230507T164658Z.tar.xz |
1 | tar xpvf stage3 <tab> --xattrs-include='*.*' --numeric-owner |
解壓完之後 配置make的conf
1 | vim /mnt/gentoo/etc/portage/make.conf |
1 | COMMON_FLAGS="-march=native -O3 -pipe" |
然後創建源
1 | mkdir --parents /mnt/gentoo/etc/portage/repos.conf |
1 | vim /mnt/gentoo/etc/portage/repos.conf/gentoo.conf |
复制DNS信息
1 | cp --dereference /etc/resolv.conf /mnt/gentoo/etc/ |
複製live CD 下的dns到 掛在gentoo下的dns 文件/etc/resolv.conf
這個文件一般都是DNS配置
挂载必要的文件系统
1 | mount --types proc /proc /mnt/gentoo/proc |
其中带有 –make-rslave的项目是使用systemd才需要的,如果你使用openrc可以不用运行.
如果你不使用Gentoo的livecd的话,需要运行下面的命令让/dev/shm/目录称为一个正常挂载的tmpfs
1 | test -L /dev/shm && rm /dev/shm && mkdir /dev/shm |
感謝這裡一小部分教程來自ta 。
進入chroot
1 | chroot /mnt/gentoo /bin/bash |
1 | source /etc/profile |
1 | export PS1="(chroot) ${PS1}" |
如果遇到bash無法操控命令時
1 | export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/root/bin |
讓我痛苦萬分的portage(包管理器)
1 | vim /etc/portage/make.conf //make的路徑 |
編輯 make 配置
1 | rm -rf /var/db/repos/gentoo //如果出現問題再刪除重試 |
刪除已經配置的,再一次嘗試
以下是正常的配置順序
1 | emerge-webrsync //如果這裡執行出現報錯,請參考上面make的路徑進行參數修改 |
具體參數可以參考它的make配置參數 URL
繼續按步驟執行命令
1 | eselect profile list |
這裡你要選擇一個合適你的 list
1 | eselect profile set X |
1 | emerge -auvDN --with-bdeps=y @world |
//執行這條命令時 ,你應該準備 出門/開始看電影,或者躺平,或者有一顆強大的心臟,具體時間看您的機器配置,它讓我煎熬的坐了3個小時。
如果遇到什麼奇奇怪怪的報錯,善用搜索引擎,不過我想搜索引擎也不一定幫的上,善用GPT
配置時間和地区
1 | echo "Asia/Hong_Kong" > /etc/timezone |
选择语言,選eng出錯少
1 | eselect locale list |
1 | eselect locale set X |
同步环境
1 | . /etc/profile |
重新加载环境
1 | env-update && source /etc/profile && export PS1="(chroot) ${PS1}" |
內核安裝
這裡官方寫的好複雜,不過感覺可以嘗試通過2進制的方式安裝。建議參考其他大佬教程這一步,這裡我沒有任何話語權,這裡時間應該不會浪費很久。
跟著官方教程走即可,接下是創建root的passwd
1 | passwd |
務必創建一個複雜的密碼保障安全。
接下來是fstab
我的建議是exit
先退出chroot模式,直接複製liveCD
下的fstab到gentoo這邊的路徑
1 | echo "/etc/fstab" >> /mnt/gentoo/etc/fstab |
然後再使用上面的 進入chroot模式回到我們的最後步驟
安裝配置grub引導
如果你在前面編輯make.conf的時候沒有添加這個參數,請將這個GRUB_PLATFORMS="efi-64"
參數放進去
1 | echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf |
然後執行編譯安裝grub
1 | emerge --ask --update --newuse --verbose sys-boot/grub |
然後你可以執行這句話寫入boot
1 | grub-install --target=x86_64-efi --efi-directory=/boot |
⚠️這裡僅使用uefi的引導方式,如果妳是其他的分區表或者傳統引導,建議參考官方文檔
最終
退出chroot环境并unmount全部已持载分区。然后敲入一条有魔力的命令来初始化最终的、真实的测试:reboot。
root# exit
1 | umount -l /mnt/gentoo/dev{/shm,/pts,} |
1 | umount -R /mnt/gentoo |
1 | reboot |
退出,并取消掛載,重啟,至此,如果順利的話 我們不再用到liveCD。
進入系統後
包管理器install dhcpcd
1 | emerge -av dhcpcd |
安裝vim
1 | emerge --ask app-editors/vim |
庫搜索mtr
1 | emerge --search mtr |
 vim裝不上報錯
1 | Total: 10 packages (10 new), Size of downloads: 28,500 KiB |
chatgpt的有效解決方案
這個報錯顯示了 “media-libs/libsndfile-1.2.0” 和 “media-sound/mpg123-1.31.3” 之間存在循環依賴關係,其中 “media-sound/pulseaudio-16.1” 和 “media-libs/libpulse-16.1-r2” 也被列入了其中。
報錯提供了一些可能的解決方案,其中一種方法是通過更改 USE 標誌來打破這個循環依賴關係。在這種情況下,你可以嘗試使用以下命令:
1 | |
這些命令將首先安裝更新 “media-sound/mpg123” 和 “media-libs/libsndfile” 軟件包,通過在安裝時更改它們的 USE 標誌來打破循環依賴關係。然後,你可以使用 emerge 命令安裝 vim 軟件包。
請注意,在成功安裝 vim 之後,你可以使用以下命令恢復 USE 標誌的原始設置:
1 | USE="pulseaudio minimal" emerge -1 media-sound/mpg123 media-libs/libsndfile |
這將更改 USE 標誌以恢復原始設置,同時更新這兩個軟件包,這樣你就可以在不更改系統狀態的情況下重新安裝它們。
添加部分驅動(先解鎖許可證
这个错误提示说明 sys-kernel/linux-firmware
软件包的所有可用版本都被掩藏了,原因是这个软件包包含了需要满足 linux-fw-redistributable
许可证的文件,但这个许可证并没有被 Gentoo 批准。
有两种解决方法:
使用其他发行版的 firmware 或者从其他地方获取到该许可证文件。这种方法需要自己手动获取并安装,不保证能够成功,同时也存在风险。
在
/etc/portage/package.license
文件中添加linux-fw-redistributable
许可证,这个许可证可以在/var/db/repos/gentoo/licenses/linux-fw-redistributable
文件中找到。具体做法是,在终端中执行以下命令:1
2bashCopy code
echo "sys-kernel/linux-firmware linux-fw-redistributable" >> /etc/portage/package.license然后再重新执行安装命令。
1
emerge -av sys-kernel/linux-firmware
注意:这个许可证的存在是为了防止某些二进制固件被非法复制和分发,因此在添加许可证之前请仔细阅读许可证内容并确保您的使用方式
是合法的。
检查 iwlwifi 驱动程序是否已经加载。运行以下命令:
1 | lsmod | grep iwlwifi |
lspci -k
查看Wi-Fi 驅動能否被識別
1 | wpa_passphrase YOUR_SSID YOUR_WIFI_PASSWORD > /etc/wpa_supplicant/wpa_supplicant.conf |
1 | wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf |
1 | dhclient wlan0 |
如果你在執行dhclient wlan0
遇到了報錯
請嘗試 安裝
1 | emerge -av net-misc/dhcp |
其他
systemctl
說明
是 Systemd 中的命令行工具,用於查看和管理系統上運行的服務(service)、單元(unit)和套件(package)的狀態。
以下是一些常見的 systemctl
命令:
systemctl status <service>
:查看服務狀態。systemctl start <service>
:啟動服務。systemctl stop <service>
:停止服務。systemctl restart <service>
:重啟服務。systemctl enable <service>
:設置服務在開機時自動啟動。systemctl disable <service>
:設置服務在開機時不自動啟動。
在 systemctl
命令後加上 -a
選項可以列出所有服務的狀態,加上 --failed
選項可以列出失敗的服務。例如:
systemctl -a
:列出所有服務的狀態。systemctl --failed
:列出失敗的服務。
resolv.conf
說明
以下是一些在 resolv.conf
文件中常見的設置示例:
1 | |
這行設置將使用谷歌的 DNS 伺服器(IP 位址為 8.8.8.8)來查詢網址。
1 | |
這行設置將使用谷歌的第二個 DNS 伺服器(IP 位址為 8.8.4.4)來查詢網址。
1 | |
這行設置指定了本地網路的預設 DNS 域名,也就是如果本地查詢的網址沒有指定域名,就會自動添加該域名。
1 | |
這行設置與 domain
相似,但是可以指定多個 DNS 域名,如果本地查詢的網址沒有指定域名,就會按照指定的域名順序逐一嘗試查詢。
1 | |
這行設置會告訴本地 DNS 解析器在每次查詢網址時,輪流使用每個 DNS 伺服器,而不是一直使用同一個 DNS 伺服器,這可以平衡不同 DNS 伺服器的負載,提高解析效率。
1 | |
這行設置會告訴本地 DNS 解析器在查詢網址時,如果一個 DNS 伺服器沒有回應,就在 2 秒內等待該伺服器回應,如果等待超時,就嘗試最多 3 次查詢,然後再切換到下一個 DNS 伺服器嘗試查詢。這樣可以避免等待超時造成的查詢延遲,提高解析效率。
引用來源
寫在最後
首先,我希望你可以在觀看別人教程視頻的時候,我的這點微不足道的經驗可以為你理清思路,同時也希望你可以早日體驗到gentoo的樂趣(壞笑)。如果能夠幫到你就太好了!
日後我或許會補充一些其他編譯的踩坑經驗。
對gentoo有興趣的小夥伴可以加入tg-group
我如果有錯的表述,歡迎聯繫我與我交流,虛心請大佬指教。
當然,如果您對這種滾動式更新及編譯式安裝我更建議你使用Archlinux,省心又省電,重要你的身體不會因此高負荷感到不適。
- Title: Gentoo入门指北
- Author: Avery
- Created at : 2023-06-30 02:44:39
- Updated at : 2024-01-17 02:34:40
- Link: https://www.jioushan.top/2023/06/30/不完整的Gentoo入门指北/
- License: This work is licensed under CC BY-NC-SA 4.0.