# 安裝 Arch Linux!

## 前言

感謝 [Arch Linux安裝教學，KDE Plasma桌面＋中文輸入法](https://ivonblog.com/posts/install-archlinux/) ，本篇的安裝步驟大部分來自於這他，尤其是硬碟分割。

在網路上找到不少教學都是有包含 GUI 的，但我打算只先可以一步一步來，這樣也可以清楚自己在做甚麼，先設定第一小步是可以開機進入系統，這樣大概只會包含**磁碟分割**、**安裝系統**和可以**連接網路**，尤其是**無線網路**。之後 IDE 安裝再視需求考慮安裝。

## 這篇沒有...

我盡量把一些不影響目標的操作排除掉，包括：

1. 安裝 IDE
    
2. 安裝 sshd，與相關安全性設定
    
3. 建立一個非 root 的 user
    
4. 調整時區語言
    

## 買機器

首先是要怎樣的機器，先調查了兩個在蝦皮上看到的使用的 CPU，和我 7~8 年前買的 Mac Pro CPU Benchmark 進行比較：

<table><tbody><tr><td colspan="1" rowspan="1"><p>Name</p></td><td colspan="1" rowspan="1" colwidth="200"><p>CPU</p></td><td colspan="1" rowspan="1"><p>Core</p></td><td colspan="1" rowspan="1"><p>Benchmark</p></td><td colspan="1" rowspan="1"><p>參考價格</p></td></tr><tr><td colspan="1" rowspan="1"><p><a target="_blank" rel="noopener noreferrer nofollow" class="css-tgpl01" href="https://shopee.tw/ASRock%E8%8F%AF%E6%93%8E-DeskMini-X300-AM4-No-OS-%E8%BF%B7%E4%BD%A0%E4%B8%BB%E6%A9%9F-%E5%8E%9F%E5%83%B9%E5%B1%8B%E3%80%90%E9%99%90%E6%99%82%E9%80%81%E7%84%A1%E7%B7%9A%E6%A8%A1%E7%B5%84%E3%80%91-i.54133273.3166318819" style="pointer-events: none">ASRock華擎 DeskMini X300 AM4</a></p></td><td colspan="1" rowspan="1" colwidth="200"><p>4600G</p></td><td colspan="1" rowspan="1"><p>6 Cores</p></td><td colspan="1" rowspan="1"><p><a target="_blank" rel="noopener noreferrer nofollow" class="css-tgpl01" href="https://www.cpubenchmark.net/cpu.php?cpu=AMD+Ryzen+5+4600G&amp;id=3807" style="pointer-events: none">15944</a></p></td><td colspan="1" rowspan="1"><p>9790</p></td></tr><tr><td colspan="1" rowspan="1"><p><a target="_blank" rel="noopener noreferrer nofollow" class="css-tgpl01" href="https://shopee.tw/Intel-NUC-BNUC11ATKC20001-N4505-No-OS-%E8%BF%B7%E4%BD%A0%E4%B8%BB%E6%A9%9F-%E5%8E%9F%E5%83%B9%E5%B1%8B-i.54133273.19332049053?sp_atk=d93ff783-4c6c-45a0-808a-dad1ca239334&amp;xptdk=d93ff783-4c6c-45a0-808a-dad1ca239334" style="pointer-events: none">Intel NUC BNUC11ATKC20001 N4505</a></p></td><td colspan="1" rowspan="1" colwidth="200"><p>N4505</p></td><td colspan="1" rowspan="1"><p>2 Cores</p></td><td colspan="1" rowspan="1"><p><a target="_blank" rel="noopener noreferrer nofollow" class="css-tgpl01" href="https://www.cpubenchmark.net/cpu.php?cpu=Intel+Celeron+N4505+%40+2.00GHz&amp;id=4717" style="pointer-events: none">2390</a></p></td><td colspan="1" rowspan="1"><p>2390</p></td></tr><tr><td colspan="1" rowspan="1"><p>Apple M2 8 Core 3500 MHz</p></td><td colspan="1" rowspan="1" colwidth="200"><p>-</p></td><td colspan="1" rowspan="1"><p>8 Cores</p></td><td colspan="1" rowspan="1"><p><a target="_blank" rel="noopener noreferrer nofollow" class="css-tgpl01" href="https://www.cpubenchmark.net/cpu.php?cpu=Apple+M2+8+Core+3500+MHz&amp;id=4922" style="pointer-events: none">15355</a></p></td><td colspan="1" rowspan="1"><p>-</p></td></tr></tbody></table>

最後選定 DeskMini 那組。在和原價屋訂製的時候是這樣：

* DeskMini + WiFi + BT4
    
* CPU: AMD 4600G
    
* Memory: 16GB DDR-3200
    
* SSD: Micron Crucial P3 美光
    

組裝就交給原價屋了。

## 安裝

### 目標

### 步驟1：前置作業

隨身碟開機，可以連上網。

#### **開機順序**

調整開機順序，以隨身碟開機。

#### 檢查網路

安裝過程是需要網路的，要先檢查：

```bash
ping -c 3 archlinux.org
ping 8.8.8.8
ping 1.1.1.1
```

假如是無線網路，需要用 `iwctl` 連。

```bash
iwctl device list
iwctl station <device> get-networks # list <SSID>
iwctl station <device> connect <SSID>
```

#### 修改鏡像站

由於原本設定的站點距離台灣遠，可能有點慢，所以要調整 `/etc/pacman.d/mirrorlist` 。

參考[官方網站生出的 config](https://archlinux.org/mirrorlist/?country=TW&protocol=https&ip_version=4) 後，我直接挑台灣站點列表裡的第一個：

```ini
## Taiwan
Server = https://mirror.archlinux.tw/ArchLinux/$repo/os/$arch
# Server = https://free.nchc.org.tw/arch/$repo/os/$arch
# Server = https://archlinux.cs.nycu.edu.tw/$repo/os/$arch
# Server = https://ftp.yzu.edu.tw/Linux/archlinux/$repo/os/$arch
```

設定好後確認：

```bash
pacman -Syy
```

### 步驟2: 磁碟分割

要對購買的 SSD 進行磁碟分割。

基本上要分三區：

* 開機區： 512MB，(下限是 256MB)
    
* memory swap：通常建議是記憶體的兩倍，這裡是 2x16 GB = 32 GB
    
* 主區：即是 `/` 根目錄
    

先用 `fdisk -l` 來確認有那些 device，通常會有兩種 `/dev/sda?` 或 `/dev/nvme?n?`

在我的硬體選擇下，會是 `/dev/nvme0n1`

* 選取要安裝系統的硬碟 `fdisk /dev/nvme0n1`
    
* 輸入`g` 清空原本分區，建立GPT分割表。
    
* 新增開機分區：輸入`n`，再輸入`1` (或按 Enter 預設 1)， First Sector 按 Enter 預設，Last Sector 輸入`+512M` 。
    

```plaintext
n
1 # (Enter 預設 1)
First Sector: (Enter)
Last Sector: +512M
```

* 輸入`t`再輸入`uefi`，將該分區類型切換為 EFI。
    

```bash
t
uefi
```

* 接著新增 swap 分區，按照購買 Memory ，設為 32GB 。之後按 `t`，切換分區類型為 swap。
    

```plaintext
n
2 # (Enter 預設 2)
Fisrt sector: Enter
Last Sector: +32GB
t
2 # (Enter 預設 2)
swap
```

* 硬碟剩下的空間都給主區：
    

```plaintext
n
3 # (Enter 預設 3)
First Sector: (Enter)
Last Sector: (Enter)
```

* 最後輸入 `w` 確認將變更寫入硬碟
    
* 用指令 `fdisk -l` 看目前硬碟分區，應該會是以下情況：
    

```plaintext
/dev/nvme0n1p1 512MB  EFI
/dev/nvme0n1p2 32GB   SWAP
/dev/nvme0n1p3 450GB  Linux
```

* 將分區格式化：
    

```bash
mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p3
mkswap /dev/nvme0n1p2
swapon /dev/nvme0n1p2
```

<div data-node-type="callout">
<div data-node-type="callout-emoji">🤔</div>
<div data-node-type="callout-text">其實有考慮把 /home/ 再開一區，不過想到是第一次裝 Arch Linux ，就先別做額外的事情了。</div>
</div>

### 步驟3: 安裝 Arch

```bash
mount /dev/nvme0n1p3 /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
pacstrap /mnt base base-devel linux linux-firmware
```

### 步驟4: 安裝網路

#### chroot

實際上是在跑 chroot 之前設定一堆東西的[腳本](https://github.com/archlinux/arch-install-scripts/blob/master/arch-chroot.in)。

```bash
arch-chroot /mnt
```

#### 安裝網路

networkmanager 有提供一系列指令或設定連接網路。

假如是無線網路，需要安裝 `wireless_tools`。

```bash
pacman -Syy
pacman -S networkmanager wireless_tools
```

### 步驟5: GRUB 開機

最後是 Bootloader。

```bash
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
```

### 步驟6: 重開

```bash
exit # exit from chroot
umount /mnt/boot
umount /mnt
reboot
```

## 參考

本文大部分步驟參考自 (1)。感謝以下文章讓我成功裝 Arch。

1. [Arch Linux安裝教學，KDE Plasma桌面＋中文輸入法](https://ivonblog.com/posts/install-archlinux/)
    
2. [UEFI vs BIOS：有什麼差異以及哪一個更好](https://tw.easeus.com/partition-manager-tips/uefi-vs-bios.html)
    
3. [Arch Linux 使用Network Manager管理網路 - 可丁丹尼 @ 一路往前走2.0](https://cms.35g.tw/coding/arch-linux-%e4%bd%bf%e7%94%a8network-manager%e7%ae%a1%e7%90%86%e7%b6%b2%e8%b7%af/#:~:text=%E5%89%9B%E6%8E%A5%E8%A7%B8Arch%20Linux%E5%BE%8C%EF%BC%8C%E5%9B%A0%E6%89%80%E9%9C%80%E8%A6%81%E7%9A%84%E5%A5%97%E4%BB%B6%E9%83%BD%E8%A6%81%E8%87%AA%E8%A1%8C%E5%AE%89%E8%A3%9D%EF%BC%8C%E6%9C%80%E5%9F%BA%E6%9C%AC%E7%9A%84%E5%9C%96%E5%BD%A2%E4%BB%8B%E9%9D%A2%E9%83%BD%E5%AE%89%E8%A3%9D%E5%AE%8C%E6%88%90%E5%BE%8C%E6%89%8D%E7%99%BC%E7%8F%BE%E7%84%A1%E6%B3%95%E9%80%8F%E9%81%8E%E7%AE%A1%E7%90%86%E7%A8%8B%E5%BC%8F%E8%A8%AD%E5%AE%9A%E7%B6%B2%E8%B7%AF%EF%BC%8C%E6%9F%A5%E8%A9%A2%E4%B8%80%E7%95%AA%E5%BE%8C%E6%89%8D%E4%BA%86%E8%A7%A3%E5%88%B0%E9%9C%80%E8%A6%81%E5%86%8D%E5%AE%89%E8%A3%9D%E4%B8%80%E5%80%8B%E5%A5%97%E4%BB%B6%E7%82%BA%20Network%20Manager%20%EF%BC%8C%E6%8E%A5%E4%B8%8B%E4%BE%86%E5%B0%B1%E8%AA%AA%E6%98%8E%E4%B8%80%E4%B8%8B%E5%AE%89%E8%A3%9D%E7%9A%84%E9%81%8E%E7%A8%8B%E3%80%82%20%E6%8C%87%E4%BB%A4%E5%95%9F%E5%8B%95%E7%B6%B2%E8%B7%AF%E5%8A%9F%E8%83%BD%20%E5%9C%A8%E6%9C%AA%E5%AE%89%E8%A3%9D%E7%B6%B2%E8%B7%AF%E7%AE%A1%E7%90%86%E5%A5%97%E4%BB%B6%E6%99%82%EF%BC%8C%E7%B6%B2%E8%B7%AF%E5%8A%9F%E8%83%BD%E5%BF%85%E9%9C%80%E8%A6%81%E6%89%8B%E5%8B%95%E9%96%8B%E5%95%9F%EF%BC%8C%E7%8F%BE%E5%9C%A8%E7%A4%BA%E7%AF%84%E7%9A%84%E7%B6%B2%E8%B7%AF%E7%92%B0%E5%A2%83%E6%98%AF%20IP%E8%87%AA%E5%8B%95%E5%8F%96%E5%BE%97,link%20%E5%9C%96%E4%B8%AD%20eno16777736%20%E7%82%BA%E7%B6%B2%E8%B7%AF%E8%A3%9D%E7%BD%AE%E5%90%8D%E7%A8%B1%EF%BC%8C%E6%89%8B%E5%8B%95%E5%95%9F%E5%8B%95%E5%8F%96%E5%BE%97IP%EF%BC%8C%E8%AE%93%E7%B6%B2%E8%B7%AF%E8%83%BD%E6%9C%89IP%E9%80%B2%E8%A1%8C%E4%B8%8A%E7%B6%B2%EF%BC%9A%20systemctl%20start%20dhcpcd%40eno16777736%20%E7%AD%89%E5%BE%85%E4%B8%80%E6%AE%B5%E6%99%82%E9%96%93%E5%BE%8C%E6%AA%A2%E6%9F%A5%E6%98%AF%E5%90%A6%E6%9C%89%E5%8F%96%E5%BE%97IP)
    
4. [\[心得\]Arch Linux安裝踩坑紀錄及使用心得](https://miyago9267.com/2023/02/16/Arch-20220216/)
