Beginners' Guide/Installation (正體中文)

From ArchWiki
Revision as of 03:37, 7 March 2013 by Plesry (Talk | contribs)

Jump to: navigation, search
提示: 本文是新手教學的多頁版本。若您希望閱讀完整的指南,請點擊這裡

安裝

到這裡,您已自動以 root 的身份登入 live 環境。現在應該可以看到 shell 的提示輸入畫面。

更改語言

提示: 對多數使用者而言,此為選用步驟,較適合於計劃在設定檔內寫入「非英文」的使用者 (例如:在 Wi-Fi 密碼內使用變音符號、以母語顯示系統錯誤訊息等)。

預設的鍵盤布局為 us(美式鍵盤)。(譯註:台灣使用的鍵盤布局多為美式,採用預設值即可)

如果您使用的是非美式的鍵盤布局,請執行:

# loadkeys [布局]

...[布局]可以是 fr, uk, be-latin1 等鍵盤布局。 完整的鍵盤布局清單請參閱這裡

由於多數語言使用的字母跟英文字母有所不同,因此字型也需要更改, 否則某些非英文字母會顯示為白框或其他無法辨識的符號。注意,字型名稱有分大小寫,請確實照名稱鍵入:

# setfont Lat2-Terminus16

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

使用 Template:Keypress 離開編輯,當提示需儲存變更時按 Template:KeypressTemplate:Keypress,以相同的設定檔名儲存。

# nano /etc/locale.gen
en_US.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
# locale-gen
# export LANG=zh_TW.UTF-8
註記: [譯註] 以上舉例僅供示範。實際上使用上述設置將發生無法正常顯示中文的問題,建議安裝程序採用原英文語系即可。

另外,Template:Keypress 可啟用/停用鍵盤布局。

啟用網路連線

警告: udev 不再按照以往 wlanX、ethX 的方式分配網路介面的名稱。

若您是從其他發行版本轉來,或是準備重灌的舊 Arch 玩家,先不要急著認為無線裝置就是 wlan0、有線裝置就是 eth0。

記得用 ip 指令確認網路介面的名稱!

拋棄以往介面名稱單純遞增的作法 (wlan0, wlan1, ...), 從 systemd-197 釋出起,udev 將以可預期、穩定為前提分配介面名稱。 這些介面名稱保證不受重新開機的影響,解決了之前網路介面名稱不可靠的問題。 更多資訊請參閱 http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames

安裝程序在開機時會自動啟動 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 位址的有線網路連線,請依照以下的步驟。

首先確認網路卡的介面名稱。

# 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" 開頭的名稱。 您也可以用 iwconfig 檢查哪些介面不是無線網路介面:

# iwconfig
enp2s0f0  no wireless extensions.
wlp3s0    IEEE 802.11bgn  ESSID:"NETGEAR97"  
          Mode:Managed  Frequency:2.427 GHz  Access Point: 2C:B0:5D:9C:72:BF   
          Bit Rate=65 Mb/s   Tx-Power=16 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=61/70  Signal level=-49 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:430   Missed beacon:0
lo        no wireless extensions.

enp2s0f0 和 lo (虛擬迴路裝置) 的結果都是 "no wireless extensions",代表它們都不是無線網路設備。 顯然 enp2s0f0 就是我們要的有線網路介面。

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

  • 固定 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,更改成您喜好的 DNS IP 位置,以及本機域名:

# nano /etc/resolv.conf
nameserver 168.95.192.1 # Hinet DNS
nameserver 8.8.8.8      # Google DNS
search example.com
註記: 目前您最多只能加入 3 行 nameserver 字串。

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

無線網路

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

若您是從其他發行版本轉來的使用者,或是最近重新安裝 Arch Linux 的玩家,可能對「第一個無線網路裝置不叫 "wlan0"」感到驚訝。事實上,由於命名規定的改變,已經沒有任何裝置會自動冠上 "wlan" 加次序後綴了。請別著急,只要執行 iwconfig 就能知道您的無線裝置名稱。

目前安裝媒介的 Live 環境內已經可以使用無線網路的驅動與程式。對無線網路硬體的充分知識,將會是設定成功的關鍵之一。注意以下在安裝過程中執行的速成步驟,只會在安裝媒介的 Live 環境初始化並使用您的無線硬體。這些步驟 (或其他無線網路管理的部份) 等到啟動安裝好的系統之後,必須重新進行一遍

