Installation guide (正體中文) - ArchWiki

Jump to content
From ArchWiki

本條目或段落需要進行翻譯。

註記: Filling up with broken links, needs an update. (討論)
翻譯狀態：本文章是 Installation guide 的翻譯版本。最近一次的翻譯時間：2021-11-03。點擊本連結查看英文頁面之後的變更。

本文將指導如何用官方安裝鏡像啟動的 Live 系統安裝 Arch Linux。安裝介質現提供無障礙協助工具，對此 使用無障礙輔助選項安裝 Arch Linux 頁面有詳細描述。關於其它的安裝方法, 請參閱 安裝過程分類下的其他條目。

建議在安裝前閱讀 常見問題。對於本文中使用的慣用術語，請參閱 閱讀幫助。請將代碼中`斜體`的部分按實際情況替換成具體內容。

有關更詳細的說明，請閱讀本指南內相應的 ArchWiki 文章或各類程式的手冊。若需要交互說明，可以使用 IRC 頻道和論壇。

Arch Linux 能運行在最少 512 MiB 記憶體的 x86_64 機器上，但從安裝媒介啟動系統並成功安裝需要更多的記憶體。[1] 基本安裝將佔用小於 2 GiB 的存儲空間。由於安裝過程中需要從遠端存放庫獲取套裝軟體，電腦將需要一個有效的互聯網連接。

## 安裝前的準備

### 獲取安裝映射

訪問 下載 頁面，並根據需要的引導方式，獲取 ISO 檔或 netboot 映射以及相應的 GnuPG 簽名。

### 驗證簽名

建議使用前先驗證所下載檔案的簽名，特別是從 HTTP 鏡像源 下載的檔，因為 HTTP 連接一般來說容易遭到攔截而 提供惡意鏡像。

在一台已經安裝 GnuPG 的系統上，可通過下載 PGP 簽名 (在 下載 頁面的 Checksums 下方) 到 ISO 檔所在的路徑，然後用以下方式 驗證簽名：

     $ gpg --keyserver-options auto-key-retrieve --verify archlinux-version-x86_64.iso.sig

另外，在一台已經安裝 Arch Linux 的電腦上可以通過以下方式驗證：

    $ pacman-key -v archlinux-version-x86_64.iso.sig

注意：

- 如果安裝映射是從鏡像網站下載，而不是從 archlinux.org 下載的話，則簽名是可以被偽造的。在這種情況下，請確保用來解碼簽名的公開金鑰是被另一個可信的金鑰簽署的。`gpg` 命令將會輸出公開金鑰的指紋。
- 另一種驗證簽名的方法是確保公開金鑰的指紋等於其中一位簽署了 ISO 檔 Arch Linux 開發者的指紋。請參閱 維琪百科 獲取更多關於公開金鑰加密的資訊。

### 準備安裝介質

安裝映射可以通過 USB 快閃記憶體盤、光碟和帶 PXE 的網路提供給目的機器：請按照合適的文章，使用所選映射為自己準備安裝介質。

### 啟動到 Live 環境

注意： Arch Linux 安裝鏡像不支持安全啟動（Secure Boot）。要引導安裝媒介，需要 禁用安全啟動。如果需要，可在完成安裝後重新配置 安全啟動。

1. 選擇從帶有 Arch 安裝檔的媒介啟動，通常是要在 電腦開機自檢 時按下某個按鍵，一般在啟動畫面會有提示。具體情況請參考主機板說明書。
2. 當引導載入程式功能表出現時，選擇 Arch Linux install medium 並按 `Enter` 進入安裝環境。
   提示： 安裝映射在 UEFI 模式下使用 GRUB 引導，在 BIOS 模式下使用 syslinux 引導。請參閱 README.bootparams 獲取 引導參數 列表。
3. 您將會以 root 身份登錄進一個虛擬控制台，默認的 Shell 是 Zsh。

如果想一邊安裝，一邊使用 Lynx 查看本指南，可以使用 `Alt+箭頭` 快速鍵切換不同的控制台。要編輯設定檔，可以使用 mcedit(1)、nano 和 vim。請參閱 packages.x86_64 獲取安裝介質中包含的套裝軟體列表。

