文章特別說明
本文是 Gentoo Linux 安裝指南 系列的第一部分:基礎安裝。
系列導航:
建議閱讀方式:
- 按需閱讀:基礎安裝(0-11 節)→ 桌面配置(12 節)→ 進階優化(13-17 節)
關於本指南#
本文旨在提供一個完整的 Gentoo 安裝流程演示,並密集提供可供學習的參考文獻。文章中包含大量官方 Wiki 連結和技術文件,幫助讀者深入理解每個步驟的原理和配置細節。
這不是一份簡單的傻瓜式教程,而是一份引導性的學習資源——使用 Gentoo 的第一步是學會自己閱讀 Wiki 並解決問題,善用 Google 甚至 AI 工具尋找答案。遇到問題或需要深入了解時,請務必查閱官方手冊和本文提供的參考連結。
如果在閱讀過程中遇到疑問或發現問題,歡迎透過以下管道提出:
- Gentoo 中文社群:Telegram 群組 | Telegram 頻道 | GitHub
- 官方社群:Gentoo Forums | IRC: #gentoo @ Libera.Chat
非常建議以官方手冊為準:
本文為新遷移內容,如有不足之處敬請見諒。
什麼是 Gentoo?#
Gentoo Linux 是一個基於原始碼的 Linux 發行版,以其高度可客製化和效能優化著稱。與其他發行版不同,Gentoo 讓你從原始碼編譯所有軟體,這意味著:
- 極致效能:所有軟體針對你的硬體優化編譯
- 完全掌控:你決定系統包含什麼,不包含什麼
- 深度學習:透過親手構建系統深入理解 Linux
- 編譯時間:初次安裝需要較長時間(建議預留 3-6 小時)
- 學習曲線:需要一定的 Linux 基礎知識
適合誰?
- 想要深入學習 Linux 的技術愛好者
- 追求系統效能和客製化的使用者
- 享受 DIY 過程的 Geek
不適合誰?
- 只想快速安裝使用的新手(建議先嘗試 Ubuntu、Fedora 等)
- 沒有時間折騰系統的使用者
核心概念速覽(點擊展開)
在開始安裝前,先了解幾個核心概念:
Stage3 (Wiki) 一個最小化的 Gentoo 基礎系統壓縮包。它包含了構建完整系統的基礎工具鏈(編譯器、函式庫等)。你將解壓它到硬碟上,作為新系統的「地基」。
Portage (Wiki)
Gentoo 的套件管理系統。它不直接安裝預編譯的軟體包,而是下載原始碼、根據你的設定編譯,然後安裝。核心命令是 emerge。
USE Flags (Wiki)
控制軟體功能的開關。例如,USE="bluetooth" 會讓所有支援藍牙的軟體在編譯時啟用藍牙功能。這是 Gentoo 客製化的核心。
Profile (Wiki)
預設的系統設定範本。例如 desktop/plasma/systemd profile 會自動啟用適合 KDE Plasma 桌面的預設 USE flags。
Emerge (Wiki) Portage 的命令列工具。常用命令:
emerge --ask <套件名>- 安裝軟體emerge --sync- 同步軟體倉庫emerge -avuDN @world- 更新整個系統
安裝時間估算(點擊展開)
| 步驟 | 預計時間 |
|---|---|
| 準備安裝媒介 | 10-15 分鐘 |
| 磁碟分割與格式化 | 15-30 分鐘 |
| 下載並解壓 Stage3 | 5-10 分鐘 |
| 設定 Portage 與 Profile | 15-20 分鐘 |
| 編譯核心(最耗時) | 30 分鐘 - 2 小時 |
| 安裝系統工具 | 20-40 分鐘 |
| 設定引導程式 | 10-15 分鐘 |
| 安裝桌面環境(可選) | 1-3 小時 |
| 總計 | 3-6 小時(取決於硬體效能) |
提示:使用預編譯核心和二進位套件可以大幅縮短時間,但會犧牲部分客製性。
磁碟空間需求與開始前檢查清單(點擊展開)
磁碟空間需求#
- 最小安裝:10 GB(無桌面環境)
- 推薦空間:30 GB(輕量桌面)
- 舒適空間:80 GB+(完整桌面 + 編譯快取)
開始前的檢查清單#
- 已備份所有重要資料
- 準備了 8GB+ 的 USB 隨身碟
- 確認網路連線穩定(有線網路最佳)
- 預留了充足的時間(建議完整的半天)
- 有一定的 Linux 命令列基礎
- 準備好另一台裝置查閱文件(或者使用 GUI LiveCD)
簡介
本指南將引導你在 x86_64 UEFI 平台上安裝 Gentoo Linux。
本文將教你:
- 從零開始安裝 Gentoo 基礎系統(分割區、Stage3、核心、引導程式)
- 配置 Portage 並優化編譯參數(make.conf、USE flags、CPU flags)
- 安裝桌面環境(KDE Plasma、GNOME、Hyprland)
- 配置中文環境(locale、字型、Fcitx5 輸入法)
- 可選進階配置(加密分割區、LTO 優化、核心調優、RAID)
- 系統維護(SSD TRIM、電源管理、Flatpak、系統更新)
請先關閉 Secure Boot 在開始安裝之前,請務必進入 BIOS 設定,將 Secure Boot 暫時關閉。 開啟 Secure Boot 可能會導致安裝媒介無法啟動,或者安裝後的系統無法引導。你可以在系統安裝完成並成功啟動後,再參考本指南後面的章節重新配置並開啟 Secure Boot。
重要:開始前請務必備份所有重要資料!本指南涉及磁碟分割操作。
已驗證至 2025 年 11 月 25 日。
0. 準備安裝媒介#
0.1 下載 Gentoo ISO#
根據下載頁面 提供的方式獲取下載連結
注意:以下連結中的日期(如
20251123T...)僅供參考,請務必在鏡像站中選擇最新日期的檔案。
下載 Minimal ISO(以 TWAREN 鏡像站為例):
wget http://ftp.twaren.net/Linux/Gentoo/releases/amd64/autobuilds/20251123T153051Z/install-amd64-minimal-20251123T153051Z.iso
wget http://ftp.twaren.net/Linux/Gentoo/releases/amd64/autobuilds/20251123T153051Z/install-amd64-minimal-20251123T153051Z.iso.asc
如果希望安裝時能直接使用瀏覽器或更方便地連接 Wi-Fi,可以選擇 LiveGUI USB Image。
新手入坑推薦使用每週構建的 KDE 桌面環境的 Live ISO: https://iso.gig-os.org/ (來自 Gig-OS https://github.com/Gig-OS 專案)
Live ISO 登入憑據:
- 帳號:
live- 密碼:
live- Root 密碼:
live系統支援:
- 支援中文顯示和中文輸入法 (fcitx5), flclash 等
驗證簽名(可選):
# 從密鑰伺服器取得 Gentoo 發布簽名公鑰
gpg --keyserver hkps://keys.openpgp.org --recv-keys 0xBB572E0E2D1829105A8D0F7CF7A88992
# --keyserver: 指定密鑰伺服器位址
# --recv-keys: 接收並匯入公鑰
# 0xBB...992: Gentoo Release Media 簽名密鑰指紋
# 驗證 ISO 檔案的數位簽名
gpg --verify install-amd64-minimal-20251123T153051Z.iso.asc install-amd64-minimal-20251123T153051Z.iso
# --verify: 驗證簽名檔案
# .iso.asc: 簽名檔案(ASCII armored)
# .iso: 被驗證的 ISO 檔案
0.2 製作 USB 安裝碟#
Linux:
sudo dd if=install-amd64-minimal-20251123T153051Z.iso of=/dev/sdX bs=4M status=progress oflag=sync
# if=輸入檔案 of=輸出裝置 bs=區塊大小 status=顯示進度
請將
sdX替換成 USB 裝置名稱,例如/dev/sdb。
Windows: 推薦使用 Rufus → 選擇 ISO → 寫入時選 DD 模式。
1. 進入 Live 環境並連接網路#
可參考:Gentoo Handbook: AMD64 - 配置網路
為什麼需要這一步? Gentoo 的安裝過程完全依賴網路來下載原始碼包 (Stage3) 和軟體倉庫 (Portage)。在 Live 環境中配置好網路是安裝的第一步。
1.1 有線網路#
ip link # 查看網卡介面名稱 (如 eno1, wlan0)
dhcpcd eno1 # 對有線網卡啟用 DHCP 自動獲取 IP
ping -c3 gentoo.org # 測試網路連通性
1.2 無線網路#
使用 net-setup:
net-setup
wpa_supplicant:
wpa_passphrase "SSID" "PASSWORD" | tee /etc/wpa_supplicant/wpa_supplicant.conf
wpa_supplicant -B -i wlp0s20f3 -c /etc/wpa_supplicant/wpa_supplicant.conf
dhcpcd wlp0s20f3
若 WPA3 不穩定,請先退回 WPA2。
進階設定:啟動 SSH 方便遠端操作(點擊展開)
passwd # 設定 root 密碼 (遠端登入需要)
rc-service sshd start # 啟動 SSH 服務
rc-update add sshd default # 設定 SSH 開機自啟 (Live 環境中可選)
ip a | grep inet # 查看當前 IP 位址
# 在另一台設備上:ssh root@<IP>
2. 規劃磁碟分割區#
可參考:Gentoo Handbook: AMD64 - 準備磁碟
為什麼需要這一步? 我們需要為 Linux 系統劃分獨立的儲存空間。UEFI 系統通常需要一個 ESP 分割區 (引導) 和一個根分割區 (系統)。合理的規劃能讓日後的維護更輕鬆。
檢查磁碟:
lsblk -o NAME,SIZE,TYPE
啟動 cfdisk 或 gdisk:
cfdisk /dev/nvme0n1
建議分割區方案(UEFI)#
| 分割區 | 大小 | 檔案系統 | 掛載點 | 備註 |
|---|---|---|---|---|
| ESP | 512 MB | FAT32 | /efi | type EF00 |
| Boot | 1 GB | ext4 | /boot | 存放 kernel / initramfs |
| Root | 80~120 GB | ext4 / XFS / Btrfs | / | 系統與應用 |
| Home | 餘量 | ext4 / XFS / Btrfs | /home | 使用者資料 |
| Swap(可選) | 記憶體的 1~2 倍 | swap | swap | SSD 可改用 zram |
如果你想要最簡設定,可以只保留
/efi+/兩個分割區。
伺服器/RAID 使用者:如果需要配置軟體 RAID (mdadm),請參考 Section 17. 伺服器與 RAID 配置。RAID 配置需要在格式化之前完成。
cfdisk 實戰範例#
Disk: /dev/nvme0n1
Size: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Label: gpt, identifier: 9737D323-129E-4B5F-9049-8080EDD29C02
所用裝置 Start 結束 磁區 Size 類型
>> /dev/nvme0n1p1 34 32767 32734 16M Microsoft reserved
/dev/nvme0n1p2 32768 879779839 879747072 419.5G Microsoft basic data
/dev/nvme0n1p3 1416650752 1418747903 2097152 1G EFI System
/dev/nvme0n1p4 1418747904 1437622271 18874368 9G Linux swap
/dev/nvme0n1p5 1437622272 1953523711 515901440 246G Linux filesystem
/dev/nvme0n1p6 879779840 1416650751 536870912 256G Linux filesystem
┌────────────────────────────────────────────────────────────────────────────┐
│Partition name: Microsoft reserved partition │
│Partition UUID: 035B96B8-E321-4388-9C55-9FC0700AFF46 │
│Partition type: Microsoft reserved (E3C9E316-0B5C-4DB8-817D-F92DF00215AE) │
└────────────────────────────────────────────────────────────────────────────┘
[ 刪除 ] [Resize] [ 離開 ] [ 類型 ] [ 求助 ] [ Sort ] [ 寫入 ] [ Dump ]
cfdisk操作提示:使用方向鍵移動,選擇New、Type、Write等操作。確認無誤後輸入yes寫入分割區表。
3. 建立檔案系統並掛載#
可參考:Gentoo Handbook: AMD64 - 準備磁碟 可參考:Ext4 和 XFS 和 Btrfs
為什麼需要這一步? 磁碟分割區只是劃分了空間,但還不能儲存資料。建立檔案系統 (如 ext4, Btrfs) 才能讓作業系統管理和存取這些空間。掛載則是將這些檔案系統連接到 Linux 檔案樹的特定位置。
3.1 格式化#
mkfs.vfat -F32 /dev/nvme0n1p1 # 格式化 ESP 分割區為 FAT32
mkfs.ext4 /dev/nvme0n1p2 # 格式化 Boot 分割區為 ext4
mkfs.ext4 /dev/nvme0n1p3 # 格式化 Root 分割區為 ext4
mkfs.ext4 /dev/nvme0n1p4 # 格式化 Home 分割區為 ext4
mkswap /dev/nvme0n1p5 # 格式化 Swap 分割區
若使用 Btrfs:
mkfs.btrfs -L gentoo /dev/nvme0n1p3
若使用 XFS:
mkfs.xfs /dev/nvme0n1p3
3.2 掛載(ext4 範例)#
mount /dev/nvme0n1p3 /mnt/gentoo # 掛載根分割區
mkdir -p /mnt/gentoo/{boot,efi,home} # 建立掛載點目錄
mount /dev/nvme0n1p2 /mnt/gentoo/boot # 掛載 Boot 分割區
mount /dev/nvme0n1p1 /mnt/gentoo/efi # 掛載 ESP 分割區
mount /dev/nvme0n1p4 /mnt/gentoo/home # 掛載 Home 分割區
swapon /dev/nvme0n1p5 # 啟用 Swap 分割區
進階設定:Btrfs 子卷範例(點擊展開)
mount /dev/nvme0n1p3 /mnt/gentoo
btrfs subvolume create /mnt/gentoo/@
btrfs subvolume create /mnt/gentoo/@home
umount /mnt/gentoo
mount -o compress=zstd,subvol=@ /dev/nvme0n1p3 /mnt/gentoo
mkdir -p /mnt/gentoo/{boot,efi,home}
mount -o subvol=@home /dev/nvme0n1p3 /mnt/gentoo/home
mount /dev/nvme0n1p2 /mnt/gentoo/boot
mount /dev/nvme0n1p1 /mnt/gentoo/efi
Btrfs 快照建議: 推薦使用 Snapper 管理快照。合理的子卷規劃(如將
@和@home分開)能讓系統回滾更加輕鬆。
進階設定:加密分割區(LUKS)(點擊展開)
# 建立 LUKS2 加密分割區
cryptsetup luksFormat --type luks2 --pbkdf argon2id --hash sha512 --key-size 512 /dev/nvme0n1p3
# 打開加密分割區
cryptsetup luksOpen /dev/nvme0n1p3 root
# 輸入密碼後,映射為 /dev/mapper/root
# 格式化映射後的設備
mkfs.ext4 /dev/mapper/root
# 掛載
mount /dev/mapper/root /mnt/gentoo
注意:使用加密分割區後,後續配置核心和引導載入程式時需要額外步驟(配置 initramfs 解密)。
建議:掛載完成後,建議使用
lsblk確認掛載點是否正確。lsblk輸出範例(類似如下):
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:1 0 931.5G 0 disk ├─nvme0n1p1 259:7 0 16M 0 part ├─nvme0n1p2 259:8 0 419.5G 0 part ├─nvme0n1p3 259:9 0 1G 0 part /boot ├─nvme0n1p4 259:10 0 9G 0 part [SWAP] ├─nvme0n1p5 259:11 0 246G 0 part │ └─cryptroot 253:0 0 246G 0 crypt /snapshots/root │ /
4. 下載 Stage3 並進入 chroot#
可參考:Gentoo Handbook: AMD64 - 安裝 Gentoo 安裝檔案 可參考:Stage file
為什麼需要這一步? Stage3 是一個最小化的 Gentoo 基礎系統環境。我們將它解壓到硬碟上,作為新系統的「地基」,然後通過
chroot進入這個新環境進行後續配置。
4.1 選擇 Stage3#
- OpenRC:
stage3-amd64-openrc-*.tar.xz - systemd:
stage3-amd64-systemd-*.tar.xz - Desktop 變種只是預設開啟部分 USE,標準版更靈活。
4.2 下載與展開#
cd /mnt/gentoo
# 使用 links 瀏覽器訪問鏡像站下載 Stage3
links http://ftp.twaren.net/Linux/Gentoo/releases/amd64/autobuilds/20251123T153051Z/ #以 TWAREN 鏡像站為例
# 解壓 Stage3 壓縮包
# x:解壓 p:保留權限 v:顯示過程 f:指定檔案 --numeric-owner:使用數字ID
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner
如果同時下載了 .DIGESTS 或 .CONTENTS,可以用 openssl 或 gpg 驗證。
4.3 複製 DNS 並掛載偽檔案系統#
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/ # 複製 DNS 設定
mount --types proc /proc /mnt/gentoo/proc # 掛載進程資訊
mount --rbind /sys /mnt/gentoo/sys # 綁定掛載系統資訊
mount --rbind /dev /mnt/gentoo/dev # 綁定掛載設備節點
mount --rbind /run /mnt/gentoo/run # 綁定掛載運行時資訊
mount --make-rslave /mnt/gentoo/sys # 設定為從屬掛載 (防止卸載時影響宿主)
mount --make-rslave /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/run
使用 OpenRC 可以省略
/run這一步。
4.4 進入 chroot#
chroot /mnt/gentoo /bin/bash # 切換根目錄到新系統
source /etc/profile # 載入環境變數
export PS1="(chroot) ${PS1}" # 修改提示符以區分環境
5. 初始化 Portage 與 make.conf#
可參考:Gentoo Handbook: AMD64 - 安裝 Gentoo 基本系統
為什麼需要這一步? Portage 是 Gentoo 的套件管理系統,也是其核心特色。初始化 Portage 並設定
make.conf就像為你的新系統設定了「建構藍圖」,決定了軟體如何編譯、使用哪些功能以及從哪裡下載。
5.1 同步樹#
emerge-webrsync # 獲取最新的 Portage 快照 (比 rsync 快)
emerge --sync # 同步 Portage 樹 (獲取最新 ebuild)
emerge --ask app-editors/vim # 安裝 Vim 編輯器 (推薦)
eselect editor list # 列出可用編輯器
eselect editor set vi # 將 Vim 設定為預設編輯器 (vi 通常是指向 vim 的軟連結)
設定鏡像(擇一):
mirrorselect -i -o >> /etc/portage/make.conf
# 或手動:
#以 TWAREN 鏡像站為例
echo 'GENTOO_MIRRORS="http://ftp.twaren.net/Linux/Gentoo/"' >> /etc/portage/make.conf
5.2 make.conf 範例#
可參考:Gentoo Handbook: AMD64 - USE 標誌 和 /etc/portage/make.conf
編輯 /etc/portage/make.conf:
vim /etc/portage/make.conf
懶人/新手配置(複製貼上):
提示:請根據你的 CPU 核心數修改
MAKEOPTS中的-j參數(例如 8 核 CPU 使用-j8)。
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
# 請根據 CPU 核心數修改 -j 後面的數字
MAKEOPTS="-j8"
# 語言設定
LC_MESSAGES=C
L10N="en en-US zh zh-CN zh-TW"
LINGUAS="en en_US zh zh_CN zh_TW"
# 鏡像源 (TWAREN)
GENTOO_MIRRORS="http://ftp.twaren.net/Linux/Gentoo/"
# 常用 USE 旗標 (systemd 使用者推薦)
USE="systemd udev dbus policykit networkmanager bluetooth git dist-kernel"
ACCEPT_LICENSE="*"
詳細配置範例(建議閱讀並調整)(點擊展開)
# vim: set language=bash; # 告訴 Vim 使用 bash 語法突顯
CHOST="x86_64-pc-linux-gnu" # 目標系統架構(不要手動修改)
# ========== 編譯最佳化參數 ==========
# -march=native: 針對當前 CPU 最佳化(推薦,效能最佳)
# -O2: 最佳化等級 2(平衡效能與穩定性,推薦)
# -pipe: 使用管道傳遞資料,加速編譯(不影響最終程式)
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}" # C 程式編譯選項
CXXFLAGS="${COMMON_FLAGS}" # C++ 程式編譯選項
FCFLAGS="${COMMON_FLAGS}" # Fortran 程式編譯選項
FFLAGS="${COMMON_FLAGS}" # Fortran 77 程式編譯選項
# CPU 指令集最佳化(見下文 5.3,執行 cpuid2cpuflags 自動生成)
# CPU_FLAGS_X86="aes avx avx2 ..."
# ========== 語言與本地化設定 ==========
# 保持建置輸出為英文(便於除錯和搜尋解決方案)
LC_MESSAGES=C
# L10N: 本地化支援(影響文件、翻譯等)
L10N="en en-US zh zh-CN zh-TW"
# LINGUAS: 舊式本地化變數(部分軟體仍需要)
LINGUAS="en en_US zh zh_CN zh_TW"
# ========== 並行編譯設定 ==========
# -j 後面的數字 = CPU 執行緒數(例如 32 核心 CPU 用 -j32)
# 推薦值:CPU 執行緒數(可透過 nproc 指令查看)
MAKEOPTS="-j32" # 請根據實際硬體調整
# ========== 鏡像源設定 ==========
# Gentoo 軟體套件下載鏡像(台灣地區建議使用台灣學術網路鏡像)
GENTOO_MIRRORS="http://ftp.twaren.net/Linux/Gentoo/"
# ========== Emerge 預設選項 ==========
# --ask: 執行前詢問確認
# --verbose: 顯示詳細資訊(USE 旗標變化等)
# --with-bdeps=y: 包含建置時依賴
# --complete-graph=y: 完整依賴圖分析
EMERGE_DEFAULT_OPTS="--ask --verbose --with-bdeps=y --complete-graph=y"
# ========== USE 旗標(全域功能開關)==========
# systemd: 使用 systemd 作為 init 系統(若用 OpenRC 則改為 -systemd)
# udev: 裝置管理支援
# dbus: 行程間通訊(桌面環境必需)
# policykit: 權限管理(桌面環境必需)
# networkmanager: 網路管理器(推薦)
# bluetooth: 藍牙支援
# git: Git 版本控制
# dist-kernel: 使用發行版核心(新手推薦,可用預編譯核心)
USE="systemd udev dbus policykit networkmanager bluetooth git dist-kernel"
# ========== 許可證接受 ==========
# "*" 表示接受所有許可證(包括非自由軟體許可證)
# 可選擇性接受:ACCEPT_LICENSE="@FREE"(僅自由軟體)
ACCEPT_LICENSE="*"
# 檔案末尾保留換行符!重要!
新手提示:
MAKEOPTS="-j32"的數字應該是你的 CPU 執行緒數,可透過nproc指令查看- 如果編譯時記憶體不足,可以減少並行任務數(如改為
-j16)- USE 旗標是 Gentoo 的核心特性,決定了軟體編譯時包含哪些功能
進階設定:CPU 指令集優化 (CPU_FLAGS_X86)(點擊展開)
可參考:CPU_FLAGS_*
為了讓 Portage 知道你的 CPU 支援哪些特定指令集(如 AES, AVX, SSE4.2 等),我們需要設定 CPU_FLAGS_X86。
安裝檢測工具:
emerge --ask app-portage/cpuid2cpuflags # 安裝檢測工具
執行檢測並寫入設定:
cpuid2cpuflags >> /etc/portage/make.conf # 將檢測結果追加到設定檔
檢查 /etc/portage/make.conf 末尾,你應該會看到類似這樣的一行:
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sse sse2 sse3 sse4_1 sse4_2 ssse3"
6. Profile、系統設定與本地化#
可參考:Gentoo Handbook: AMD64 - 安裝 Gentoo 基本系統
為什麼需要這一步? Profile 定義了系統的基礎配置和預設 USE 旗標,是 Gentoo 靈活性的體現。設定時區、語言和網路等基本系統參數,是讓你的 Gentoo 系統能夠正常運作並符合個人使用習慣的關鍵。
6.1 選擇 Profile#
eselect profile list # 列出所有可用 Profile
eselect profile set <編號> # 設定選定的 Profile
emerge -avuDN @world # 更新系統以匹配新 Profile (a:詢問 v:詳細 u:升級 D:深層依賴 N:新USE)
常見選項:
default/linux/amd64/23.0/desktop/plasma/systemddefault/linux/amd64/23.0/desktop/gnome/systemddefault/linux/amd64/23.0/desktop(OpenRC 桌面)
6.2 時區與語言#
echo "Asia/Taipei" > /etc/timezone
emerge --config sys-libs/timezone-data
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
echo "zh_TW.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen # 生成選定的語言環境
eselect locale set en_US.utf8 # 設定系統預設語言 (建議用英文以免亂碼)
# 重新載入環境
env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
6.3 主機名與網路設定#
設定主機名:
echo "gentoo" > /etc/hostname
網路管理工具選擇:
方案 A:NetworkManager (推薦,通用)
可參考:NetworkManager
適合大多數桌面使用者,同時支援 OpenRC 和 systemd。
emerge --ask net-misc/networkmanager
# OpenRC:
rc-update add NetworkManager default
# systemd:
systemctl enable NetworkManager
設定提示:
- 圖形介面:執行
nm-connection-editor- 命令列:使用
nmtui(圖形化嚮導) 或nmcli
進階提示:使用 iwd 後端(點擊展開)
NetworkManager 支援使用 iwd 作為後端(比 wpa_supplicant 更快)。
echo "net-misc/networkmanager iwd" >> /etc/portage/package.use/networkmanager
emerge --ask --newuse net-misc/networkmanager
之後編輯 /etc/NetworkManager/NetworkManager.conf,在 [device] 下添加 wifi.backend=iwd。
方案 B:輕量方案(點擊展開)
如果你不想使用 NetworkManager,可以選擇以下輕量級方案:
方案 3:原生方案(點擊展開)
使用 init 系統自帶的網路管理功能,適合伺服器或極簡環境。
OpenRC 網卡服務:
vim /etc/conf.d/net
注意:請將下文中的
enp5s0替換為你實際的網卡介面名稱(透過ip link查看)。
寫入以下內容:
config_enp5s0="dhcp"
ln -s /etc/init.d/net.lo /etc/init.d/net.enp5s0 # 建立網卡服務軟連結
rc-update add net.enp5s0 default # 設定開機自啟
Systemd 原生網卡服務:
可參考:systemd-networkd、systemd-resolved、Systemd、Systemd: Network
Systemd 自帶了網路管理功能,適合伺服器或極簡環境:
systemctl enable systemd-networkd
systemctl enable systemd-resolved
注意:需要手動編寫 .network 設定檔。
6.4 設定 fstab#
可參考:Gentoo Handbook: AMD64 - fstab 和 Gentoo Wiki: /etc/fstab
獲取 UUID:
blkid
方法 A:自動生成(推薦 LiveGUI 使用者)
注意:
genfstab工具通常包含在arch-install-scripts套件中。如果你使用的是 Gig-OS 或其他基於 Arch 的 LiveISO,可以直接使用。官方 Minimal ISO 可能需要手動安裝或使用方法 B。
emerge --ask sys-fs/genfstab # 如果沒有該命令
genfstab -U /mnt/gentoo >> /mnt/gentoo/etc/fstab
檢查生成的檔案:
cat /mnt/gentoo/etc/fstab
方法 B:手動編輯
編輯 /etc/fstab:
vim /etc/fstab
UUID=<ESP-UUID> /efi vfat defaults,noatime 0 2
UUID=<BOOT-UUID> /boot ext4 defaults,noatime 0 2
UUID=<ROOT-UUID> / ext4 defaults,noatime 0 1
UUID=<HOME-UUID> /home ext4 defaults,noatime 0 2
UUID=<SWAP-UUID> none swap sw 0 0
7. 核心與韌體#
可參考:Gentoo Handbook: AMD64 - 配置 Linux 核心
為什麼需要這一步? 核心是作業系統的核心,負責管理硬體。Gentoo 允許你手動裁剪核心,只保留你需要的驅動,從而獲得極致的效能和精簡的體積。新手也可以選擇預編譯核心快速上手。
7.1 快速方案:預編譯核心#
emerge --ask sys-kernel/gentoo-kernel-bin
核心升級後記得重新生成引導程式設定。
進階設定:手動編譯核心 (Gentoo 核心體驗)(點擊展開)
新手提示: 編譯核心比較複雜且耗時。如果你想盡快體驗 Gentoo,可以先跳過本節,使用 7.1 的預編譯核心。
手動編譯核心能讓你完全掌控系統功能,移除不需要的驅動,獲得更精簡、高效的核心。
快速開始(使用 Genkernel 自動化):
emerge --ask sys-kernel/gentoo-sources sys-kernel/genkernel
genkernel --install all # 自動編譯並安裝核心、模組和 initramfs
# --install: 編譯完成後自動安裝到 /boot 目錄
# all: 完整構建 (核心 + 模組 + initramfs)
進階內容:如果你想深入了解核心配置、使用 LLVM/Clang 編譯核心、啟用 LTO 最佳化等進階選項,請參考 Section 16.0 核心編譯進階指南。
7.3 安裝韌體與微碼#
mkdir -p /etc/portage/package.license
# 同意 Linux 韌體的授權條款
echo 'sys-kernel/linux-firmware linux-fw-redistributable no-source-code' > /etc/portage/package.license/linux-firmware
echo 'sys-kernel/installkernel dracut' > /etc/portage/package.use/installkernel
emerge --ask sys-kernel/linux-firmware
emerge --ask sys-firmware/intel-microcode # Intel CPU
8. 基礎工具#
可參考:Gentoo Handbook: AMD64 - 安裝必要的系統工具
為什麼需要這一步? Stage3 只有最基礎的指令。我們需要補充系統日誌、網路管理、檔案系統工具等必要組件,才能讓系統在重啟後正常工作。
8.1 系統服務工具#
OpenRC 使用者(必選):
1. 系統日誌
可參考:Syslog-ng
emerge --ask app-admin/syslog-ng
rc-update add syslog-ng default
2. 定時任務
emerge --ask sys-process/cronie
rc-update add cronie default
3. 時間同步
emerge --ask net-misc/chrony
rc-update add chronyd default
systemd 使用者: systemd 已內建日誌與時間同步服務。
時間同步
systemctl enable --now systemd-timesyncd
8.3 檔案系統工具#
根據你使用的檔案系統安裝對應工具(必選):
emerge --ask sys-fs/e2fsprogs # ext4
emerge --ask sys-fs/xfsprogs # XFS
emerge --ask sys-fs/dosfstools # FAT/vfat (EFI 分割區需要)
emerge --ask sys-fs/btrfs-progs # Btrfs
9. 建立使用者與權限#
可參考:Gentoo Handbook: AMD64 - 結束安裝
為什麼需要這一步? Linux 不建議日常使用 root 帳戶。我們需要建立一個普通使用者,並賦予其使用
sudo的權限,以提高系統安全性。
passwd root # 設定 root 密碼
useradd -m -G wheel,video,audio,plugdev zakk # 建立使用者並加入常用群組
passwd zakk # 設定使用者密碼
emerge --ask app-admin/sudo
echo "%wheel ALL=(ALL) ALL" > /etc/sudoers.d/wheel # 允許 wheel 群組使用 sudo
若使用 systemd,可視需求將帳號加入 network、lp 等群組。
進階設定:設定加密支援(僅加密使用者)(點擊展開)
可參考:Dm-crypt
注意:如果你在步驟 3.4 中選擇了加密分割區,才需要執行此步驟。
步驟 1:啟用 systemd cryptsetup 支援#
mkdir -p /etc/portage/package.use
echo "sys-apps/systemd cryptsetup" >> /etc/portage/package.use/fde
# 重新編譯 systemd 以啟用 cryptsetup 支援
emerge --ask --oneshot sys-apps/systemd
步驟 2:取得 LUKS 分割區的 UUID#
# 取得 LUKS 加密容器的 UUID(不是裡面的檔案系統 UUID)
blkid /dev/nvme0n1p3
輸出範例:
/dev/nvme0n1p3: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="crypto_LUKS" ...
記下這個 LUKS UUID(例如:a1b2c3d4-e5f6-7890-abcd-ef1234567890)。
步驟 3:設定 GRUB 核心參數#
vim /etc/default/grub
加入或修改以下內容(替換 UUID 為實際值):
# 完整範例(替換 UUID 為你的實際 UUID)
GRUB_CMDLINE_LINUX="rd.luks.uuid=<LUKS-UUID> rd.luks.allow-discards root=UUID=<ROOT-UUID> rootfstype=btrfs"
參數說明:
rd.luks.uuid=<UUID>:LUKS 加密分割區的 UUID(使用blkid /dev/nvme0n1p3取得)rd.luks.allow-discards:允許 SSD TRIM 指令穿透加密層(提升 SSD 效能)root=UUID=<UUID>:解密後的 btrfs 檔案系統 UUID(使用blkid /dev/mapper/gentoo-root取得)rootfstype=btrfs:根檔案系統類型(如果使用 ext4 改為ext4)
步驟 3.1(替代方案):設定核心參數 (systemd-boot 方案)#
如果你使用 systemd-boot 而不是 GRUB,請編輯 /boot/loader/entries/ 下的設定檔(例如 gentoo.conf):
title Gentoo Linux
version 6.6.13-gentoo
options rd.luks.name=<LUKS-UUID>=cryptroot root=/dev/mapper/cryptroot rootfstype=btrfs rd.luks.allow-discards init=/lib/systemd/systemd
linux /vmlinuz-6.6.13-gentoo
initrd /initramfs-6.6.13-gentoo.img
參數說明:
rd.luks.name=<LUKS-UUID>=cryptroot:指定 LUKS 分割區 UUID 並映射為cryptroot。root=/dev/mapper/cryptroot:指定解密後的根分割區設備。rootfstype=btrfs:指定根檔案系統類型。
步驟 4:安裝並設定 dracut#
# 安裝 dracut(如果還沒安裝)
emerge --ask sys-kernel/dracut
步驟 5:設定 dracut for LUKS 解密#
建立 dracut 設定檔:
vim /etc/dracut.conf.d/luks.conf
加入以下內容:
# 不要在這裡設定 kernel_cmdline,GRUB 會覆蓋它
kernel_cmdline=""
# 新增必要的模組支援 LUKS + btrfs
add_dracutmodules+=" btrfs systemd crypt dm "
# 新增必要的工具
install_items+=" /sbin/cryptsetup /bin/grep "
# 指定檔案系統(如果使用其他檔案系統請修改)
filesystems+=" btrfs "
設定說明:
crypt和dm模組提供 LUKS 解密支援systemd模組用於 systemd 啟動環境btrfs模組支援 btrfs 檔案系統(如果使用 ext4 改為ext4)
步驟 6:設定 /etc/crypttab(可選但推薦)#
vim /etc/crypttab
加入以下內容(替換 UUID 為你的 LUKS UUID):
gentoo-root UUID=<LUKS-UUID> none luks,discard
這樣設定後,系統會自動識別並提示解鎖加密分割區。
步驟 7:重新生成 initramfs#
# 重新生成 initramfs(包含 LUKS 解密模組)
dracut --kver $(make -C /usr/src/linux -s kernelrelease) --force
# --kver: 指定核心版本
# $(make -C /usr/src/linux -s kernelrelease): 自動取得當前核心版本號
# --force: 強制覆蓋已存在的 initramfs 檔案
重要:每次更新核心後,也需要重新執行此命令生成新的 initramfs!
步驟 8:更新 GRUB 設定#
grub-mkconfig -o /boot/grub/grub.cfg
# 驗證 initramfs 被正確引用
grep initrd /boot/grub/grub.cfg
10. 安裝引導程式#
10.1 GRUB#
可參考:GRUB
emerge --ask sys-boot/grub:2
mkdir -p /efi/EFI/Gentoo
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Gentoo # 安裝 GRUB 到 ESP
# 安裝 os-prober 以支援多系統檢測
emerge --ask sys-boot/os-prober
# 啟用 os-prober(用於檢測 Windows 等其他作業系統)
echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub
# 生成 GRUB 設定檔
grub-mkconfig -o /boot/grub/grub.cfg
進階設定:systemd-boot (僅限 UEFI)(點擊展開)
可參考:systemd-boot
bootctl --path=/efi install # 安裝 systemd-boot
# 1. 建立 Gentoo 引導項
vim /efi/loader/entries/gentoo.conf
寫入以下內容(注意替換 UUID):
title Gentoo Linux
linux /vmlinuz-6.6.62-gentoo-dist
initrd /initramfs-6.6.62-gentoo-dist.img
options root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw quiet
注意:如果你使用了 LUKS 加密,options 行需要添加
rd.luks.uuid=...等參數。
2. 更新引導項:
每次更新核心後,需要手動更新 gentoo.conf 中的版本號,或者使用腳本自動化。
2. 建立 Windows 引導項 (雙系統)
如果你建立了新的 EFI 分割區,請記得將原 Windows EFI 檔案 (EFI/Microsoft) 複製到新分割區。
vim /efi/loader/entries/windows.conf
寫入以下內容:
title Windows 11
sort-key windows-01
efi /EFI/Microsoft/Boot/bootmgfw.efi
3. 設定預設引導#
vim /efi/loader/loader.conf
寫入以下內容:
default gentoo.conf
timeout 3
console-mode auto
11. 重啟前檢查清單與重啟#
emerge --info正常執行無錯誤/etc/fstab中的 UUID 正確(使用blkid再確認)- 已設定 root 與一般使用者密碼
- 已執行
grub-mkconfig或完成bootctl設定 - 若使用 LUKS,確認 initramfs 含有
cryptsetup
離開 chroot 並重啟:
exit
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -R /mnt/gentoo
swapoff -a
reboot
恭喜! 你已經完成了 Gentoo 的基礎安裝。
下一步:桌面配置