另外也請注意,若安裝過程中並不需要連至無線網路,這裡的步驟可以省略;安裝結束之後,您隨時都能啟用無線網路功能。

註記: 以下的範例中,介面名稱為 wlp3s0、ESSID 為 linksys。記得將這些值換成您的裝置實際值。

基本步驟如下:

  • 偵測無線網路介面:
# lspci | grep -i net

若使用 USB 配接器:

# lsusb
  • 確認 udev 已經將驅動程式載入,且已在 iwconfig 建立可用的無線網路核心介面:
註記: 若您沒有看到相似的輸出,代表尚未載入無線網路驅動,您必須手動將驅動載入。更細節的資訊請參閱無線網路設定
# iwconfig
enp2s0f0  no wireless extensions.
wlp3s0    IEEE 802.11bgn  ESSID:"NETGEAR97"  
          Mode:Managed  Frequency:2.427 GHz  Access Point: 2C:B0:5D:9C:72:BF   
          Bit Rate=65 Mb/s   Tx-Power=16 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=61/70  Signal level=-49 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:430   Missed beacon:0
lo        no wireless extensions.

本範例中,wlp3s0 為可用的無線網路介面。

  • 啟用介面:
# ip link set wlp3s0 up

有一小部分的無線網路晶片組除了相對應的驅動以外還需要韌體。若您的無線網路晶片組需要韌體。在啟用介面時您可能會接受到以下錯誤:

# ip link set wlp3s0 up
SIOCSIFFLAGS: No such file or directory

若不確定的話,呼叫 dmesg 察看核心的日誌,看有沒有無線網路晶片組提出的韌體請求。

本範例為 Intel 晶片組的相關輸出,在系統啟動時向核心請求韌體:

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

若沒有任何類似的輸出,可能代表系統的無線網路晶片組不需要韌體。

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

接下來使用 netcfgwifi-menu 連接網路:

# wifi-menu wlp3s0
警告: 在這個時候執行 netcfg 的 wifi-menu,若沒有附加任何參數,預設會尋找 "wlan0"。請將 wifi-menu 的參數設為您的介面名稱。

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

xDSL (PPPoE)、類比式數據機或 ISDN

如果您有一台橋接式的路由器,執行:

# pppoe-setup

使用以上設定值連線到您的 ISP:

# pppoe-start

您可能也需要調整 resolv.conf

# echo nameserver 8.8.8.8 > /etc/resolv.conf

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

使用代理伺服器

若您使用代理伺服器上網,必須匯出 http_proxyftp_proxy 這兩個環境變數。 更多資訊請參閱 Proxy settings

準備儲存裝置

警告: 分割磁區將破壞資料。請小心執行,並強烈建議在繼續前備份任何重要資料。

對磁區分割不完全熟悉的新手可以使用圖形化的分割工具。例如以 "Live" CD 提供GParted。GParted 也包含在大多數 Linux 發行版本的 Live CD 內,例如 UbuntuLinux Mint。在重新啟動以前,磁碟必須先進行分割,並格式化為檔案系統

安裝後可隨時建立一份 swap 檔案,因此現在並不需要建立 swap 分割區。若您希望現在設定一個 swap 分割區,請參閱 Swap (不過,調整檔案大小遠比調整分割區大小容易)。

若您已經完成,請接續至掛載分割區

否則請看以下的範例。

範例

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

UEFI 開機的注意事項:
  • 若您使用的是 UEFI 主機板,需要建立一個額外的 UEFI 系統分割區
  • 使用 UEFI 開機建議使用 GPT 分割,因為某些 UEFI 韌體不支持 UEFI-MBR 開機。
GPT 開機的注意事項:
  • 若您沒有要使用與 Windows 的雙重開機,建議改用 GPT 而非 MBR。參閱 GPT 了解使用它的好處。
  • 若您使用的是 BIOS 主機板 (或打算使用 BIOS 相容模式開機),且打算在以 GPT 分割的磁碟上設定 GRUB 的話,必須建立一個 2 MiB 的 "BIOS 開機分割區"。Syslinux 的使用者不需要這項額外措施。
  • 某些 BIOS 系統可能會有 GPT 的相關問題。更多資訊與可能的解決方案,請參閱 http://mjg59.dreamwidth.org/8035.html 以及 http://rodsbooks.com/gdisk/bios.html
