Beginners' Guide/Installation (正體中文)
Contents
安裝
您現在可以看到 Shell 的提示輸入畫面,自動以 root 的身分登入。 終端機下若需要編輯文字檔案,建議使用 nano。若不熟悉這個編輯器,參閱 nano#nano 用法。
更改語言
預設的鍵盤布局為 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
(譯註:以上舉例僅供示範。在安裝期間設定中文語系將發生無法正常顯示中文的問題,建議忽略此步驟。)
啟用網路連線
開機過程中會自動啟動 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
到這裡,您的網路連線應該可以使用了。若還是不行,請參閱更詳細的網路設定。
無線網路
若您在安裝過程中需要無線網路連線 (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
若沒有任何輸出,或許系統的無線網路晶片組並不需要韌體。
接下來使用 netctl 的 wifi-menu
連上網路:
# wifi-menu wlp3s0
到這裡,您的網路連線應該可以使用了。沒有的話,請參閱更詳細的無線網路設定頁面。
您也可以使用 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_proxy
和 ftp_proxy
這兩個環境變數。更多資訊請參閱代理伺服器設定。
準備儲存裝置
選擇分割表類型
您需要在 GUID 分割表 (GPT) 和主開機記錄 (MBR) 中擇一使用。全新安裝的場合下建議使用比較先進的 GPT。
- 若您要設定一台與 Windows 雙重開機的系統,必須考慮這個問題:硬碟分割#在 GPT 與 MBR 間選擇。
- 建議在 UEFI 開機的環境下使用 GPT,某些 UEFI 韌體不支援 UEFI-MBR 開機。
- 某些 BIOS 系統可能有採用 GPT 的問題。更多資訊與可能解決方案請參閱 http://mjg59.dreamwidth.org/8035.html 和 http://rodsbooks.com/gdisk/bios.html 。
分割工具
完完全全的新手可以先嘗試使用圖形化的分割工具。例如以 「Live」 CD 提供的 GParted。GParted 也包含在大多數 Linux 發行版本的 Live CD 內,例如 Ubuntu 跟 Linux Mint。硬碟必須先進行分割,接著格式化為檔案系統。
Gparted 比較容易使用,但若您只是想要在新硬碟上建立幾個分割區,只要使用安裝媒體中包含的 fdisk 相關軟體之一即可快速完成工作。下面的章節會提供 gdisk 和 fdisk 的簡短使用步驟。
分割計畫
您可以決定一顆硬碟要分多少塊分割區,每個分割區所歸屬的系統目錄為何。從分割區到目錄的映射 (通常被稱為「掛載點」) 叫做分割計畫。最簡單也不草率的方式是只建立一大塊 /
分割區。另一個常見的選擇是分一塊 /
和一塊 /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 發行版本,也無法同時在可靠的操作下達到完全穩定的狀態。
若您已經建立好分割區,請接續至建立檔案系統。
否則請看以下的範例。
範例
Arch Linux 安裝媒介包含了以下的硬碟分割工具:fdisk
, gdisk
, cfdisk
, cgdisk
, parted
。
以下的範例系統將包含 15 GB 的根目錄區,以及占用其他空間的家目錄區。請從 MBR 或 GPT 任選一項進行,不要同時選擇它們!
再次提醒,使用者可自行任意決定如何分割硬碟。本範例僅為讀者提供示範而已。也請參閱硬碟分割。
使用 cgdisk 建立 GPT 分割區
# cgdisk /dev/sda
- 根目錄:
- 選擇 New (或按
N
) –Enter
默認第一個磁區 (2048) – 輸入15G
–Enter
默認預設十六進位代碼 (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 分割區
啟動 fdisk:
# fdisk /dev/sda
建立分割表:
-
Command (m for help):
輸入o
並按Enter
接著建立第一個分割區:
-
Command (m for help):
輸入n
並按Enter
- 分割區類型:
Select (default p):
按Enter
-
Partition number (1-4, default 1):
按Enter
-
First sector (2048-209715199, default 2048):
按Enter
-
Last sector, +sectors or +size{K,M,G} (2048-209715199....., default 209715199):
輸入+15G
並按Enter
接著建立第二個分割區:
-
Command (m for help):
輸入n
並按Enter
- 分割區類型:
Select (default p):
按Enter
-
Partition number (1-4, default 2):
按Enter
-
First sector (31459328-209715199, default 31459328):
按Enter
-
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 檔案系統:
# 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 ...
您可以選定一個鏡像站為唯一可用的鏡像站,並刪掉其他行。不過,建議保留其他兩、三個站點,以防第一個站點掛掉導致無法更新。
安裝基礎系統
我們將使用 pacstrap 腳本安裝基礎系統。省略 -i
選項可跳過提示,直接安裝 base 群組內所有軟體包。
# pacstrap -i /mnt base
這樣就完成一個基本的 Arch 系統了。其他軟體包之後可以使用 Pacman 安裝。
產生 fstab
用以下指令產生 fstab 檔案。我們將使用 UUID,因為它有一定的優點 (請參閱 fstab#偵測檔案系統)。若您想改用硬碟標籤,將 -U
選項改為 -L
。
# genfstab -U -p /mnt >> /mnt/etc/fstab # nano /mnt/etc/fstab
另外一些考量如下:
- 最後一個欄位決定了系統啟動時檢查分割區的順序:
1
給需要最先檢查的 (非btrfs
) 根目錄分割區;2
則給其他在啟動時要檢查的分割區;0
代表「不檢查」(參閱 fstab#欄位定義)。 - 所有 btrfs 分割區的該欄位應該填
0
。正常情況下,您也會希望自己的置換 (swap) 分割區填0
。
Chroot 並設定基礎系統
接下來,chroot 進入全新安裝的系統:
# arch-chroot /mnt /bin/bash
這個階段將為您的 Arch Linux 基礎系統設定主要的設置檔。若您想要改變預設值,可以編輯或建立 (若檔案不存在) 這些檔案。
為了確保系統設置正確,請遵循以下步驟,並盡可能瞭解其中用處。
本地化
glibc 與其他支援本地化的程式/函式庫會使用本地化設定,來渲染文字、顯示正確的地區貨幣、時間與日期格式、字母順序以及其他本地標準。
在這裡需要編輯兩個檔案:locale.gen
和 locale.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
為您選擇的語系建立 /etc/locale.conf
檔案:
# echo LANG=en_US.UTF-8 > /etc/locale.conf
將您選擇的語系匯出:
# export LANG=en_US.UTF-8
終端機字型與鍵盤布局
若您在安裝過程的一開始設定過鍵盤布局的話,由於我們已經換到新安裝的系統環境,請現在再載入一遍。例如:
# 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 (建議使用)
-
# hwclock --systohc --utc
- localtime (不建議;Windows 預設使用)
-
# hwclock --systohc --localtime
核心模組
若要在開機時載入核心模組,在 /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
設定網路
現在,您需要為全新安裝的環境再設定一次網路。步驟與要求跟上面十分類似,不同的是我們要將網路連線設定為開機時自動執行。
有線網路
動態 IP
- 使用 dhcpcd
若您只有使用單一固定的有線網路,並不需要一個專門的網路管理服務,只要啟用 dhcpcd
服務即可
# 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
- 使用 netctl-ifplugd
或者您也可以使用 netctl-ifplugd
,可以有效處理新網路的動態連線:
安裝 ifplugd (netctl-ifplugd
軟體包需要):
# pacman -S ifplugd
接著啟用您需要的介面:
# systemctl enable netctl-ifplugd@<介面>.service
固定 IP
- 使用 netctl 在開機時連線
從 /etc/netctl/examples
複製一份樣本設定檔至 /etc/netctl
:
# cd /etc/netctl # cp examples/ethernet-static my_network
依需求編輯設定檔 (修改 Interface
、Address
、Gateway
和 DNS
):
# nano my_network
- 注意
Address
下的/24
代表 CIDR 表示法:表示255.255.255.0
子網路遮罩
啟用上面建立的設定檔,在每次開機時啟動:
# netctl enable my_network
- 使用 systemd 在開機時連線
無線網路
安裝連上無線網路所需的 iw 和 wpa_supplicant:
# pacman -S iw wpa_supplicant
新增無線網路
- 使用 wifi-menu
安裝 dialog (wifi-menu
軟體包需要):
# pacman -S dialog
完成剩餘的安裝步驟後重啟系統,就可以使用 wifi-menu 介面名稱
連上網路 (介面名稱
代表您的無線網路晶片組的介面)。
# wifi-menu 介面名稱
- 使用手動 netctl 設定檔
從 /etc/netctl/examples
複製一份網路設定檔至 /etc/netctl
:
# cd /etc/netctl # cp examples/wireless-wpa my-network
依需求編輯設定檔 (修改 Interface
、ESSID
和 Key
):
# nano my-network
啟用上面建立的設定檔,在每次開機時開始使用:
# netctl enable my-network
自動連上已知網路
安裝 wpa_actiond (netctl-auto
軟體包需要):
# pacman -S wpa_actiond
啟用 netctl-auto
服務,連上已知的網路並有效處理漫遊與斷線問題:
# systemctl enable netctl-auto@介面名稱.service
類比式數據機、ISDN 或 PPPoE DSL
xDSL、撥接與 ISDN 連線請參閱以數據機直接連線。
建立初始 ramdisk 環境
若您將系統的根目錄安裝在 USB 碟,或是使用了 RAID/LVM,還是將 /usr
放在額外的分割區內,都需要設定好正確的鉤子。
根據您的需求編輯 /etc/mkinitcpio.conf
,並重新產生 initramfs 映像:
# mkinitcpio -p linux
設定 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
雖然 grub.cfg
可以手動建立,但建議新手選擇讓程式自動產生:
# grub-mkconfig -o /boot/grub/grub.cfg
更多設定、使用 GRUB 的資訊請參閱 GRUB。
UEFI 主機板
UEFI 系統有數個開機載入程式可以使用。完整清單請參閱開機載入程式。請選擇對您而言最方便的一套。這裡我們舉出兩種作為範例:
- gummiboot 是一套迷你 UEFI 開機管理員,基本上為 EFISTUB 核心與其他 UEFI 應用程式提供選單。這是建議的 UEFI 開機方案。
- GRUB 是個更為完整的開機載入程式,若 Gummiboot 發生問題,就使用這個。
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
安裝 grub 和 efibootmgr 軟體包,接著執行 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
可以手動建立,但建議新手選擇讓程式自動產生:
# grub-mkconfig -o /boot/grub/grub.cfg
更多設定、使用 GRUB 的資訊請參閱 GRUB。
卸載分割區並重啟系統
離開 chroot 環境:
# exit
所有的分割區都掛載在 /mnt
,使用以下指令卸載:
# umount -R /mnt
重新啟動電腦:
# reboot