### 控制台鍵盤配置

控制台鍵盤配置默認為 `us`（美式鍵盤映射）。列出所有可用的鍵盤配置，可以使用：

    # ls /usr/share/kbd/keymaps/**/*.map.gz

如果您想要更改鍵盤配置，可以將相應檔案名添加進 loadkeys(1)，但請省略路徑和副檔名。比如，要添加德語鍵盤配置：

    # loadkeys de-latin1

控制台字體 位於 `/usr/share/kbd/consolefonts/` 目錄中，設置方式請參考 setfont(8)。

### 驗證引導模式

要驗證引導模式，請用下列命令列出 efivars 目錄：

    # ls /sys/firmware/efi/efivars

如果命令結果顯示了目錄且沒有報告錯誤，則系統以 UEFI 模式引導。 如果目錄不存在，則系統可能以 BIOS 模式 (或 CSM 模式) 引導。如果系統未以您想要的模式引導啟動，請參考您的主機板說明書。

### 連接到互聯網

要在 Live 環境中配置網路連接，請跟隨以下步驟：

- 確保系統已經啟用了網路介面，用 ip-link(8) 檢查：

      # ip link

- 對於無線局域網（Wi-Fi）和無線廣域網路（WWAN），請確保網卡未被 rfkill 禁用。

- 要連接到網路：
  - 有線乙太網 —— 連接網線。
  - WiFi —— 使用 iwctl 驗證無線網路。
  - 移動寬頻數據機（移動網卡） - 使用 mmcli 實用程式連接到移動網路。

- 配置網路連接：
  - DHCP：對於有線乙太網、無線局域網（WLAN）和無線廣域網路（WWAN）網路介面來說，動態 IP 位址和 DNS 伺服器分配（由 systemd-networkd 和 systemd-resolved 提供機能）能夠開箱即用。
  - 靜態 IP 位址：按照靜態 IP 位址進行操作。

- 用 ping 檢查網路連接：

      # ping archlinux.org

注意： 預設情況下，安裝映射已預配置好並啟用了 systemd-networkd、systemd-resolved、iwd 和 ModemManager。但已經安裝好了的系統並非如此。

### 更新系統時間

使用 timedatectl(1) 確保系統時間是準確的：

    # timedatectl set-ntp true

可以使用 `timedatectl status` 檢查服務狀態。

### 建立硬碟分區

系統如果識別到磁片，就會將其分配為一個塊設備，如 `/dev/sda`、`/dev/nvme0n1` 或 `/dev/mmcblk0`。可以使用 lsblk 或者 fdisk 查看：

    # fdisk -l

結果中以 `rom`、`loop` 或者 `airoot` 結尾的設備可以被忽略。

對於一個選定的設備，以下分區是必須要有的：

- 一個根分區（掛載在 根目錄）`/`；
- 要在 UEFI 模式中啟動，還需要一個 EFI 系統磁碟分割。

如果需要創建多級存儲例如 LVM、disk encryption 或 RAID，請在此時完成。

請使用 fdisk 或 parted 修改分區表。例如：

    # fdisk /dev/the_disk_to_be_partitioned（要被分區的磁片）

注意：

- 如果想要的磁片沒有顯示出來， 確保磁碟控制卡未處於RAID模式.
- 如果要啟動的磁片已經有一個EFI系統磁碟分割，不要新建 EFI 分區，請使用現有的分區。
- 如果檔案系統支持，交換空間 可以通過 交換檔 實現。

#### 分區示例

UEFI 與 GPT
掛載點 | 分區 | 分區類型 | 建議大小
--- | --- | --- | ---
`/mnt/boot`1 | `/dev/efi_system_partition` | EFI 系統磁碟分割 | 至少 300 MiB
`[SWAP]` | `/dev/swap_partition` | Linux swap (交換空間) | 大於 512 MiB
`/mnt` | `/dev/root_partition` | Linux x86-64 根目錄 (/) | 剩餘空間

1. 如果使用的引導載入程式能夠從根磁片卷中載入內核和 initramfs 映射，則可以使用其他掛載點（例如 `/mnt/efi`）。請參閱引導載入程式中的警告部分。