註記: 若您要將 Arch 安裝到 USB 隨身碟,請參閱將 Arch Linux 安裝到 USB 碟

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

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

MBR cfdisk /dev/sda 根目錄區 (/):

家目錄區 (/home):

GPT cgdisk /dev/sda 根目錄區 (/):
家目錄區 (/home):

以下為選擇 MBR 的分割範例:

Name    Flags     Part Type    FS Type          [Label]       Size (MB)
-----------------------------------------------------------------------
sda1    Boot       Primary     Linux                             15360
sda2               Primary     Linux                             133000*

以下為選擇 GPT 的分割範例:

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

繼續之前請再次檢查,確認分割區的配置和大小無誤。

若打算從頭做起,直接選擇 Quit (或按 Template:Keypress) 離開,所有變更都不會儲存。接著重新啟動 cfdisk (或 cgdisk)。

一切都打理好以後,選擇 Write (或按 Template:Keypress) 收尾,將分割區表寫入磁碟裡面。輸入 "yes" 並選擇 Quit (或按 Template:Keypress) 離開。

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

警告: 再三檢查它們是否為您要格式化的分割區。
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda2

若您已經準備一個 swap 分割區 (代碼 82),別忘了將它格式化後啟用:

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

掛載分割區

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

顯示目前的分割區配置:

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

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

# mount /dev/sda1 /mnt

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

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

UEFI 主機版的使用者,請掛載 UEFI 分割區:

# mkdir -p /mnt/boot/efi
# mount /dev/sdaX /mnt/boot/efi

選擇鏡像站

安裝之前先編輯 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
...

您可以將選擇的鏡像站設定為唯一可用的鏡像站,把其他鏡像站去除 (使用 Template:Keypress),但建議保留其他兩、三個站點,以防第一個站點突然離線無法使用。

提示:
  • 使用鏡像站清單產生器獲取鏡像站的更新清單。HTTP 鏡像站因為 keepalive 的關係,會比 FTP 鏡像站快速。在 FTP 協定下,pacman 每下載一個套件就需要送一次訊號,導致短暫停頓。其他產生鏡像站清單的方式請參閱分類鏡像站點Reflector
  • Arch Linux 鏡像站狀態報告了鏡像站點的各種相關資料,如網路問題、資料收集問題、上一次同步時間等等。
