---
# System prepended metadata

title: '[Newbie Corner] Arch Linux 安裝 2019-12'

---

# [Newbie Corner] Arch Linux 安裝 2019-12

## 前言
這是我第一次自己從零開始安裝Arch，很感謝網路資源和朋友的幫忙！寫這篇的本意是做筆記，避免上次安裝什麼都沒有留給自己的缺憾，另外也是感嘆過程中遇到一些問題在開源社群中沒有找到完整做法。作爲一個新手我可以理解，因爲覺得這問題太蠢了不好意思佔用一篇文(而且打起來很累)，但實在有點可惜。我基本是照抄參考資料的。

雖然提了太多顯然的事可能有點冗，也希望對第一次接觸的人有幫助，若有問題歡迎大家指正。


## 環境配置
- 機型：Acer Aspire 3 A315-55G
- BIOS setup: InsydeH20 setup utility
- 原作業系統：Windows 10

## 完整細流

### 準備
要準備一個arch可以開機的隨身碟和先分割好安裝位置的磁碟，這部分可以在windows上先完成。**注意到兩個地方的格式化都會清空所有資料，做好資料備份**

切割磁碟： [控制台] > [系統及安全性] > [系統管理工具] > [電腦管理] > [磁碟管理], 一般來說愈大愈好，但是10GB夠基本操作了。如果空間許可可以切出一個swap空間，約16GB即可。


可能的意外很多，一定要做好原系統的備份

建議備一個windows的安裝檔，操作很容易，真的不行至少還有電腦用

### 下載/燒錄映像檔
1. 在網路上找一個mirror下載iso檔，例如這個交大的 http://archlinux.cs.nctu.edu.tw/iso/2019.12.01/ 
2. 在windows上可以下載Cygwin，並把iso檔放在Cygwin相當於使用者home目錄的位置，如`C:\cygwin\home\Users\`
3. 以管理員身份開啓並執行以下指令`cat /proc/partitions`看USB在哪個代號的分割
4. `dd if=image.iso of=/dev/sdx bs=4M`, 其中`/dev/sdx`是USB所在的分割

### 設定開機模式
**下面兩節的過程可能會覆蓋原本的系統，或是導致原本的系統無法開機，注意備份**

開機後馬上按F2進入選單
1. 關閉secure boot
2. (optional) 開啓F12(跟機型有關)開機選單
3. 如果開機後無法顯示磁碟分割(下一節)，以AHCI模式開機, 注意如果原系統不是AHCI開機模式，可能會導致原系統無法開機

### 格式化
1. `ls /sys/firmware/efi/efivars`驗證是否爲UEFI開機模式，執行應該顯示很多東西
2. `fdisk -l`查看磁碟分割，如果只有顯示USB的分割回到上一節的3
3. `mkfs.ext4 [root partition]` 格式化安裝linux位置的磁碟分割
4. **如果無意覆蓋原系統略過這行** `mkfs.fat -F 32 [efi boot partition]`

### 裝載磁碟
1. `mount [root partition] /mnt`
2. (optional) `mkswap [swap partiotion]`
3. `mkdir /mnt/boot`
4. `mount [efi boot partition] /mnt/boot`

### 安裝系統
1. `wifi-menu`連接網路
2. `vim /etc/pacman.d/mirrorlist`編輯mirrorlist, 將本地的網站移至第一順位，加快下載
3. `pacstrap /mnt base linux linux-firmware sudo vim base-devel`最後一個是optional
4. `genfstab -U /mnt >> /mnt/etc/fstab`生成fstab檔
5. `arch-chroot /mnt`切換到`/mnt`工作

### 安裝bootloader
1. `pacman -S grub efibootmgr os-prober`
2. `grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub`
這裏應該要顯示no error
3. `grub-mkconfig -o /boot/grub/grub.cfg`
這裏除了done外，還要顯示找到了linux。檢查是否沒有顯示找到或顯示windows的。

### 設定
1. `ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime`設定時間
2. `vim /etc/locale.gen`取消英文和中文字型的註解
3. `locale-gen`
4. `echo LANG=en_US.UTF-8 > /etc/locale.conf`設定語言，不建議設中文
5. `passwd`設定密碼
6. `sudo systemctl enable NetworkManager.service`網路
7. (optional)`useradd -mg users -G wheel,storage,power -s /bin/bash [user name]` 
建立使用者 
8. (optional)`passwd [username]`設定使用者密碼 
9. `vim /etc/sudoers`取消註解在約第82行位置的%wheel ALL
10. `pacman -S wpa_supplicant dialog xorg gnome`下載gnome和網路
11. `systemctl enable gdm`
12. `exit`退出root

### 完成
`umount -R /mnt`
`reboot`

### 開機
應該要能看到gnome圖形界面
1. 登入：如果沒有設定使用者，用root帳號登入
2. 安裝中文字型：例如`sudo pacman -S adobe-source-han-sans-tw-fonts adobe-source-han-sans-cn-fonts`簡體字也裝不然有些字會缺,fcitx-rime 重新開機
3. 安裝中文輸入法：例如`sudo pacman -S fcitx-rime` 重新開機

## 遇到問題

### USB 無法開機
可能是iso燒錄錯了，注意雖然`cat`之後顯示E槽的位置可能是在`/dev/sdx1`旁邊，但要寫入的是`/dev/sdx`不是`/dev/sdx1`（`/dev/sdx`的第一分割）

### 安裝bootloader時沒有找到linux
在先前版本的arch，安裝時kernel被含在`base`裏面，如果跟著比較舊版本的教學可能不會提到要安裝`linux linux-firmware`

### pacman下載失敗
看錯誤訊息，如果是write failed最有可能是空間不足，如果一開始有正確分割磁碟最有可能是不小心退出`/mnt`了。

### 安裝後開機無法使用gnome-terminal
使用xterm呼叫`gnome-terminal`看錯誤訊息。我遇到兩次大致都和locale有關導致開不起來。

### 如果必須設定AHCI模式又要保有原系統
原系統也必須支援並在AHCI模式下安裝

## 其他
### vim的基本操作
- `i`進入編輯模式
- `Esc`退出編輯模式
- `:w`(在非編輯模式下)存檔
- `:q`退出
- `:q!`強制退出 
### 回到USB開機
如果因故沒有terminal和網路可以再次回用USB開機解決問題。USB開機後不用全部重來，只要`mount`後`arch-chroot`就可以繼續操作。
## 參考資料
- https://gitlab.com/samuel21119/ArchLinux?fbclid=IwAR2ylGFjT5WpDolPwR76Kzt_9Xnn1OgEjRKgiD141FvvkRpsIm3HtIY62_w
- https://github.com/kerwenwwer/arch-linux-install?fbclid=IwAR0o7mnfygMwB5_utimnNKCAyusa9ZImwCAJ1VEV1PAU-4rulrMEQGW887o
- ArchWiki - USB flash installation media, installation guide, fonts