BIOS 與 MBR
掛載點 | 分區 | 分區類型 | 建議大小
--- | --- | --- | ---
`[SWAP]` | `/dev/swap_partition` | Linux swap (交換空間) | 大於 512 MiB
`/mnt` | `/dev/root_partition` | Linux | 剩餘空間

另請參閱 佈局示例。

### 格式化分區

創建分區後，必須使用合適的檔案系統對每個新創建的分區進行格式化。詳情請參閱檔案系統#創建檔案系統。

例如，要在根分區 `/dev/root_partition` 上創建一個 Ext4 檔案系統，請運行：

    # mkfs.ext4 /dev/root_partition（根分區）

如果創建了交換分區，請使用 mkswap(8) 將其初始化：

    # mkswap /dev/swap_partition（交換空間分區）

注意： 對於堆疊式塊設備（stacked block devices）請使用恰當的塊設備路徑替換上文中的 `/dev/*_partition` 處。

如果你要創建一個 EFI 系統磁碟分割，使用 mkfs.fat(8) 將其格式化為 Fat32。

警告： 只有在分區步驟中創建 EFI 系統磁碟分割時才需要格式化。如果這個磁片上已經有一個 EFI 系統磁碟分割了，將它重新格式化會破壞其他已安裝作業系統的引導載入程式。

    # mkfs.fat -F 32 /dev/efi_system_partition

### 掛載分區

將根磁片卷掛載到 `/mnt`，例如：

    # mount /dev/root_partition（根分區） /mnt

然後使用 mkdir(1) 創建其他剩餘的掛載點（比如 `/mnt/efi`）並掛載其相應的磁片卷。

提示： 使用 `--mkdir` 選項運行 mount(8) 來創建指定的掛載點。或者，先使用 mkdir(1) 創建掛載點再掛載。
注意： 掛載分區一定要遵循順序，先掛載根（root）分區（到 `/mnt`），再掛載引導（boot）分區（到 `/mnt/boot` 或 `/mnt/efi`，如果單獨分出來了的話），最後再掛載其他分區。否則您可能遇到安裝完成後無法啟動系統的問題。參見 Talk:Installation guide#Clarify root mount[損壞的連結：無效的章節]。

對於 UEFI 系統，掛載 EFI 系統磁碟分割：

    # mount /dev/efi_system_partition /mnt/boot

如果創建了交換空間卷，請使用 swapon(8) 啟用它：

    # swapon /dev/swap_partition（交換空間分區）

稍後 genfstab(8) 將自動檢測掛載的檔案系統和交換空間。

## 安裝

### 選擇鏡像

文件 `/etc/pacman.d/mirrorlist` 定義了套裝軟體會從哪個鏡像下載。在 LiveCD 啟動的系統上，在連接到互聯網後，reflector 會通過選擇 20 個最新同步的 HTTPS 鏡像並按下載速率對其進行排序來更新鏡像列表。

在列表中越前的鏡像在下載套裝軟體時有越高的優先權。您或許想檢查一下檔，看看是否滿意。如果不滿意，可以相應的修改 `/etc/pacman.d/mirrorlist` 檔，並將地理位置最近的鏡像源挪到檔的頭部，同時也應該考慮一些其他標準。

這個檔接下來還會被 pacstrap 拷貝到新系統裡，所以請確保設置正確。

### 安裝必需的套裝軟體

使用 pacstrap(8) 腳本，安裝 base 套裝軟體和 Linux 內核以及常規硬體的固件：

    # pacstrap /mnt base linux linux-firmware

提示：

- 可以將 linux 替換為內核頁面中介紹的其他內核套裝軟體。
- 在虛擬機器或容器中安裝時，可以不安裝固件套裝軟體。

base 套裝軟體並沒有包含 Live 環境中的全部程式。因此要獲得一個功能齊全的基本系統，可能需要安裝其他套裝軟體。特別要考慮安裝：

