Difference between revisions of "Beginners' Guide/Installation (正體中文)"

From ArchWiki
Jump to: navigation, search
(Fonts 採用正體中文條目;域名->主機名稱)
(更新翻譯)
Line 20: Line 20:
 
[[sr:Beginners' Guide/Installation]]
 
[[sr:Beginners' Guide/Installation]]
 
[[zh-CN:Beginners' Guide/Installation]]
 
[[zh-CN:Beginners' Guide/Installation]]
{{翻譯狀態|Beginners'_Guide/Installation|2014-01-23|294065}}
+
{{翻譯狀態|Beginners'_Guide/Installation|2014-01-26|294339}}
 
{{提示|本文是新手教學的多頁版本。若您希望閱讀完整的指南,請'''[[Beginners' Guide_(正體中文)|點擊這裡]]'''。}}
 
{{提示|本文是新手教學的多頁版本。若您希望閱讀完整的指南,請'''[[Beginners' Guide_(正體中文)|點擊這裡]]'''。}}
 
</noinclude>
 
</noinclude>
Line 225: Line 225:
 
==== 分割工具 ====
 
==== 分割工具 ====
  
完完全全的新手可以先嘗試使用圖形化的分割工具。例如以 [http://gparted.sourceforge.net/livecd.php 「Live」 CD 提供]的 [http://gparted.sourceforge.net/download.php GParted]。GParted 也包含在大多數 Linux 發行版本的 Live CD 內,例如 [[Wikipedia:Ubuntu (operating system)|Ubuntu]] 跟 [[Wikipedia:Linux Mint|Linux Mint]]。在重新啟動以前,硬碟必須先進行[[partitioning|分割]],並格式化為[[File Systems|檔案系統]]。
+
完完全全的新手可以先嘗試使用圖形化的分割工具。例如以 [http://gparted.sourceforge.net/livecd.php 「Live」 CD 提供]的 [http://gparted.sourceforge.net/download.php GParted]。GParted 也包含在大多數 Linux 發行版本的 Live CD 內,例如 [[Wikipedia:Ubuntu (operating system)|Ubuntu]] 跟 [[Wikipedia:Linux Mint|Linux Mint]]。硬碟必須先進行[[partitioning|分割]],接著格式化為[[File Systems|檔案系統]]。
  
 
{{提示|當使用 Gparted,選擇建立新分割表的選項時,預設會採用「msdos」分割表。若您打算跟隨提議建立 GPT 分割表,您需要選擇「進階」並在下拉選單中選擇「gpt」。}}
 
{{提示|當使用 Gparted,選擇建立新分割表的選項時,預設會採用「msdos」分割表。若您打算跟隨提議建立 GPT 分割表,您需要選擇「進階」並在下拉選單中選擇「gpt」。}}
  
Gparted 比較容易使用,但若您只是想要在新硬碟上建立幾個分割區,只要使用安裝媒體中包含的 [[Partitioning#Partitioning tools|fdisk 相關軟體]]之一即可快速完成工作。[[Partitioning#Gdisk usage summary|gdisk]] 和 [[Partitioning#Fdisk usage summary|fdisk]] 都有簡略的使用步驟說明。
+
Gparted 比較容易使用,但若您只是想要在新硬碟上建立幾個分割區,只要使用安裝媒體中包含的 [[Partitioning#Partitioning tools|fdisk 相關軟體]]之一即可快速完成工作。下面的章節會提供 [[Partitioning#Gdisk usage summary|gdisk]] 和 [[Partitioning#Fdisk usage summary|fdisk]] 的簡短使用步驟。
  
 
==== 分割計畫 ====
 
==== 分割計畫 ====
Line 447: Line 447:
 
=== Chroot 並設定基礎系統 ===
 
=== Chroot 並設定基礎系統 ===
  
接下來,我們 [[chroot]] 進入全新安裝的系統:
+
接下來,[[chroot]] 進入全新安裝的系統:
  
 
  # arch-chroot /mnt /bin/bash
 
  # arch-chroot /mnt /bin/bash
Line 561: Line 561:
  
 
* 不建議:將 Arch Linux 設定為 ''localtime'',並取消任何時間服務如 [[Network Time Protocol daemon|NTPd]]。硬體時鐘將交由 Windows 處理,若您的所在地區有實施[[Wikipedia:Daylight saving time|日光節約時間]],要記得每年最少要啟動 Windows 兩次 (春季與秋季)。要是長久未打開 Windows,Arch 可能會出現比實際時間少/多一個小時的狀況,這已經成為 Arch 論壇的老問題了。}}
 
* 不建議:將 Arch Linux 設定為 ''localtime'',並取消任何時間服務如 [[Network Time Protocol daemon|NTPd]]。硬體時鐘將交由 Windows 處理,若您的所在地區有實施[[Wikipedia:Daylight saving time|日光節約時間]],要記得每年最少要啟動 Windows 兩次 (春季與秋季)。要是長久未打開 Windows,Arch 可能會出現比實際時間少/多一個小時的狀況,這已經成為 Arch 論壇的老問題了。}}
 
==== 時間同步 ====
 
 
開啟並啟用[[Network Time Protocol daemon|網路時間協定 (NTP) 守護程序]],讓 UTC 時間與網路時間同步:
 
{{bc|# systemctl start ntpd.service}}
 
{{bc|# systemctl enable ntpd.service}}
 
  
 
==== 核心模組 ====
 
==== 核心模組 ====

Revision as of 06:03, 26 January 2014

翻譯狀態: 本文章是 Beginners'_Guide/Installation 的翻譯版本。最近一次的翻譯時間:2014-01-26。點擊本連結查看英文頁面之後的變更。
提示: 本文是新手教學的多頁版本。若您希望閱讀完整的指南,請點擊這裡


安裝

您現在可以看到 Shell 的提示輸入畫面,自動以 root 的身分登入。 終端機下若需要編輯文字檔案,建議使用 nano。若不熟悉這個編輯器,參閱 nano#nano 用法

更改語言

提示: 對多數使用者而言此步驟可略過。若您打算在設定檔內寫入母語的話本步驟便能派上用場。例如:在 Wi-Fi 密碼內使用變音符號、以母語顯示系統訊息 (如可能的錯誤) 等。這裡的變更只會影響安裝程序。

預設的鍵盤布局為 us (美式鍵盤)。 如果您使用的是非美式的鍵盤布局,請執行:

# loadkeys 布局

...「布局」可以是 fr, uk, dvorak, be-latin1 等鍵盤布局。雙字母的國家代碼清單可參閱這裡。使用指令 localectl list-keymaps 列出所有可用鍵盤布局。

字型也需要作更改,因為大多數語言使用的字母數超過 26 個英文字母,某些非英文字母會顯示為白框或其他錯誤符號。注意,字型名稱有分大小寫,請確實按照名稱鍵入:

# setfont Lat2-Terminus16

預設的語系為「英文(美國)」。若您想要更改安裝程序語系 (以下範例為德文),在 /etc/locale.gen 移除您需要語系前面的井字符號 #,也請保留「英文(美國)」以備不時之需。請選擇 UTF-8 項目。

# nano /etc/locale.gen
en_US.UTF-8 UTF-8
de_DE.UTF-8 UTF-8
# locale-gen
# export LANG=de_DE.UTF-8

(譯註:以上舉例僅供示範。在安裝期間設定中文語系將發生無法正常顯示中文的問題,建議忽略此步驟。)

啟用網路連線

警告: udev 自版本 197 開始不再按照以往 wlanX、ethX 的方式分配網路介面的名稱。如果您是從其他發行版本轉來的玩家,還是準備重灌但還不知道新的介面命名方案的 Arch 玩家,先不要急著認為無線裝置就是 wlan0、有線裝置就是 eth0。您可以使用 ip link 指令找出介面名稱。

開機過程中會自動啟動 dhcpcd 網路守護程序,並嘗試建立有線網路連線。試著 ping 向任何一個伺服器檢查連線是否已建立,下面例子使用 Google 的伺服器:

# ping -c 3 www.google.com
PING www.l.google.com (74.125.132.105) 56(84) bytes of data.
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=1 ttl=50 time=17.0 ms
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=2 ttl=50 time=18.2 ms
64 bytes from wb-in-f105.1e100.net (74.125.132.105): icmp_req=3 ttl=50 time=16.6 ms

--- www.l.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 16.660/17.320/18.254/0.678 ms

若出現 ping: unknown host 錯誤,首先檢查網路線有沒有接好,無線網路訊號強度夠不夠。若否,您將得照下面的步驟來手動設定網路。成功連上網路的話就跳至準備儲存裝置

有線網路

如果您使用固定 IP 位址的有線網路連線,請依照以下的步驟。

首先,將開機時自動開始的 dhcpcd 服務停用:

# systemctl stop dhcpcd.service

確認網路卡的介面名稱。

# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0f0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 00:11:25:31:69:20 brd ff:ff:ff:ff:ff:ff
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
    link/ether 01:02:03:04:05:06 brd ff:ff:ff:ff:ff:ff

本範例中,網路卡的介面為 enp2s0f0。有線網路卡的介面名稱通常會以字母「e」當開頭,不應該是「lo」或其他以「w」 開頭的名稱。

您也必須了解以下的設定資料:

  • 固定 IP 位址。
  • 子網路遮罩。
  • 通信閘的 IP 位址。
  • 名稱伺服器 (DNS) 的 IP 位址。
  • 網域名稱(單一區域網路內請隨意)。

啟用裝載的有線網路介面 (例如 enp2s0f0):

# ip link set enp2s0f0 up

加入位址:

# ip addr add IP 位址/遮罩位元數 dev 介面名

例如:

# ip addr add 192.168.1.2/24 dev enp2s0f0

需要更多選項的話,執行 man ip 查詢。

加入您的網路通訊閘 IP 位址:

# ip route add default via IP 位址

例如:

# ip route add default via 192.168.1.1

編輯 resolv.conf,改成您的名稱伺服器 IP 位置,以及本機域名:

# nano /etc/resolv.conf
nameserver 61.23.173.5
nameserver 61.95.849.8
search example.com
註記: 目前最多只能加入三行 nameserver 字串。若要克服此限制,您可以使用本地快取名稱伺服器,如 Dnsmasq

到這裡,您的網路連線應該可以使用了。若還是不行,請參閱更詳細的網路設定

無線網路

若您在安裝過程中需要無線網路連線 (Wi-Fi),請依照以下的步驟進行。

首先,偵測無線網路介面的名稱。

# iw dev
phy#0
        Interface wlp3s0
                ifindex 3
                wdev 0x1
                addr 00:11:22:33:44:55
                type managed

在本範例中,wlp3s0 為可用的無線網路介面。無線網路的介面名稱通常會以字母「w」當開頭,不應該是「lo」或以「e」開頭的名稱。

註記: 若您沒有看到相似的輸出,代表尚未載入無線網路驅動。在此情況下您必須手動將驅動載入。更細節的資訊請參閱無線網路設定

啟用介面:

# ip link set wlp3s0 up

觀察以下指令輸出,驗證介面是否啟用:

# ip link show wlp3s0
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

<BROADCAST,MULTICAST,UP,LOWER_UP>UP 代表介面已經啟用,不用理會 state DOWN

大多數無線網路晶片組需要韌體以及對應的驅動。核心會嘗試偵測這兩者並自動載入。若您得到 SIOCSIFFLAGS: No such file or directory 之類的輸出訊息,代表您需要手動載入韌體。不確定的話,呼叫 dmesg 檢查核心日誌內是否有無線網路晶片組的韌體請求。假設您有一個 Intel 晶片組,它在開機時曾向核心請求韌體的話:

# dmesg | grep firmware
firmware: requesting iwlwifi-5000-1.ucode

若沒有任何輸出,或許系統的無線網路晶片組並不需要韌體。

警告: (某些卡片需要的) 無線網路晶片組的韌體軟體包已預先安裝在 (CD/USB 碟上) Live 環境的 /usr/lib/firmware 資料夾,但您必須將其安裝在實際的系統上,才能在重啟系統後提供無線網路功能!如何安裝軟體包將在本教學的後面提及。請在重新啟動前確認無線網路的模組與韌體皆安裝完成!若不確定您的晶片組是否需安裝相關韌體,請參閱無線網路設定

接下來使用 netctlwifi-menu 連上網路:

# wifi-menu wlp3s0

到這裡,您的網路連線應該可以使用了。沒有的話,請參閱更詳細的無線網路設定頁面。

不使用 wifi-menu

您也可以使用 iw dev wlp3s0 scan | grep SSID 掃描可用網路並連接:

# wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "ssid" "psk")

您需要將 ssid 改為您的網路名稱 (例如「Linksys etc...」),psk 改為您的無線網路密碼。記得保留網路名稱與密碼兩旁的引號。

最後您需要給介面一個 IP 位址。您可以手動設定或使用 DHCP:

# dhcpcd wlp3s0

失敗的話請使用以下指令:

# echo 'ctrl_interface=DIR=/run/wpa_supplicant' > /etc/wpa_supplicant.conf
# wpa_passphrase <SSID> <密語> >> /etc/wpa_supplicant.conf
# ip link set <介面> up # 可能不需要,但不會造成任何傷害
# wpa_supplicant -B -D nl80211 -c /foobar.conf -i <介面名稱>
# dhcpcd -A <介面名稱>

類比式數據機、ISDN 或 PPPoE DSL

xDSL、撥號和 ISDN 連線的使用者請參閱以數據機直接連線

代理伺服器背後

若您在代理伺服器的背後上網,必須匯出 http_proxyftp_proxy 這兩個環境變數。更多資訊請參閱代理伺服器設定

準備儲存裝置

警告: 分割硬碟會破壞內部資料。您得非常小心,建議在繼續之前先備份所有重要資料。

選擇分割表類型

您需要在 GUID 分割表 (GPT) 和主開機記錄 (MBR) 中擇一使用。全新安裝的場合下建議使用比較先進的 GPT。

註記: 若您打算安裝在 USB 隨身碟,請參閱將 Arch Linux 安裝在 USB 碟

分割工具

完完全全的新手可以先嘗試使用圖形化的分割工具。例如以 「Live」 CD 提供GParted。GParted 也包含在大多數 Linux 發行版本的 Live CD 內,例如 UbuntuLinux Mint。硬碟必須先進行分割,接著格式化為檔案系統

提示: 當使用 Gparted,選擇建立新分割表的選項時,預設會採用「msdos」分割表。若您打算跟隨提議建立 GPT 分割表,您需要選擇「進階」並在下拉選單中選擇「gpt」。

Gparted 比較容易使用,但若您只是想要在新硬碟上建立幾個分割區,只要使用安裝媒體中包含的 fdisk 相關軟體之一即可快速完成工作。下面的章節會提供 gdiskfdisk 的簡短使用步驟。

分割計畫

您可以決定一顆硬碟要分多少塊分割區,每個分割區所歸屬的系統目錄為何。從分割區到目錄的映射 (通常被稱為「掛載點」) 叫做分割計畫。最簡單也不草率的方式是只建立一大塊 / 分割區。另一個常見的選擇是分一塊 / 和一塊 /home 分割區出來。

額外需要的分割區:

  • 若您使用的是 UEFI 主機板,將需要建立一塊額外的 EFI 系統分割區
  • 若您使用的是 BIOS 主機板 (或計畫以 BIOS 相容模式開機),且想要在以 GPT 分割的硬碟上設定 GRUB,將需要建立一塊額外的 BIOS 開機分割區,大小為 1 或 2 MiB,類型代碼為 EF02。Syslinux 則不需要此分割區。
  • 若您有系統自我硬碟加密的需求,必須反應在分割計畫內。系統安裝好以後,新增加密的資料夾、容器或家目錄都沒有問題。
  • 若您計劃讓根檔案系統使用 ext4 (-3,-2) 以外的檔案系統,得先檢查 GRUB 是否支援。若否,您需要再建立一個與 GRUB 相容的分割區 (例如 ext4) 給 /boot 使用。

若您希望設定一個置換分割區或置換檔案,詳情請參閱 Swap。置換檔案比分割區還容易調整大小,也可以在安裝之後的任何時間建立,但無法在 Btrfs 檔案系統中使用。

與 Windows 雙重開機的考量

若您已經有存在的作業系統安裝在硬碟內,請特別注意:在硬碟上寫入一個全新分割表,之前硬碟內所有資料都會遺失。

設定一個 Linux/Windows 雙重開機系統的建議方式是:先安裝好 Windows,只使用部分硬碟作為它的分割區使用。結束 Windows 安裝後,開機進入 Linux 安裝環境,建立給 Linux 使用的額外分割區,同時保持既存的 Windows 分割區不被改動。

某些新電腦預先搭載 Windows 8,它們有使用「安全開機」(Secure Boot)。Arch Linux 目前不支援「安全開機」,但某些安裝的 Windows 8 在 BIOS 關閉「安全開機」的情況下會無法開機。某些情況下,同時將「安全開機」與「快速開機」(Fastboot) 關閉,可以讓 Windows 8 不須「安全開機」即可開機。但是在關掉「安全開機」的情況下,Windows 8 開機有潛在的安全風險。因此,一個更好的選項是,保持 Windows 8 安裝的硬碟不動,用另一顆獨立硬碟給 Linux 安裝使用 - 可完全使用 GPT 分割表分割。完成之後,在電腦有兩顆硬碟的情況下,當要建立數個 ext4/FAT32/swap 分割區時最好選擇第二顆硬碟。此方式對小筆電而言通常不容易/不可能實踐。目前即使是支援「安全開機」的 Linux 發行版本,也無法同時在可靠的操作下達到完全穩定的狀態。

警告: Windows 8 包含一個新功能「快速開機」(Fast Startup),就是將「關機」換成「休眠至硬碟」。大部分的情況下,該功能將導致 Windows 8 與任何其他 OS 共享的檔案系統在兩者輪流切換開機時損壞。就算您不打算分享檔案系統,EFI 系統上的 EFI 系統分割區也很有可能遭受到池魚之殃。因此,在使用 Windows 8 的電腦上安裝 Linux 之前,您應該根據這裡的指示停用「快速開機」。

若您已經建立好分割區,請接續至建立檔案系統

否則請看以下的範例。

範例

Arch Linux 安裝媒介包含了以下的硬碟分割工具:fdisk, gdisk, cfdisk, cgdisk, parted

提示: 使用 lsblk 指令列出與系統連接的硬碟,以及其存在分割區的大小。這能幫您確認分割的硬碟是否正確,添點信心。

以下的範例系統將包含 15 GB 的根目錄區,以及占用其他空間的家目錄區。請從 MBRGPT 任選一項進行,不要同時選擇它們!

再次提醒,使用者可自行任意決定如何分割硬碟。本範例僅為讀者提供示範而已。也請參閱硬碟分割

使用 cgdisk 建立 GPT 分割區
# cgdisk /dev/sda
根目錄:
  • 選擇 New (或按 N) – Enter 默認第一個磁區 (2048) – 輸入 15GEnter 默認預設十六進位代碼 (8300) – Enter 默認空白分割區名稱。
家目錄:
  • 按數次下鍵,將光標移動至較大的可用空間。
  • 選擇 New (或按 N) – Enter 默認第一個磁區 – Enter 使用剩餘的硬碟空間 (或是輸入想要的大小:例如 30G) – Enter 默認預設十六進位代碼 (8300) – Enter 默認空白分割區名稱。

畫面應該長的像這樣:

Part. #     Size        Partition Type            Partition Name
----------------------------------------------------------------
            1007.0 KiB  free space
   1        15.0 GiB    Linux filesystem
   2        123.45 GiB  Linux filesystem

再三檢查,確認您對分割區的大小、分割表的配置滿意之後再繼續。

若您要從頭開始,直接選擇 Quit (或按 Q) 不儲存任何變更離開,接著重新啟動 cgdisk

滿意的話就選擇 Write (或按 Shift+W) 結束,將分割表寫入硬碟。輸入 yes 並選擇 Quit (或按 Q) 離開,不做任何額外變更。

使用 fdisk 建立 MBR 分割區
註記: 另外一種工具 cfdisk 的操作介面與 cgdisk 類似,但目前它無法正確自動對齊第一個分割區。因此我們在這裡使用經典的 fdisk 工具。

啟動 fdisk

# fdisk /dev/sda

建立分割表:

  • Command (m for help): 輸入 o 並按 Enter

接著建立第一個分割區:

  1. Command (m for help): 輸入 n 並按 Enter
  2. 分割區類型:Select (default p):Enter
  3. Partition number (1-4, default 1):Enter
  4. First sector (2048-209715199, default 2048):Enter
  5. Last sector, +sectors or +size{K,M,G} (2048-209715199....., default 209715199): 輸入 +15G 並按 Enter

接著建立第二個分割區:

  1. Command (m for help): 輸入 n 並按 Enter
  2. 分割區類型:Select (default p):Enter
  3. Partition number (1-4, default 2):Enter
  4. First sector (31459328-209715199, default 31459328):Enter
  5. Last sector, +sectors or +size{K,M,G} (31459328-209715199....., default 209715199):Enter

現在預覽新的分割表:

  • Command (m for help): 輸入 p 並按 Enter
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5698d902

   Device Boot     Start         End     Blocks   Id  System
/dev/sda1           2048    31459327   15728640   83   Linux
/dev/sda2       31459328   209715199   89127936   83   Linux

接著將變更寫入硬碟:

  • Command (m for help): 輸入 w 並按 Enter

若一切順利,fdisk 將會顯示以下訊息並退出:

The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks. 

碰到 fdisk 遭遇錯誤而無法工作的狀況時,您可以使用 q 指令離開。

建立檔案系統

只有作硬碟分割是不夠的;它們還需要一個檔案系統。將分割區格式化為 ext4 檔案系統:

警告: 再三檢查要格式化的分割區是否為 /dev/sda1/dev/sda2。您可以使用 lsblk 幫助判斷。
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda2

若您有分割區要以 swap (代碼 82) 使用,別忘了將它格式化後啟用:

# mkswap /dev/sdaX
# swapon /dev/sdaX

UEFI 的使用者應該將 EFI 系統分割區格式化 (以下範例為 /dev/sdXY):

# mkfs.fat -F32 /dev/sdXY

掛載分割區

每個分割區都有一個分別用的數字後綴。舉例來說,sda1 代表硬碟的第一個分割區,至於 sda 則代表整顆硬碟。

顯示目前的分割區配置:

# lsblk /dev/sda
註記: 不要在同一個目錄掛載兩個以上的分割區。另外,掛載的順序十分重要,請保持謹慎。

首先,在 /mnt 掛載根目錄的分割區。這裡將沿用上面的範例 (根據您的配置可能有所不同):

# mount /dev/sda1 /mnt

接著將 home 以及其他的分割區 (/boot, /var 等等) 一起掛載上來:

# mkdir /mnt/home
# mount /dev/sda2 /mnt/home

UEFI 主機版的使用者,請掛載 EFI 系統分割區至指定的掛載點 (範例為 /boot):

# mkdir -p /mnt/boot
# mount /dev/sdXY /mnt/boot

選擇鏡像站

安裝之前先編輯 mirrorlist,把最想使用的鏡像站擺在最前面。這份 mirrorlist 文件,pacstrap會複製一份並安裝到新系統內,所以最好現在就設定完成。

# nano /etc/pacman.d/mirrorlist
##
## Arch Linux repository mirrorlist
## Sorted by mirror score from mirror status page
## Generated on 2012-MM-DD
##

Server = http://mirror.example.xyz/archlinux/$repo/os/$arch
...

您可以選定一個鏡像站為唯一可用的鏡像站,並刪掉其他行。不過,建議保留其他兩、三個站點,以防第一個站點掛掉導致無法更新。

提示:
  • 使用鏡像站清單產生器獲取您所在國家的最新鏡像站清單。HTTP 鏡像站因為其持久連接 (keepalive) 的特性而比 FTP 鏡像站快速。在 FTP 協定下,Pacman 每下載一個軟體包就需要送一次訊號,導致短暫停頓。其他產生鏡像站清單的方式請參閱分類鏡像站點Reflector
  • Arch Linux 鏡像站狀態報告列出了鏡像站點的各種相關資料,如網路問題、資料收集問題、上一次同步時間等等。
註記:
  • 之後每當您更改了鏡像站的清單,記得使用 pacman -Syy 重整軟體包清單,使它們能一致地更新。更多資訊請參閱鏡像站點
  • 若您使用的安裝媒體版本較舊,裡面的鏡像站清單可能已經過期,更新 Arch Linux 時可能會導致問題 (詳見 FS#22510)。建議如上面所述,趕快取得最新的鏡像站資訊。
  • Arch Linux 論壇上出現了阻擋 Pacman 更新/與軟體倉庫同步的網路問題回報 (詳見 [1] 以及 [2])。若您是原生安裝 Arch Linux,用其他替代品取代 Pacman 預設的檔案下載程式可以解決問題 (更多資訊請參閱增進 Pacman 表現)。若您在 VirtualBox 上安裝 Arch Linux 為客體 OS,在機器屬性內使用 「主機介面」(Host Interface) 取代「NAT」也可以解決問題。

安裝基礎系統

我們將使用 pacstrap 腳本安裝基礎系統。省略 -i 選項可跳過提示,直接安裝 base 群組內所有軟體包。

# pacstrap -i /mnt base
註記:
  • 如果 Pacman 在驗證軟體包時失敗,請用 Ctrl+C 停止安裝程序,並使用 cal 檢查系統時間。假如系統時間無效 (如老早之前的 2010 年),簽署金鑰會被認定為過期 (或無效),軟體包的簽署檢查失敗,安裝程序就會被中斷。請使用指令 ntpd -qg 確保系統時間是否正確,再重新執行 pacstrap 指令。更多校正系統時間的資訊請參閱時間頁面。
  • 若 Pacman 抱怨 error: failed to commit transaction (invalid or corrupted package),請執行下面的指令:
# pacman-key --init && pacman-key --populate archlinux

這樣就完成一個基本的 Arch 系統了。其他軟體包之後可以使用 Pacman 安裝。

產生 fstab

用以下指令產生 fstab 檔案。我們將使用 UUID,因為它有一定的優點 (請參閱 fstab#偵測檔案系統)。若您想改用硬碟標籤,將 -U 選項改為 -L

# genfstab -U -p /mnt >> /mnt/etc/fstab
# nano /mnt/etc/fstab
警告: fstab 檔案在產生之後一定要檢查。若執行 genfstab 或之後的安裝過程中遇到任何錯誤,不要再執行一次 genfstab;直接編輯 fstab 檔案即可。

另外一些考量如下:

  • 最後一個欄位決定了系統啟動時檢查分割區的順序:1 給需要最先檢查的 (非 btrfs) 根目錄分割區;2 則給其他在啟動時要檢查的分割區;0 代表「不檢查」(參閱 fstab#欄位定義)。
  • 所有 btrfs 分割區的該欄位應該填 0。正常情況下,您也會希望自己的置換 (swap) 分割區填 0

Chroot 並設定基礎系統

接下來,chroot 進入全新安裝的系統:

# arch-chroot /mnt /bin/bash
註記: 省略 /bin/bash 將以 sh shell 進入。

這個階段將為您的 Arch Linux 基礎系統設定主要的設置檔。若您想要改變預設值,可以編輯或建立 (若檔案不存在) 這些檔案。

為了確保系統設置正確,請遵循以下步驟,並盡可能瞭解其中用處。

本地化

glibc 與其他支援本地化的程式/函式庫會使用本地化設定,來渲染文字、顯示正確的地區貨幣、時間與日期格式、字母順序以及其他本地標準。

在這裡需要編輯兩個檔案:locale.genlocale.conf


將您需要用到的語系都取消註解,只要移除該行前面的 # 即可。非常建議只使用 UTF-8 項目:

# nano /etc/locale.gen
...
en_US.UTF-8 UTF-8
#en_US ISO-8859-1
...
#zh_TW.EUC-TW EUC-TW
zh_TW.UTF-8 UTF-8
#zh_TW BIG5
註記: locale.gen 檔案預設註解掉所有語系。


產生 locale.gen 內指定的語系:

# locale-gen
註記: 這個指令在每次 glibc 升級時都會執行。

為您選擇的語系建立 /etc/locale.conf 檔案:

# echo LANG=en_US.UTF-8 > /etc/locale.conf
註記: 指定給 LANG 變數的語系必須已經在 /etc/locale.gen取消註解。 locale.conf 檔案預設並不存在。只要設定 LANG 就夠了,其他變數將會以此當作預設值使用。


將您選擇的語系匯出:

# export LANG=en_US.UTF-8
提示: 若要設定其他 LC_* 變數為其他語系,執行 locale 檢查可用選項後,將它們加入 locale.conf。我們不建議設定 LC_ALL 變數。詳情請參閱語系#設定全系統語系

終端機字型與鍵盤布局

若您在安裝過程的一開始設定過鍵盤布局的話,由於我們已經換到新安裝的系統環境,請現在再載入一遍。例如:

# loadkeys us
# setfont Lat2-Terminus16

要使設定在重啟系統後依然生效,編輯 vconsole.conf (若檔案不存在則新建一個):

# nano /etc/vconsole.conf
KEYMAP=us
FONT=Lat2-Terminus16
  • KEYMAP – 請注意這裡的設定值只對 TTY (文字介面) 有用,不適用於 Xorg 或任何圖形視窗管理員。
  • FONT/usr/share/kbd/consolefonts/ 內可用的替代字型。預設 (留空) 是安全的,但某些非英文字母可能會變成白框或亂碼。建議您更改為 Lat2-Terminus16,因為 /usr/share/kbd/consolefonts/README.Lat2-Terminus16 號稱支援了「近 110 種語言」。
  • FONT_MAP 的可用選項 – 定義開機時載入的終端機布局。請閱讀 man setfont。將它移除或留空都沒關係。

更多資訊請參閱字型#終端機字型或呼叫 man vconsole.conf

時區

各地區以及子分區可以在 /usr/share/zoneinfo/<地區>/<子分區> 目錄下找到。

檢查目錄 /usr/share/zoneinfo/ 尋找可使用的地區

# ls /usr/share/zoneinfo/

以同樣方式檢查是否有可用的子分區

# ls /usr/share/zoneinfo/Asia

使用以下指令,建立軟連結 /etc/localtime,連結至您所屬的時區檔 /usr/share/zoneinfo/<地區>/<子分區>

# ln -s /usr/share/zoneinfo/<地區>/<子分區> /etc/localtime

範例:

# ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime

硬體時鐘

請統一您所有作業系統的硬體時鐘模式。否則它們可能會覆寫硬體時鐘,造成時間偏移。

使用以下任一指令,自動產生 /etc/adjtime

  • UTC (建議使用)
註記: 硬體時鐘使用 UTC,不代表軟體會以 UTC 的方式顯示時間。
# hwclock --systohc --utc
  • localtime (不建議;Windows 預設使用)
警告: 使用 localtime 可能引發數個已知且無法修復的臭蟲。但目前沒有放棄 localtime 支援的計劃。
# hwclock --systohc --localtime
提示: 若您有 (或打算建立) Linux 與 Windows 的雙重開機系統:
  • 建議:將 Arch Linux 和 Windows 設定為使用 UTC。Windows 需要加入一個修正註冊碼。另外確保停用 Windows 的線上同步時間功能,否則硬體時鐘又會回復成 localtime 的預設值。
  • 不建議:將 Arch Linux 設定為 localtime,並取消任何時間服務如 NTPd。硬體時鐘將交由 Windows 處理,若您的所在地區有實施日光節約時間,要記得每年最少要啟動 Windows 兩次 (春季與秋季)。要是長久未打開 Windows,Arch 可能會出現比實際時間少/多一個小時的狀況,這已經成為 Arch 論壇的老問題了。

核心模組

提示: 這裡僅做示例,您不需要作任何設定。所有需要的模組都會自動被 udev 載入,只有在少數情況下才需要加東西。只需加入據您所知缺漏的模組即可。

若要在開機時載入核心模組,在 /etc/modules-load.d/ 底下放入 *.conf 檔案,檔名以模組名稱命名。

# nano /etc/modules-load.d/virtio-net.conf
# 開機時載入 'virtio-net.ko'

virtio-net

*.conf 內包含多個模組,一行只能寫一個模組名稱。這裡有個良好的範例可供參考:VirtualBox Guest Additions

空行、以 #; 開頭的行將會被忽略。

主機名稱

設定您喜歡的主機名稱 (例如 arch):

# echo arch > /etc/hostname
註記: 您不需要編輯 /etc/hosts

設定網路

現在,您需要為全新安裝的環境再設定一次網路。步驟與要求跟上面十分類似,不同的是我們要將網路連線設定為開機時自動執行。

註記:
  • 更多深入的網路設定資訊請參閱設定網路無線網路設定
  • 若您要使用舊的介面命名模式 (如 eth* 和 wlan*),在 /etc/udev/rules.d/80-net-name-slot.rules 建立一個空白檔案,將會遮蓋 /usr/lib/udev/rules.d 底下相同名稱的檔案 (或者不使用空白檔案,建立指向 /dev/null 的軟連結也是可接受的遮蓋方式)

有線網路

動態 IP
使用 dhcpcd

若您只有使用單一固定的有線網路,並不需要一個專門的網路管理服務,只要啟用 dhcpcd 服務即可

# systemctl enable dhcpcd.service
註記: 若無法作用,使用:# systemctl enable dhcpcd@介面名稱.service
使用 netctl

/etc/netctl/examples 複製一份樣本設定檔到 /etc/netctl

# cd /etc/netctl
# cp examples/ethernet-dhcp my_network

根據需求編輯設定檔 (將 Interface 原本填的 eth0 更新為網路配接器的 ID,可執行 ip link 查詢):

# nano my_network

啟用 my_network 設定檔:

# netctl enable my_network
註記: 您會得到一個訊息:"Running in chroot, ignoring request." (在 chroot 下執行,忽略請求)。目前該訊息可以忽略。
使用 netctl-ifplugd
警告: 在明確啟用設定檔 (如 netctl enable <設定檔>) 的同時不能使用這個方式。

或者您也可以使用 netctl-ifplugd,可以有效處理新網路的動態連線:

安裝 ifplugd (netctl-ifplugd 軟體包需要):

# pacman -S ifplugd

接著啟用您需要的介面:

# systemctl enable netctl-ifplugd@<介面>.service
提示: Netctl 也提供 netctl-auto,可和 netctl-ifplugd 配合一同處理有線網路連線設定檔。
固定 IP
使用 netctl 在開機時連線

/etc/netctl/examples 複製一份樣本設定檔至 /etc/netctl

# cd /etc/netctl
# cp examples/ethernet-static my_network

依需求編輯設定檔 (修改 InterfaceAddressGatewayDNS):

# nano my_network
  • 注意 Address 下的 /24 代表 CIDR 表示法:表示 255.255.255.0 子網路遮罩

啟用上面建立的設定檔,在每次開機時啟動:

# netctl enable my_network
使用 systemd 在開機時連線

參閱網路設定#於啟動時通過 systemd 手動連線

無線網路

註記: 若您的無線網路配接器需要韌體 (如上面所述的啟用網路連線小節,以及這裡),請安裝包含該韌體的軟體包。大多時候 linux-firmware 軟體包會包含需要的韌體。但對某些裝置而言,需要的韌體會落在自己的軟體包內。例如:
# pacman -S zd1211-firmware
更多資訊請參閱設定無線網路#安裝驅動/韌體

安裝連上無線網路所需的 iwwpa_supplicant

# pacman -S iw wpa_supplicant
新增無線網路
使用 wifi-menu

安裝 dialog (wifi-menu 軟體包需要):

# pacman -S dialog

完成剩餘的安裝步驟後重啟系統,就可以使用 wifi-menu 介面名稱 連上網路 (介面名稱代表您的無線網路晶片組的介面)。

# wifi-menu 介面名稱
警告: 若您已經離開 chroot 環境,必須在重啟系統之後才能進行本操作。本指令產生的程序將和 chroot 環境外執行的網路程序相牴觸。要不然您可以使用之前提到的模板,只手動調整網路設定檔,就完全不須擔心使用 wifi-menu 的問題。
使用手動 netctl 設定檔

/etc/netctl/examples 複製一份網路設定檔至 /etc/netctl

# cd /etc/netctl
# cp examples/wireless-wpa my-network

依需求編輯設定檔 (修改 InterfaceESSIDKey):

# nano my-network

啟用上面建立的設定檔,在每次開機時開始使用:

# netctl enable my-network
自動連上已知網路
警告: 在明確啟用設定檔 (如 netctl enable <設定檔>) 的同時不能使用這個方式。

安裝 wpa_actiond (netctl-auto 軟體包需要):

# pacman -S wpa_actiond

啟用 netctl-auto 服務,連上已知的網路並有效處理漫遊與斷線問題:

# systemctl enable netctl-auto@介面名稱.service
提示: Netctl 也提供 netctl-ifplugd,可和 netctl-auto 配合一同處理有線網路連線設定檔。

類比式數據機、ISDN 或 PPPoE DSL

xDSL、撥接與 ISDN 連線請參閱以數據機直接連線

建立初始 ramdisk 環境

提示: 多數使用者可以跳過此步,使用 mkinitcpio.conf 所提供的預設值。之前在使用 pacstrap 安裝 linux 軟體包 (Linux 核心) 時,就已經根據 mkinitcpio.conf 產生 initramfs 映像 (在 /boot 資料夾下 )。

若您將系統的根目錄安裝在 USB 碟,或是使用了 RAID/LVM,還是將 /usr 放在額外的分割區內,都需要設定好正確的鉤子

根據您的需求編輯 /etc/mkinitcpio.conf,並重新產生 initramfs 映像:

# mkinitcpio -p linux
註記: Arch 在 QEMU 上的 VPS 安裝 (如,使用 virt-manager),可能需要 mkinitcpio.conf 內的 virtio 模組,才能啟動系統。
# nano /etc/mkinitcpio.conf
MODULES="virtio virtio_blk virtio_pci virtio_net"

設定 root 密碼

設定 root 密碼:

# passwd

安裝並設定開機載入程式

BIOS 主機板

BIOS 系統有數種開機載入程式可以使用,完整清單請參閱開機載入程式。請選擇對您而言最方便的一套。這裡我們舉出兩種作為範例:

  • Syslinux (目前) 限制只能從安裝系統的分割區內載入檔案。設定檔比較淺顯易懂。這裡有一份範例設定檔可供參考。
  • GRUB 的功能較為豐富,且支援更複雜的系統狀況。設定檔與 sh 腳本語言接近,對新手而言較難以手動編寫。建議自動產生一份設定檔。
Syslinux

若您之前選擇讓硬碟使用 GUID 分割表 (GPT),需要安裝 gptfdisk 軟體包才能使 syslinux 正常運作。

# pacman -S gptfdisk

安裝 syslinux 軟體包,並使用 syslinux-install_update 腳本自動安裝檔案 (-i)、設定開機旗標以啟用分割區 (-a),並安裝 MBR 開機碼 (-m):

# pacman -S syslinux
# syslinux-install_update -i -a -m

設定 syslinux.cfg 以指向正確的根目錄分割區。這個步驟相當重要。指向錯誤的分割區將無法啟動 Arch Linux。將下面的 /dev/sda3 改為您的根目錄分割區所在地 (若您依照這個範例分割硬碟,您的根目錄分割區是 /dev/sda1)。fallback 項目也如法炮製。

# nano /boot/syslinux/syslinux.cfg
...
LABEL arch
        ...
        APPEND root=/dev/sda3 rw
        ...

更多設定、使用 Syslinux 的資訊請參閱 Syslinux

GRUB

安裝 grub 軟體包,接著執行 grub-install 安裝開機載入程式:

# pacman -S grub
# grub-install --target=i386-pc --recheck /dev/sda
註記:
  • /dev/sda 改成您安裝 Arch 的硬碟代號。不要加上分割區號碼 (不要使用 sdaX)。
  • 使用 BIOS 主機板與 GPT 分割硬碟的使用者,還需要一個「BIOS 開機分割區」。請參閱 GRUB 頁面的 GPT 特定步驟
  • grub 軟體包會連帶安裝一個 /boot/grub/grub.cfg 樣本,隨後的 grub-* 指令可能無法覆寫它。確認您是否有改變到 grub.cfg,而非將變更寫進 grub.cfg.new 或某些類似檔案。


雖然 grub.cfg 可以手動建立,但建議新手選擇讓程式自動產生:

提示: 若要自動搜尋電腦上安裝的其他作業系統,在執行以下指令前請先安裝 os-prober (pacman -S os-prober)。
# grub-mkconfig -o /boot/grub/grub.cfg

更多設定、使用 GRUB 的資訊請參閱 GRUB

UEFI 主機板

UEFI 系統有數個開機載入程式可以使用。完整清單請參閱開機載入程式。請選擇對您而言最方便的一套。這裡我們舉出兩種作為範例:

  • gummiboot 是一套迷你 UEFI 開機管理員,基本上為 EFISTUB 核心與其他 UEFI 應用程式提供選單。這是建議的 UEFI 開機方案。
  • GRUB 是個更為完整的開機載入程式,若 Gummiboot 發生問題,就使用這個。
註記: 要以 UEFI 開機,硬碟需要以 GPT 方式分割,且必須存在一個 EFI 系統分割區 (512 MiB 或更大,gdisk 類型 EF00,並以 FAT32 格式化)。在以下的範例中假設該分割區掛載為 /boot。若您有從頭照著教學一步一步進行,應該已經完成這些工作了。
Gummiboot

首先安裝 gummiboot 軟體包,接著執行 gummiboot install,將開機管理員安裝至 EFI 系統分割區:

# mount -t efivarfs efivarfs /sys/firmware/efi/efivars              # 若已經掛載則略過
# pacman -S gummiboot
# gummiboot install

您將必須手動建立設定檔案,將 Arch Linux 項目加入 gummiboot 管理員。建立 /boot/loader/entries/arch.conf 並新增以下內容,將 /dev/sdaX 改成您的根目錄分割區,通常為 /dev/sda2

# nano /boot/loader/entries/arch.conf
title          Arch Linux
linux          /vmlinuz-linux
initrd         /initramfs-linux.img
options        root=/dev/sdaX rw

更多設定、使用 gummiboot 的資訊請參閱 gummiboot

GRUB

安裝 grubefibootmgr 軟體包,接著執行 grub-install 安裝開機載入程式:

# mount -t efivarfs efivarfs /sys/firmware/efi/efivars             # 若已經掛載則略過
# pacman -S grub efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck

接下來,雖然 grub.cfg 可以手動建立,但建議新手選擇讓程式自動產生:

提示: 若要自動搜尋電腦上安裝的其他作業系統,在執行以下指令前請先安裝 os-prober。但目前並不肯定 os-prober 能正確偵測 UEFI 的作業系統。
# grub-mkconfig -o /boot/grub/grub.cfg

更多設定、使用 GRUB 的資訊請參閱 GRUB

卸載分割區並重啟系統

離開 chroot 環境:

# exit

所有的分割區都掛載在 /mnt,使用以下指令卸載:

# umount -R /mnt

重新啟動電腦:

# reboot
提示: 請確認是否已移除安裝媒體,以免開機後再度跑回安裝環境。

Template:Beginners' Guide navigation (正體中文)