註記:
  • 之後每當您更改了鏡像站的清單,別忘了使用 pacman -Syy 讓 pacman 強制重整套件清單。這是可避免無端困擾的好惜關。更多資訊請參閱鏡像站點
  • 若您使用的安裝媒介已釋出許久,其鏡像站清單可能已經過期,更新 Arch Linux 時可能會導致問題 (詳見 FS#22510)。建議如上面所述,趕快取得最新的鏡像站資訊。
  • Arch Linux 論壇上出現了阻擋 pacman 更新/與軟體倉庫同步的網路問題回報 (詳見 [1] 以及 [2])。若您是原生安裝 Arch Linux,用其他代替品取代 pacman 預設的檔案下載器可以解決問題 (更多資訊請參閱增進 Pacman 表現)。若您在 VirtualBox 安裝 Arch Linux,在機器屬性內使用 "Host interface" 取代 "NAT" 也可以解決問題。

安裝基本系統

我們將使用 pacstrap 腳本安裝基本系統。

若您想直接安裝 basebase-devel 組合內所有套件,可將 -i 省略以跳過提示。

# pacstrap -i /mnt base base-devel
註記: 如果 pacman 在驗證套件時失敗,請使用 cal 檢查系統時間。假如系統時間無效 (如老早之前的 2010 年),簽署金鑰會被認定為過期(或無效),套件的簽署檢查失敗,安裝程序就會被中斷。請確保系統時間已經手動調整或是用 ntp 校正完畢,再重新執行 pacstrap 指令。更多校正系統時間的資訊請參閱 Time
註記: 若 pacman 在 pacstrap 安裝階段報告了無效的簽署 (error: failed to commit transaction (invalid or corrupted package)),請執行下面的指令。
# pacman-key --init && pacman-key --populate archlinux 
  • base:[core] 來源的軟體套件,提供最小限度的基本環境。
  • base-devel:[core] 來源的額外工具,如 makeautomake。大部分新手都應該要安裝它,之後若要擴充新系統時就可以派上用場。若之後要從 AUR 安裝軟體,base-devel 套件組也是必須的。

這樣就完成一個基本的 Arch 系統了。其他套件之後可以使用 pacman 安裝。

產生 fstab

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

註記: 當 genfstab 正在執行,或是之後的安裝過程中碰到任何錯誤的話,請不要再次執行 genfstab;請直接編輯 fstab 檔案。
# genfstab -U -p /mnt | sed 's/rw,relatime,data=ordered/defaults,relatime/' >> /mnt/etc/fstab
# nano /mnt/etc/fstab
註記: 若您下載的安裝映像是在 2013 元月之後釋出的,請改用以下指令:
# genfstab -U -p /mnt >> /mnt/etc/fstab
# nano /mnt/etc/fstab


警告: fstab 檔案在產生之後一定要檢查。若您之前建立了 EFI 系統分割區,genfstab 會將不正確的選項加入您的 EFI 系統分割區。事實上這將會阻擋您的電腦從該裝置開機,因此您需要將 EFI 分割區中 noatime 以外的所有選項都移除掉。置於其他有使用到它的分割區,請確認已經將 "codepage=cp437" 替換為 "codepage=437",否則下次重啟系統後,任何有這個選項的掛載將會失敗,systemd 停止並進入恢復模式。這個問題應該會在 linux 3.8 時修復。

另外一些考量如下:

  • 只有根目錄 (/) 分割區的最後一欄需要填 1。其他分割區則應該為 20 (參閱fstab#欄位定義)。

Chroot 與設定基本系統

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

# arch-chroot /mnt
註記: 使用 arch-chroot /mnt /bin/bash 改以 bash shell 進入。

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

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

本地化

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

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

  • 預設 locale.gen 檔案為空 (所有選項皆被註解),請將想要的語系取消註解 (移除最前面的 #)。除了英文(美國),您也可以將需要的語系取消註解,只要選擇 UTF-8 編碼即可:
# nano /etc/locale.gen
en_US.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
# locale-gen

這個指令在每次 glibc 升級時都會執行,產生所有 /etc/locale.gen 內指定的任何語系。

  • locale.conf 檔案預設並不存在。只要設定 LANG 就夠了。其他變數將會以此當作預設值使用。
# echo LANG=en_US.UTF-8 > /etc/locale.conf
# export LANG=en_US.UTF-8
註記: 若您要將系統設定為其他語言,以上的指令將會變成 (以中文(台灣)舉例):
# echo LANG=zh_TW.UTF-8 > /etc/locale.conf
# export LANG=zh_TW.UTF-8

要使用其他 LC_* 變數,請先執行 locale 檢查可用選項。更進階的範例請參閱這裡

警告: LC_ALL 變數會蓋過其他變數,強烈不建議使用。

終端機字型與鍵盤布局

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

# loadkeys de-latin1
# setfont Lat2-Terminus16

編輯 vconsole.conf 使設定在重啟系統後依然生效:

# nano /etc/vconsole.conf
KEYMAP=de-latin1
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

若要透過網路同步您的 "UTC" 時間,請參閱 NTPd.

  • localtime (不建議;Windows 預設使用)
警告: 使用 localtime 可能引發數個已知且無法修復的 bug。但目前沒有放棄 localtime 支援的計劃。
# hwclock --systohc --localtime

若您有使用 (或打算) 與 Windows 的雙重開機:

  • 建議:將 Arch Linux 和 Windows 設定為使用 UTC。Windows 需要加入一個修正註冊碼。另外確保停用 Windows 的線上同步時間功能,否則硬體時鐘又會回復成 localtime 的預設值。
  • 不建議:將 Arch Linux 設定為 localtime,並取消任何時間服務如 NTPd。硬體時鐘將交由 Windows 處理,若您的所在地區有實施日光節約時間,要記得每年最少要啟動 Windows 兩次 (春季與秋季)。要是長久未打開 Windows,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 我的域名 > /etc/hostname
註記: 您不需要編輯 /etc/hosts

設定網路

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

註記: 請參閱設定網路無線網路設定,了解更多深入的網路設定資訊。

有線網路

動態 IP
警告: 目前所知在安裝 ISO 內出現一個 bug:安裝期間您的介面名稱會跟之後重啟系統後的名稱不同。詳細的資料請參閱 Bug #33923

在此項 bug 被修復以前,您可以使用以下的腳本檔,找出您的介面在重啟系統後的名稱:

 for i in /sys/class/net/*; do
   echo "==$i"
   udevadm test-builtin net_id "$i";
   echo
 done 2>/dev/null

若您只有使用單一固定的有線網路,並不需要一個專門的網路管理服務,只要啟用 dhcpcd 服務即可。將以下的 <介面> 改為您的有線網路介面:

# systemctl enable dhcpcd@<介面>.service
# systemctl start dhcpcd

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

安裝 net-auto-wired 所需的 ifplugd

# pacman -S ifplugd

編輯 /etc/conf.d/netcfg,修改網路介面名稱 (目前已不太可能是 eth0)。您可以從上面的警告資訊中了解命名規則。

nano /etc/conf.d/netcfg
WIRED_INTERFACE="<interface>"

啟用 net-auto-wired 服務。

# systemctl enable net-auto-wired.service
# systemctl start dhcpcd
固定 IP

/etc/network.d/examples 複製一份樣本設定檔至 /etc/network.d

# cd /etc/network.d
# cp examples/ethernet-static .

依需求編輯設定檔 (修改 INTERFACE, ADDR, GATEWAYDNS):

# nano ethernet-static

編輯 /etc/conf.d/netcfg,在 NETWORKS 這一行加入新的網路設定檔:

nano /etc/conf.d/netcfg
NETWORKS=(ethernet-static)

啟用 netcfg 服務:

# systemctl enable netcfg.service

無線網路

您需要安裝額外的程式,才能用 netcfg 設定無線網路,並管理其設定資料。

NetworkManagerWicd 也是可選用的網路管理程式。

  • 安裝需要的套件:
# pacman -S wireless_tools wpa_supplicant wpa_actiond dialog

若您的無線網路配接器需要韌體 (如上面所述的啟用網路連線小節,以及這裡),請安裝包含該韌體的套件。例如:

# pacman -S zd1211-firmware
  • 完成剩下的安裝程序並重啟系統後,就可以使用 wifi-menu <介面> 連上網路 (<介面>代表您的無線網路介面),這會在 /etc/network.d 下產生一個以 SSID 命名的設定檔。/etc/network.d/examples/ 下有可用的模板供您手動調整設定。
# wifi-menu <介面>
警告: 若您在進入 chroot 環境前使用 wifi-menu,必須先重啟系統才能進行本操作。本指令產生的程序將和 chroot 環境外執行的網路程序相牴觸。要不然您可以使用之前提到的模板,只手動調整網路設定檔,就完全不須擔心使用 wifi-menu 的問題。
  • 啟用 net-auto-wireless 服務,系統將連線到已知的網路,且能夠妥善處理漫遊與斷網的情形:
# systemctl enable net-auto-wireless.service
註記: Netcfg 也提供了 net-auto-wired,可以跟 net-auto-wireless 搭配使用。
  • 確認 /etc/conf.d/netcfg 內已經設定正確的無線介面 (如 wlp3s0):
# nano /etc/conf.d/netcfg
WIRELESS_INTERFACE="wlp3s0"

您也可以使用 /etc/conf.d/netcfgAUTO_PROFILES 變數,定義一個自動連線的網路清單。若未設定 AUTO_PROFILES,將嘗試所有已知的無線網路。

xDSL (PPPoE)、類比式數據機或 ISDN

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

設定 pacman

Pacman 是 Arch Linux 下的套件管理系統 (package manager)。我們強烈建議 Arch 使用者學習、研究如何使用 pacman。您可以閱讀 man pacman、看看 pacmanPacman 簡介。若要了解 pacman 與其他知名套件管理程式的比較,請參閱 Pacman Rosetta 這篇文章。

pacman.conf 編輯需要的軟體倉庫與 pacman 選項:

# nano /etc/pacman.conf

對大多數人來說,選擇 [core][extra][community] 就夠了。

若您安裝的是 Arch Linux x86_64 版,建議您再啟用 [multilib] 倉庫 (以便執行 32 與 64 位元的程式):

註記: 在選擇軟體倉庫時,確定將 [倉庫名稱] 標題欄和底下的 URL 欄給取消註解。不合法的倉庫選擇將會被略過!這是一個很常見的錯誤。以下是一個選取 multilib 倉庫的正確範例。
[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

接下來您必須更新套件清單。執行 pacman 並加上 -Sy 選項。若沒有這麼作,下次執行 pacman 時將會出現以下錯誤:"warning: database file for 'multilib' does not exist" (警告:'multilib' 資料庫檔案不存在)。

更多資訊請參閱官方倉庫,裡頭包含了各種軟體倉庫的詳細資訊。

若您需要的軟體無法直接由 pacman 取得,請參閱 Arch 使用者倉庫 (AUR)

建立初始 ramdisk 環境

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

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

根據您的需求編輯 /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
警告: Linux 是多人作業系統。使用者不應該使用 root 帳戶執行日常工作,這種習慣十分不好,且容易發生危險。建議只有在執行系統管理操作時才使用 root 帳號。

接著新增一個正常的使用者帳號。以下範例新增了 archie 這位使用者。

# useradd -m -g users -G wheel -s /bin/bash archie
# passwd archie

若您要取消操作,使用 userdel。加上 -r 選項將使用者的家目錄以及其內容通通移除,包括該使用者的設定值 (就是前面有「一點」的檔案)。

# userdel -r archie

更多資訊請閱讀使用者與群組

安裝並設定開機載入程式

BIOS 主機板

BIOS 系統可以使用三種開機載入程式:Syslinux、GRUB 以及 LILO,請選擇對您而言最方便的一套。以下將解釋 Syslinux 與 GRUB 的設定方式。

  • Syslinux (目前)限制只能從安裝系統的分割區內載入檔案。設定檔比較淺顯易懂。這裡有一份範例設定檔可供參考。
  • GRUB 的功能較為豐富,且支援更複雜的系統狀況。設定檔與腳本語言接近,對新手而言較難以手動編寫。建議自動產生一份設定檔。
註記: 某些 BIOS 系統可能會出現 GPT 相關的問題。更多資訊與可能的解決辦法,請參閱 http://mjg59.dreamwidth.org/8035.htmlhttp://rodsbooks.com/gdisk/bios.html
Syslinux

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

註記: 若您使用 GPT 方式分割磁碟,請安裝 gptfdiskpacman -S gptfdisk 套件,其中包含了可指定 GPT 特定開機旗標的 sgdisk
# pacman -S syslinux
# syslinux-install_update -i -a -m

設定 syslinux.cfg 以指向正確的根目錄分割區。這個步驟相當重要。若指向錯誤的分割區,就無法啟動 Arch Linux。將 /dev/sda3 改乘您的根目錄分割區所在 (以這個範例而言是 sda1)。fallback 項目也要作一樣的修改。

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

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

GRUB

安裝 grub-bios 套件並執行 grub-install

註記: /dev/sda 更改為安裝 Arch 的磁碟。不要加上分割區編號 (不要使用 sdaX)。
註記: 若您使用 BIOS 主機板搭配 GPT 分割磁碟,GRUB 將需要 2 MiB 的 BIOS 啟動分割區
# pacman -S grub-bios
# grub-install --target=i386-pc --recheck /dev/sda
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

接下來,建議初學者自動產生一份 grub.cfg 文件 (手動建立一份也完全沒問題):

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

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

UEFI 主機板

若您使用 UEFI 開機,磁碟需要以 GPT 方式分割,且需要一個 UEFI 系統分割區 (512 MiB 或更高、FAT32 格式,輸入 EF00) 並掛載為 /boot/efi。若您一開始有照著本教學進行安裝的話,應該已經將這些步驟做完了。

雖然有其他可用的 UEFI 開機載入程式,我們建議使用 EFISTUB。以下為設定 EFISTUB 和 GRUB 的步驟。

註記: Syslinux 尚未支援 UEFI。
EFISTUB

Linux 核心使用 EFISTUB 作為自己的開機載入程式。此為開發者建議的 UEFI 開機方法,比起 grub-efi-x86_64 也較為簡單。以下的步驟設定了 rEFInd (rEFIt 的分支),為 EFISTUB 核心提供選單,以便可啟動其他 UEFI 開機載入程式。您也可以不用 rEFInd,改使用 gummiboot。rEFInd 和 gummiboot 在雙重開機的情況下都可以偵測到 Windows 的 UEFI 開機載入程式。

1. 以 UEFI 模式開機,在進入 chroot 環境前載入 efivars 核心:

# modprobe efivars      # 進入 chroot 環境前

2. 掛載 /mnt/boot/efi 下的 UEFISYS 分割區,chroot 並依下面指示複製核心與 initramfs 檔案

  • 建立 /boot/efi/EFI/arch/ 目錄。
  • /boot/vmlinuz-linux 複製到 /boot/efi/EFI/arch/vmlinuz-arch.efi.efi 副檔名對某些 UEFI 韌體來說非常重要,沒有這個副檔名就拒絕啟動檔案。重要提醒:該檔案的名稱為 vmlinuz,不是 vmlinux
  • /boot/initramfs-linux.img 複製到 /boot/efi/EFI/arch/initramfs-arch.img
  • /boot/initramfs-linux-fallback.img 複製到 /boot/efi/EFI/arch/initramfs-arch-fallback.img

在每次 /boot 下面的核心與 initramfs 檔案更新時,必須也更新 /boot/efi/EFI/arch 下的檔案。您可以使用 systemd使用 incron (非 systemd 安裝者),來自動執行這些動作。

3. 在這份教學內您設定了一個開機載入程式 GUI,叫作 rEFInd。其他開機載入程式可以在 UEFI 開機載入程式#啟動 EFISTUB 找到。 根據 rEFInd 開機載入程式的安裝建議,安裝以下套件:

# pacman -S refind-efi efibootmgr

4. 將 rEFInd 安裝到 UEFISYS 分割區內 (以下為 UEFI 開機載入程式#使用 rEFInd 的總結):

# mkdir -p /boot/efi/EFI/refind
# cp /usr/lib/refind/refind_x64.efi /boot/efi/EFI/refind/refind_x64.efi
# cp /usr/lib/refind/config/refind.conf /boot/efi/EFI/refind/refind.conf
# cp -r /usr/share/refind/icons /boot/efi/EFI/refind/icons

5. 建立 refind_linux.conf 檔案,加上要給 rEFInd 使用的核心參數:

# nano /boot/efi/EFI/arch/refind_linux.conf
"Boot to X"          "root=/dev/sdaX ro rootfstype=ext4 systemd.unit=graphical.target"
"Boot to console"    "root=/dev/sdaX ro rootfstype=ext4 systemd.unit=multi-user.target"
註記: refind_linux.conf 已經複製到 /boot/efi/EFI/arch/,該目錄就是 initramfs 和核心檔案在步驟 2 時複製到的地方。
註記: refind_linux.conf 下的 sdaX 代表您的根目錄檔案系統,而非您的 boot 分割區。

6. 使用 efibootmgr 將 rEFInd 加入 UEFI 開機選單。

警告: 在 Apple Macs 使用 efibootmgr 可能會破壞韌體,最糟可能需要重燒主機板上的 ROM。Macs 的玩家請使用 mactel-bootAUR,或是「保佑」Mac OS X 不要出任何差錯。
# efibootmgr -c -g -d /dev/sdX -p Y -w -L "rEFInd" -l '\EFI\refind\refind_x64.efi'
註記: 上面的指令中,X 和 Y 分別代表「磁碟」和 「UEFISYS 分割區」。舉例來搓,若為 /dev/sdc5:X 就是 "c",Y 就是 "5"。

7. (選用) 建立一個 fallback 以防 efibootmgr 建立的開機選項無法工作。照以下指令將 refind_x64.efi 複製到 /boot/efi/EFI/boot/bootx64.efi

# cp -r /boot/efi/EFI/refind/* /boot/efi/EFI/boot/
# mv /boot/efi/EFI/boot/refind_x64.efi /boot/efi/EFI/boot/bootx64.efi
GRUB
註記: 若您的系統為 32 位元 EFI (像是 2008 年出產的 Mac),請改安裝 grub-efi-i386,並使用 --target=i386-efi 選項。
# pacman -S grub-efi-x86_64 efibootmgr
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

下個指令將會在 UEFI 開機選單內建立 GRUB 選項。然而在 grub-efi-x86_64 版本 2.00,grub-install 會嘗試建立選項,可能就不需要執行 efibootmgr。更多資訊請參閱 UEFI#efibootmgr

# efibootmgr -c -g -d /dev/sdX -p Y -w -L "Arch Linux (GRUB)" -l '\EFI\arch_grub\grubx64.efi'

接下來,建議初學者自動產生一份 grub.cfg 文件 (手動建立一份也完全沒問題):

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

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

卸載分割區並重啟系統

離開 chroot 環境:

# exit

使用以下的指令,將掛載在 /mnt 的分割區卸載下來:

# umount /mnt/{boot,home,}

重新啟動電腦:

# reboot
提示: 請確認已將安裝裝置 (光碟、USB 碟) 移除,以免開機之後跑回安裝畫面。