安裝指南
本文將指導如何使用官方安裝鏡像啟動的 Live 系統安裝 Arch Linux。安裝介質現可提供無障礙輔助功能,對此使用無障礙功能安裝 Arch Linux 頁面有詳細描述。關於其它的安裝方法,請您參閱安裝過程分類下的其他條目。
建議在安裝前閱讀常見問題。對於本文中使用的慣用術語,請參閱閱讀幫助。請將代碼、命令中斜體
(也有可能是楷體、仿宋體字)的部分按實際情況替換成具體內容。
本指南旨在簡潔且通俗易懂,建議您嚴格遵循每一節中的順序與指示執行安裝。有關更詳細的說明,請您仔細閱讀本指南內相應的 ArchWiki 文章或各類程序的 Man 手冊或 Info 手冊並掌握核心工具和部分軟件包的基礎用法。若您需要交互幫助,可以訪問 Arch Linux 中文社區的聊天群組或論壇甚至國際社區。
Arch Linux 被設計為可以運行在配置為最低 512 MiB 內存的 x86_64 架構的計算機上,但如果是從安裝媒介啟動系統並成功安裝在計算機硬盤中,則可能需要更多的內存。[1]基本安裝方式將占用小於 2 GiB 的硬盤存儲空間。由於安裝過程中需要從遠程存儲庫獲取軟件包,計算機將需要一個有效的互聯網連接。
安裝前的準備[編輯 | 編輯原始碼]
獲取安裝映像[編輯 | 編輯原始碼]
打開下載頁面,並根據需要的引導方式,獲取 ISO 文件或 netboot 映像以及相應的 PGP 簽名。
驗證簽名[編輯 | 編輯原始碼]
建議使用前先驗證所下載文件的簽名,特別是從 HTTP 鏡像源/非官方鏡像倉庫下載的文件,因為 HTTP 連接一般來說容易遭到攔截而提供惡意文件,而非官方鏡像倉庫可能會對鏡像的文件進行惡意修改。驗證簽名也能及時發現文件損壞。
驗證哈希校驗和[編輯 | 編輯原始碼]
在 Arch Linux 網站的下載頁面的 HTTP Direct Downloads 一節提供了安裝映像的校驗和,包括 SHA256 和 BLAKE2b 兩種算法,您可以使用任何支持其中一個算法的檢驗工具來檢查文件校驗和是否正確。例如,7-Zip 具有此功能。
如果您正在使用的系統上安裝了 sha256sum
命令,則可以下載網站提供的 sha256sums.txt 文件,並將它放在前面下載的安裝映像的同一個目錄下,然後運行以下命令來驗證:
$ sha256sum -c sha256sums.txt --ignore-missing
驗證 PGP 簽名[編輯 | 編輯原始碼]
在一台已經安裝 GnuPG 的系統上(大部分 Linux 系統和 macOS 默認預裝),可通過下載 PGP 簽名(在下載頁面的 Checksums 下方)到 ISO 文件所在的路徑,然後用以下方式驗證簽名:
$ gpg --keyserver-options auto-key-retrieve --verify archlinux-版本(时间)-x86_64.iso.sig
另外,在一台已經安裝 Arch Linux 的計算機上可以通過以下方式驗證:
$ pacman-key -v archlinux-版本-x86_64.iso.sig
- 如果安裝映像是從鏡像站點下載,而不是從 ArchLinux.org 下載的話,其簽名有被偽造的風險。在這種情況下,請您確保用來解碼簽名的公鑰是被另一個可信的密鑰簽署的。
gpg
命令將會輸出公鑰的指紋。 - 另一種驗證簽名的方法是確保公鑰的指紋等於其中一位簽署了 ISO 文件 Arch Linux 開發者的指紋。請您參閱維基百科獲取更多關於公鑰加密的信息。
準備安裝介質[編輯 | 編輯原始碼]
Arch Linux 的ISO映像可以被製作成多種類型安裝介質,如 U 盤、光盤和帶有 PXE 的網絡安裝映像。請按照合適的文章與教程,使用ISO文件為自己準備安裝介質。
對於 Netboot 映像,請按照網絡引導#從U盤啟動準備用於 UEFI 引導的 USB 閃存驅動器。
啟動到 live 環境[編輯 | 編輯原始碼]
- 選擇從帶有 Arch 安裝文件的媒介啟動,通常是需要在計算機啟動加電自檢時快速按下某個熱鍵(比如部分主板會是
F12
鍵)。啟動時的畫面也可能會有提示,詳情請參考自己的計算機的說明書或主板說明書。 - 當引導加載程序菜單出現時,
- 如果你使用了 ISO 映像,選擇 Arch Linux install medium 並按
Enter
進入安裝環境。 - 如果您使用了 Netboot 映像,請從 Mirror 菜單中選擇一個地理位置接近的鏡像,然後選擇 Boot Arch Linux 並按
Enter
。
- 如果你使用了 ISO 映像,選擇 Arch Linux install medium 並按
- 您將會以 root 身份登錄進入一個虛擬控制台,默認的 Shell 是 Zsh。
- 安裝映像在 UEFI 模式下使用 systemd-boot 引導,在 BIOS 模式下使用 Syslinux 引導。分別使用
e
或Tab
來輸入引導參數。Netboot 映像使用 iPXE,可以在啟動選項菜單中指定啟動參數。請參閱 README.bootparams 獲取引導參數列表。 - 手動定義啟動參數的一個常見例子是改變系統顯示在超高分辨率(HiDPI)屏幕的字體的大小。為使系統在 HiDPI 屏幕上顯示的字體有更好的可讀性——當 Live 系統啟動時屏幕還沒有被識別為 HiDPI 的時候——使用
fbcon=font:TER16x32
會有幫助。參見 HiDPI#Linux 控制台的詳細解釋。
如果要使用其他控制台(例如在安裝時使用 Lynx 查看本指南),可以使用 Alt+箭頭
快捷鍵切換不同的控制台。要編輯配置文件,可以使用 mcedit(1)、nano 和 vim 等文本編輯軟件。請參閱 packages.x86_64 獲取安裝介質中包含的軟件包列表。
關於 archinstall 的提示[編輯 | 編輯原始碼]
如果您覺得用命令行安裝過於繁瑣,可以試試官方的安裝腳本 archinstall
。詳情可參見 archinstall。
但不建議初學者用 archinstall 走捷徑,因為手動安裝 Arch Linux 本身就是 Arch Linux 教學實操中重要的一環,少了這個環節,會讓初學者面對一些基礎問題時束手無策,為自己和社區帶來不必要的麻煩。
# archinstall
配置控制台鍵盤布局和字體[編輯 | 編輯原始碼]
系統啟動後,控制台鍵盤布局默認為 us
(美式鍵盤)。如果您需要列出所有可用的鍵盤布局,可以使用以下命令:
# localectl list-keymaps
如果您想要更改鍵盤布局,可以使用 loadkeys(1)。比如,要添加德語鍵盤布局:
# loadkeys de-latin1
控制台字體位於 /usr/share/kbd/consolefonts/
目錄中,設置方式請參考 setfont(8)。例如,要使用適合 HiDPI 屏幕的最大字體之一,請運行以下命令:
# setfont ter-132b
驗證引導模式[編輯 | 編輯原始碼]
要驗證系統目前的引導模式,請檢查 UEFI 位數:
# cat /sys/firmware/efi/fw_platform_size
如果命令結果為 64
,則系統是以 UEFI 模式引導且使用 64 位 x64 UEFI。如果命令結果為 32
,則系統是以 UEFI 模式引導且使用 32 位 IA32 UEFI,雖然其受支持,但引導加載程序只能使用 systemd-boot和 GRUB。如果文件不存在,則系統可能是以BIOS模式(或 CSM 模式)(這兩種模式通常出現在老舊的電腦或未經配置的虛擬機上)引導。如果系統沒有以您想要的模式(UEFI 或 BIOS)引導啟動,請您參考自己的計算機或主板說明書。
連接到互聯網[編輯 | 編輯原始碼]
要在 Live 環境中配置網絡連接,請遵循以下步驟:
- 確保系統已經列出並啟用了網絡接口,用 ip-link(8) 檢查:
# ip link
- 對於無線局域網(Wi-Fi)和無線廣域網(WWAN),請確保網卡未被 rfkill 禁用。
- 連接到網絡:
- 配置網絡連接:
- DHCP:對於有線以太網、無線局域網(WLAN)和無線廣域網(WWAN)網絡接口來說,動態 IP 地址和 DNS 服務器分配(由 systemd-networkd 和 systemd-resolved 提供功能)能夠開箱即用。
- 靜態 IP 地址:按照網絡配置#靜態 IP 地址進行操作。
- 用 ping 檢查網絡連接:
# ping archlinux.org
更新系統時間[編輯 | 編輯原始碼]
在 Live 環境中 systemd-timesyncd 默認啟用,也就是說當系統已經建立互聯網連接後,系統時間將自動同步。
使用 timedatectl(1) 確保系統時間是同步的:
# timedatectl
建立硬盤分區[編輯 | 編輯原始碼]
系統如果識別到計算機的內置硬盤、U盤或者移動硬盤等類型磁盤,就會將其分配為一個塊設備,如 /dev/sda
、/dev/nvme0n1
或 /dev/mmcblk0
。可以使用 lsblk 或者 fdisk 查看:
# fdisk -l (此处为小写字母l)
結果中以 rom
、loop
或者airootfs
結尾的設備可以被忽略。結果中以 rpbm
、boot0
或者 boot1
結尾的 mmcblk*
設備也可以被忽略。
對於一個選定的設備,以下分區是必須要有的:
請使用分區工具(fdisk 、parted、cfdisk 等等)修改分區表。例如:
# cfdisk /dev/要被分区的磁盘
- 花時間規劃一個長期的分區方案,以避免將來需要有風險和複雜的轉換或重新分區。
- 如果您想為 LVM、系統加密 或 RAID 創建任何堆疊塊設備,請立即執行。
- 如果要從中啟動的磁盤已經有一個 EFI 分區,請不要創建另一個 EFI 分區,而是使用現有分區。
- Swap 交換空間可以在 Swap#交換文件 上為支持它的文件系統設置。或者,你也可以在安裝完畢後配置基於 zram 的 swap 以避免使用基於磁盤的 swap。
分區方案示例[編輯 | 編輯原始碼]
已安裝系統上的掛載點 | 分區 | 分區類型 | 建議大小 |
---|---|---|---|
/boot 1
|
/dev/efi_system_partition
|
EFI system partition | 1 GiB。 |
[SWAP]
|
/dev/swap_partition
|
Linux swap (交換空間) | 至少 4GiB |
/
|
/dev/root_partition
|
Linux x86-64 根目錄 (/) | 設備剩餘空間,至少23-32GiB |
已安裝系統上的掛載點 | 分區 | 分區類型 | 建議大小 |
---|---|---|---|
[SWAP]
|
/dev/swap_partition
|
Linux swap (交換空間) | 至少 4GiB |
/
|
/dev/root_partition
|
Linux | 設備剩餘空間,至少23-32GiB |
另請參閱布局示例。
格式化分區[編輯 | 編輯原始碼]
創建分區後,必須使用合適的文件系統對每個新創建的分區進行格式化。詳情請參閱文件系統#創建文件系統。
/dev/*_partition
處。例如,要在根分區 /dev/root_partition
上創建一個 Ext4 文件系統,請運行:
# mkfs.ext4 /dev/root_partition(根分区)
如果你要創建一個 EFI 系統分區,使用 mkfs.fat(8) 將其格式化為 Fat32。
# mkfs.fat -F 32 /dev/efi_system_partition(EFI 系统分区)
如果創建了交換分區,請使用 mkswap(8) 將其初始化:
# mkswap /dev/swap_partition(交换空间分区)
掛載分區[編輯 | 編輯原始碼]
將根磁盤卷掛載到 /mnt
,例如:
# mount /dev/root_partition(根分区) /mnt
然後使用 mkdir(1) 在 /mnt
下創建任何剩餘的掛載點(例如,為/boot
而創建/mnt/boot
),並按相應的層級順序掛載相應的磁盤卷。
/mnt
),再掛載引導(boot)分區(到 /mnt/boot
或 /mnt/efi
,如果單獨分出來了的話),最後再掛載其他分區。否則您可能遇到安裝完成後無法啟動系統的問題。參見 en:Talk:Installation guide#Clarify root mount。對於 UEFI 系統,掛載 EFI 系統分區:
# mount --mkdir /dev/efi_system_partition /mnt/boot
# swapon /dev/swap_partition(交换空间分区)
稍後 genfstab 將自動檢測掛載的文件系統和交換空間。
開始安裝系統[編輯 | 編輯原始碼]
選擇鏡像站[編輯 | 編輯原始碼]
系統的文件 /etc/pacman.d/mirrorlist
中定義了軟件包會從哪個鏡像站下載。在 LiveCD 啟動的系統上,且在連接到互聯網後,reflector 會通過選擇 20 個最新同步的 HTTPS 鏡像站並按下載速率對其進行排序來更新鏡像列表(由於只考慮最新的 20 個鏡像站,其結果常不佳)。如果有手動設置鏡像站列表的需要,建議停止 reflector.service
服務。
在列表中,越靠前的鏡像站在下載軟件包時,就會有越高的優先級。請您檢查 /etc/pacman.d/mirrorlist
文件,看看列出的鏡像站的順序是否合適。如果不合適,可以手動編輯文件,將離您所處地理位置最近的鏡像移到文件的頭部,同時也應該考慮一些其他的評判標準。
如果 /etc/pacman.d/mirrorlist
文件中沒有合適的鏡像站,可以手動從 archlinux 官方網站的鏡像站列表下載一份。這需要您所在的網絡能夠正常訪問 Arch Linux 官方網站。例如,使用 curl(1) 下載位於中國大陸的 HTTPS 鏡像站:
# curl -L 'https://archlinux.org/mirrorlist/?country=CN&protocol=https' -o /etc/pacman.d/mirrorlist
或者,也可以通過安裝 pacman-mirrorlist包 來獲取按國家分列的原始鏡像列表。這麼做的缺點是,pacman 仍然會使用當前配置中的鏡像站來下載軟件包數據庫和 pacman-mirrorlist包,這可能會很慢。在挑選了能用的鏡像之後,可以執行
# pacman -Sy pacman-mirrorlist
再將 /etc/pacman.d/mirrorlist.pacnew
複製到 /etc/pacman.d/mirrorlist
並進行編輯。
或者,如果您記得想要使用的鏡像站的 URL,那麼可以手動編輯 /etc/pacman.d/mirrorlist
文件並手動輸入 URL。
這個文件接下來還會被 pacstrap 拷貝到新系統裡,所以請您確保設置正確。
安裝必需的軟件包[編輯 | 編輯原始碼]
/etc/pacman.d/mirrorlist
之外的軟件或配置不會從 Live 環境傳遞到安裝的系統中。因此,若您在 Live 環境的/etc/pacman.conf
裡啟用了非官方用戶倉庫(如 archlinuxcn 倉庫),請在新安裝的系統手動啟用之。使用 pacstrap(8) 腳本,安裝 base包 軟件包和 Linux 內核以及常規硬件的固件:
# pacstrap -K /mnt base linux linux-firmware
這時候可以同時額外安裝計算機的 CPU 微碼包。如果計算機是 Intel 的 CPU ,使用 intel-ucode包,AMD CPU 則使用 amd-ucode包。也可以暫時都不安裝,等到進入系統後再安裝。
base包 軟件包並沒有包含 Live 環境中的全部程序。因此要獲得一個功能齊全的基本系統,可能需要安裝更多軟件包。要安裝其他軟件包或軟件包組(比如 base-devel包組),請將它們的名字追加到下面的 pacstrap 命令後(以空格分隔),或者也可以在 Chroot 進入新系統後使用 pacman 手動安裝。特別要考慮安裝:
- GPG 密鑰環(如 archlinuxcn-keyringCNRepo,若啟用了某些非官方用戶倉庫。)
- 控制台文本編輯器(如 nano、vim 和 emacs包)以便從控制台編輯配置文件(如點文件)。
- 訪問和管理 RAID 或 LVM 分區的工具。
- 聯網所需要的程序(例如網絡管理器或 DHCP 客戶端,Wi-Fi 認證軟件和移動寬帶連接所需的 ModemManager,以及部分 USB 無線網卡需要的 usb_modeswitch包)。
- 文件系統的用戶工具(比如 XFS 和 Btrfs 文件系統對應的管理工具),可用於創建和管理文件系統以及 fsck。
- CPU 微碼更新 —— amd-ucode包 或 intel-ucode包 —— 用於硬件錯誤和安全修復。
- 未包含在 linux-firmware包 中的額外必需固件(如用於內建音頻的 sof-firmware包、用於 Marvell 無線的 linux-firmware-marvell包 以及博通無線網卡的固件包)。
文件 pkglist.x86_64.txt 中包含 Live 系統安裝的軟件包列表。
配置系統[編輯 | 編輯原始碼]
生成 fstab 文件[編輯 | 編輯原始碼]
通過以下命令生成 fstab 文件 (用 -U
或 -L
選項設置 UUID 或卷標):
# genfstab -U /mnt > /mnt/etc/fstab
強烈建議在執行完以上命令後,檢查一下生成的 /mnt/etc/fstab
文件是否正確。如果有問題,最好在現在手動修改。對於熟練者,可以自行編輯 /mnt/etc/fstab
文件。
可以手動修改 /mnt/etc/fstab
添加掛載選項(參見 mount(8) § FILESYSTEM-INDEPENDENT_MOUNT_OPTIONS 和 ext4(5) § MOUNT_OPTIONS)。例如,給固態硬盤的 ext4 文件系統添加 discard
選項以啟用 TRIM。
chroot 到新安裝的系統[編輯 | 編輯原始碼]
通過以下命令 chroot 到新安裝的系統:
# arch-chroot /mnt
arch-chroot
而不是直接使用chroot
,注意不要輸錯了。設置時間和時區[編輯 | 編輯原始碼]
通過以下命令設置時區:
# ln -sf /usr/share/zoneinfo/地区名/城市名 /etc/localtime
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
。時區名稱是上海而非北京,是因為上海是該時區內人口最多的城市。然後運行 hwclock(8) 以生成 /etc/adjtime
:
# hwclock --systohc
這個命令假定已設置硬件時間為 UTC 時間。詳細信息請查看系統時間#時間標準。
為了防止時鐘漂移並確保時間準確,請手動啟用 NTP(網絡時間協議,Network Time Protocol)客戶端(例如 systemd-timesyncd)設置時間同步。
區域和本地化設置[編輯 | 編輯原始碼]
程序和庫如果需要本地化文本,都依賴區域設置,後者明確規定了地域、貨幣、時區日期的格式、字符排列方式和其他本地化標準。
需要設置這兩個文件:locale.gen
與 locale.conf
。
編輯 /etc/locale.gen
,然後取消掉 en_US.UTF-8 UTF-8
和其他需要的 UTF-8 區域設置前的注釋(#)。
接着執行 locale-gen
以生成 locale 信息:
# locale-gen
然後創建 locale.conf(5) 文件,並編輯設定 LANG 變量,比如:
/etc/locale.conf
LANG=en_US.UTF-8
另外對於中文用戶:
- 用戶可以設置自己的 locale,詳情請參閱 在用戶會話中覆蓋系統區域設置 或 設置當前區域;
- 將系統 locale 設置為
en_US.UTF-8
,系統的日誌就會用英文顯示,這樣更容易判斷和處理問題;- 也可以設置為
en_GB.UTF-8
[英語(英國)]或en_SG.UTF-8
[英語(新加坡)],附帶以下特點:- 進入桌面環境後以 24 小時制顯示時間;
- LibreOffice 等辦公軟件的紙張尺寸會默認為
A4
而非Letter(US)
; - 可儘量避免不必要且可能造成處理麻煩的英制單位。
- 設置的 LANG 變量需與 locale 設置一致,否則會出現以下錯誤:
- 也可以設置為
Cannot set LC_CTYPE to default locale: No such file or directory
如果需要修改#控制台鍵盤布局和字體,可編輯 vconsole.conf(5) 使其長期生效,以德語鍵盤(qwertz)為例:
/etc/vconsole.conf
KEYMAP=de-latin1
網絡配置[編輯 | 編輯原始碼]
/etc/hostname
主機名
請接着完成新安裝的環境的網絡配置,配置過程中可能需要安裝合適的網絡管理軟件。
關於 initramfs[編輯 | 編輯原始碼]
通常不需要自己創建新的 initramfs,因為在執行 pacstrap 時已經安裝 linux包,這時已經運行過 mkinitcpio 了。
如果是 LVM、系統加密或 RAID 等分區配置,請修改 mkinitcpio.conf 並用以下命令重新創建一個 Initramfs:
# mkinitcpio -P
設置 root 密碼[編輯 | 編輯原始碼]
使用以下命令設置 root 密碼:
# passwd
安裝引導程序[編輯 | 編輯原始碼]
需要安裝 Linux 引導加載程序,才能在安裝後啟動系統,可以使用的的引導程序已在引導加載程序中列出,請選擇一個安裝並配置它,GRUB 是一個比較常見且通用的選擇。
重新啟動計算機[編輯 | 編輯原始碼]
輸入 exit
或按 Ctrl+d
退出 chroot 環境。
可選用 umount -R /mnt
手動卸載被掛載的分區:這有助於發現任何「繁忙」的分區,並通過 fuser(1) 查找原因。
最後,通過執行 reboot
重啟系統,systemd 將自動卸載仍然掛載的任何分區。這時候不要忘記移除安裝介質,然後使用 root 賬戶登錄到新系統。
安裝後的工作[編輯 | 編輯原始碼]
創建非特權賬戶、圖形用戶界面的安裝、聲音管理、觸摸板支持等系統管理教程和後期工作參見建議閱讀及其子頁面。
感興趣的各類程序,請參見應用程序列表及其子頁面。
還建議新用戶閱讀給新用戶的關於如何不去弄壞 Arch Linux 系統的建議一文。