安裝 Arch Linux 系統

連接網絡

確認網絡接口

ip link

A. 使用有線 Ethernet

正常情況下,使用有線網絡無需任何操作便以自動透過 DHCP 動態分配了 IP 地址 和 DNS 伺服器地址。

ping 檢查網絡連接

ping www.google.com

B. 使用無線 Wi-Fi

Arch Linux wifi 推薦使用 iwctl (軟件包為 iwd,Live CD 上是默認安裝並啟動的)

我以前是用 wifi-menu,但在 2020 年 7 月,ArchISO 拿掉了 netctl (wifi-menu 的軟件包),也讓 iwctl 取代了的 wifi-menu。

因為 iwctl 更好用啦。

1.進入交互模式 :

$ iwctl

2.列出所有 WiFi 設備,查看自己的網絡設備名稱

[iwd]# device list

我的無線網卡名稱叫 wlan0

3.掃描網絡

[iwd]# station wlan0 scan

4.列出可連連接的網絡

[iwd]# station wlan0 get-networks

5.連接,SSID 改成找到的 Wifi 名稱

[iwd]# station wlan0 connect SSID

6.顯示連線狀態,見到 State 是 connected 的話基本沒問題

[iwd]# station wlan0 show

7.測試連線

[iwd]# exit
ping www.google.com

建立硬盘分區

由於我是用 UEFI 啟動,所以按照下面指引分割

UEFI with GPT

掛載點 分割區 分割區類型 大小
/mnt/efi /dev/efi_system_partition EFI system partition 1001 MiB
/mnt /dev/root_partition Linux x86-64 root (/) 40 GiB
[SWAP] /dev/swap_partition Linux swap 10 GiB
/mnt/home /dev/home_partition Linux x86-64 home (/home) 剩下的所有空間

使用 parted 進行分區 (UEFI/GPT 示範)

其實還有很多分割的工具如 fdisk 和 gdisk。

如果有好幾顆硬碟,我一般會習慣先用 fdisk -l 看看我要硬式化的硬碟名稱

1.查看所有硬碟狀態

$ fdisk -l

Disk /dev/sdb: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: ST9500325AS
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 08B7163A-5858-9090-8081-828310111213

像我就是要安裝到第二顆 SSD 上,名稱是 /dev/sdb

2.進入 /dev/sdb 的交互模式。print 是查看分區、help 是查看可用指令、quit 是退出 parted 的交互模式。

parted /dev/sdb
(parted) print
(parted) help
(parted) quit

3.為 UEFI 系統創建 GPT 分區表

(parted) mklabel gpt

4.按上述表格分割,先建立第一個 EFI 分區。如果是和Windows雙系統啟動,此分區已經存在,不要重新創建

(parted) mkpart "EFI system partition" fat32 1MiB 1001MiB
(parted) set 1 esp on

5.按上述表格分割,建立餘下分區:

(parted) mkpart "root partition" ext4 1001MiB 40GiB
(parted) mkpart "swap partition" linux-swap 40GiB 50GiB
(parted) mkpart "home partition" ext4 50GiB 100%

格式化分區

mkfs.vfat /dev/sdb1 #(EFI 分區)
mkfs.ext4 /dev/sdb2 #(根目錄分區)
mkfs.ext4 /dev/sdb4 #(家目錄分區)
mkswap /dev/sdb3 #(swap 分區)

掛載分區

1.掛載根目錄

# mount /dev/sdb2 /mnt

2.建立 /mnt/efi 目錄,並掛載

# mkdir /mnt/efi
# mount /dev/sdb1 /mnt/efi

3.建立家目錄,並掛載

# mkdir /mnt/home
# mount /dev/sdb4 /mnt/home

4.啟用 swap 分區

# swapon /dev/sdb3(交換空間分區)

正式安裝

確認鏡像文件列表

這文件可定義所下載的軟件包來自哪個鏡像源。用 reflector 可按照連線速度修改鏡像列表。不過在 Live CD 上默認是已經排序好,所以可以不用理會它,看一眼就好。

vim /etc/pacman.d/mirrorlist 

安裝

安裝必要的系統軟件包,包括 base 和 base-devel 軟件包、Linux 內核和常規硬件的韌體,我順便把我常用的 vim 也一拼裝進去。(當然這裡可以按自己喜好更少化)

pacstrap /mnt base base-devel linux linux-firmware vim

對的,其實安裝 Arch Linux 實際上就只有這麼一句命令就完成。

配置系统

生成 fstab 文件

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

這個十分重要,關乎到系統能不能認出掛載好的分區,最好 vim /mnt/etc/fstab 看一眼 :

# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sdb2
UUID=0e21e936-5360-49b0-8b68-b9cd48be73ee       /               ext4            rw,relatime     0 1

# /dev/sdb1
UUID=C1B5-CE8B          /efi            vfat            rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed
,utf8,errors=remount-ro   0 2

# /dev/sdb4
UUID=416f2f7d-8743-4159-a9a2-b6fc35d95139       /home           ext4            rw,relatime     0 2

# /dev/sdb3
UUID=e090651b-e2d7-4ef7-b070-57ed8e5452e8       none            swap            defaults        0 0

可以看到我建立的 4 個分區都在

Chroot

Change root 到新安裝的系統,以後原系統故障都可以使用這方法進入原系統

# arch-chroot /mnt /bin/bash
# df -Th #看看分區大小是否正確

更換密碼

# passwd

時區

查看時間與時區

date

timedatectl

設置時區

ln -sf /usr/share/zoneinfo/Asia/Macau /etc/localtime

本地化

编輯/etc/locale.gen,取消下面註解

en_US.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8

生成 locale 信息

locale-gen

新增 /etc/locale.conf 文件並加入以下內容

LANG=en_US.UTF-8

查看 locale 設定

$ locale
LANG=en_US.UTF-8
LC_CTYPE=zh_TW.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

網絡配置

創建 hostname 文件

編輯 /etc/hostname 並加入:

MyArchLinux

隨意命名,這會是以後主機的名稱

安裝網絡工具

由於 base 軟件包不含任何網絡管理工具,因此需事先下載,不然進入系統後會遇到無法使用 WiFi 等窘境

pacman -S systemd
pacman -S iwd
pacman -S dhcpcd

安裝引導程序

安裝 Grub 軟件包

pacman -S grub 
pacman -S efibootmgr

它可以在開機時協助選擇系統(雙系統或多系統功能就靠它了)

安裝啟動加載器 (僅適用於 UEFI)

/efi 是 EFI 分區、而 GURB 是加載器名稱可任意命名

grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB

生成 grub.cfg

grub-mkconfig -o /boot/grub/grub.cfg

重啟

退出 chroot 環境

exit

卸載被掛載的分區

umount -R /mnt

重新開機

reboot