- 管理所用檔案系統的用戶工具（比如 XFS 和 Btrfs 對應的管理工具）；
- 訪問RAID或LVM分區的工具；
- 未包含在 linux-firmware 中的額外固件(如用於音效卡的sof-firmware)；
- 聯網所需要的程式 (如 NetworkManager 或 dhcpcd)；
- 文字編輯器（如：nano、vim 等）；
- 訪問 man 和 info 頁面中文檔的工具：man-db，man-pages 和 texinfo。

要安裝其他套裝軟體或套裝軟體組（比如 base-devel），請將它們的名字追加到上文的 pacstrap 命令後 (用空格分隔)，或者也可以在 Chroot 進新系統後使用 pacman 手動安裝套裝軟體或套裝軟體組。packages.x86_64 中可以看到不同套裝軟體或套裝軟體組間的差異。

## 配置系統

### Fstab

用以下命令生成 fstab 檔 (用 `-U` 或 `-L` 選項設置 UUID 或標籤)：

    # genfstab -U /mnt >> /mnt/etc/fstab

強烈建議在執行完以上命令後，檢查一下生成的 `/mnt/etc/fstab` 檔是否正確。

### Chroot

chroot 到新安裝的系統：

    # arch-chroot /mnt

### 時區

要設置時區：

    # ln -sf /usr/share/zoneinfo/Region（地區名）/City（城市名） /etc/localtime

提示： 以要設置為上海時區為例，請運行 `# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime`

然後運行 hwclock(8) 以生成 `/etc/adjtime`：

    # hwclock --systohc

這個命令假定已設置硬體時間為 UTC 時間。詳細資訊請查看 System time#Time standard。

### 當地語系化

程式和庫如果需要當地語系化文本，都依賴區域設置，後者明確規定了地域、貨幣、時區日期的格式、字元排列方式和其他當地語系化標準。

需在這兩個檔設置：`locale.gen` 與 `locale.conf`。

編輯 `/etc/locale.gen`，然後取消掉 `en_US.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` ，系統的 log 就會用英文顯示，這樣更容易判斷和處理問題；
  - 也可以設置為 `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`

警告： 不推薦在此設置任何中文 locale，會導致 tty 亂碼。

如果需要修改 #控制台鍵盤配置，可編輯 vconsole.conf(5) 使其長期生效，例如：

    /etc/vconsole.conf

    KEYMAP=de-latin1

### 網路配置

創建 hostname 檔:

    /etc/hostname

    myhostname（主機名稱）

請接著完成新安裝的環境的網路配置，配置過程中可能需要安裝合適的網路管理軟體。

### Initramfs

通常不需要自己創建新的 initramfs，因為在執行 pacstrap 時已經安裝 linux，這時已經運行過 mkinitcpio 了。

對於 LVM、 system encryption 或 RAID 等分區配置，請修改 mkinitcpio.conf 並用以下命令重新創建一個 Initramfs：

    # mkinitcpio -P

### Root 密碼

設置 Root 密碼：

    # passwd

### 安裝引導程式

需要安裝 Linux 引導載入程式，才能在安裝後啟動系統，可以使用的的引導程式已在 啟動載入器 中列出，請選擇一個安裝並配置它，GRUB (简体中文) 是最常見的選擇。

如果有 Intel 或 AMD 的 CPU，請另外啟用 微碼 更新。

警告： 這是安裝的最後一步也是至關重要的一步，請按上述指引正確安裝好引導載入程式後再重新開機。否則重啟後將無法正常進入系統。

## 重啟

輸入 `exit` 或按 `Ctrl+d` 退出 chroot 環境。

可選用 `umount -R /mnt` 手動卸載被掛載的分區：這有助於發現任何「繁忙」的分區，並通過 fuser(1) 查找原因。

最後，通過執行 `reboot` 重啟系統，systemd 將自動卸載仍然掛載的任何分區。不要忘記移除安裝介質，然後使用 root 帳戶登錄到新系統。

## 安裝後的工作

創建非特權帳戶、圖形化使用者介面的安裝、聲音管理、觸控板支援等系統管理教程和後期工作參見 General recommendations (简体中文)。

感興趣的各類程式，請參見 List of applications (正體中文)。

Category:

- Installation process (正體中文)

Hidden categories:

- Pages or sections flagged with Template:Translateme (正體中文)
- Pages with broken section links