{%hackmd BJqmTNgxD %}
ArchLinux Installation Workshop
===
by PastLeo
---
<div class="d-flex">
<div class="flex-1">

</div>
<div class="flex-2">
## 西瓜 / PastLeo
### [https://pastleo.me/](https://pastleo.me/)
#### [5xRuby.tw](http://5xruby.tw/) 工程師
</div>
</div>
---
## 今天示範的目標
#### 虛擬機上安裝 ArchLinux, [KDE Plasma](https://wiki.archlinux.org/index.php/KDE)
### 本投影片連結:<br>https://ppt.cc/fCFuxx
---
## 系統需求
* 有人拿真機來裝的嗎
* 要有可以清空的硬碟
* 虛擬機軟體
* 可以連到我們的 WIFI
* LAN 上架設了 mirror server
* USB type-A 孔
---
## 大綱
1. 開機到 archiso
2. 連上網路
3. 建立, 格式化 (format) 並且 掛載 (mount) 磁碟分割 (partition)
4. The `pacstrap` installation
5. `genfstab` and `arch-chroot`
6. 安裝軟體
7. 啟用服務,設定帳密,系統設定
8. 安裝 bootloader `grub`
9. 重新開機到新系統,上機測試!
---
## 1. 開機到 archiso
---
### 為大家準備好了隨身碟
#### BIOS/UEFI boot
##### `archlinux-2020.07.01-x86_64.iso`
---
### 建立虛擬機 / 使用 USB 開機
---

---
## 安裝筆記
### [https://ppt.cc/fevfjx](https://ppt.cc/fevfjx)
#### 請搭配此筆記以及[官方 Wiki](https://wiki.archlinux.org/index.php/installation_guide)進行
---
### 2. 準備好網路
#### 連上 Workshop 專用的 WIFI
* SSID: `PingAirPortExpress`
* Password: `0926894861`
* 拿真機來裝的
* 筆記中有連接 WIFI 的指令
* 測試 `ping 192.168.144.5`
* mirror server
---
## 3. <br>建立, 格式化並且掛載磁碟分割
---
### 分割前,先確認開機模式
#### ([UEFI](https://zh.wikipedia.org/wiki/%E7%B5%B1%E4%B8%80%E5%8F%AF%E5%BB%B6%E4%BC%B8%E9%9F%8C%E9%AB%94%E4%BB%8B%E9%9D%A2) or BIOS)
* 真機
* `ls /sys/firmware/efi/efivars`
* 現今出的電腦理論上都支援 UEFI
* 虛擬機
* 沒意外都是 BIOS
---
### `fdisk` 建立磁碟分割
```bash
fdisk -l
fdisk /dev/vda # or /dev/nvme0nN, /dev/sdN
```
看清楚 `fdisk` 的提示
用真機的,這步之後就**無法**回來了
---
### 格式化
```bash
mkfs.ext4 /dev/vda1
```
---
### 掛載到 `/mnt`
```bash
mount /dev/vda1 /mnt
```
可以用 `df` 來檢查掛載點
---
## 4. The `pacstrap` installation
---
### 修改 [mirrorlist](https://wiki.archlinux.org/index.php/Mirrors)
#### 改用 Workshop 專用的 mirror server
修改 `/etc/pacman.d/mirrorlist` 成只有:
```
Server = http://192.168.144.5:8080
```
或是直接跑這行:
```
$ echo 'Server = http://192.168.144.5:8080' > /etc/pacman.d/mirrorlist
```
---
### 標準 `pacstrap` 安裝
```bash
pacstrap /mnt base linux linux-firmware
```
---
<style>
img[alt=pacstraping] {
max-height: 260px;
}
</style>


---
### 5. `genfstab` and `arch-chroot`
```bash
genfstab -U /mnt >> /mnt/etc/fstab
```
```bash
arch-chroot /mnt
```
---
## 6. 安裝軟體
---
### 安裝軟體 - 基本生存工具
```bash
pacman -S networkmanager grub
```
---
### 安裝軟體 - GUI
```bash
pacman -S sddm plasma
```
---
### 安裝軟體 - 字型
```bash
pacman -S ttf-freefont ttf-roboto noto-fonts noto-fonts-cjk
```
---
### 安裝軟體 - GUI 應用程式
```bash
pacman -S konsole firefox dolphin
```
---
### 安裝軟體 - 系統工具
```bash
pacman -S sudo vim
```
---
#### mirror server 上有的套件
```
base linux linux-firmware intel-ucode amd-ucode networkmanager iw wpa_supplicant grub efibootmgr os-prober ntfs-3g bluez pulseaudio-alsa pulseaudio-bluetooth mesa xf86-video-intel intel-media-driver libva-intel-driver xf86-video-amdgpu libva-mesa-driver mesa-vdpau gdm sddm lxdm gnome plasma lxde gnome-terminal konsole lxterminal chromium firefox dolphin spectacle smplayer libreoffice-still ttf-freefont ttf-roboto noto-fonts noto-fonts-emoji noto-fonts-cjk adobe-source-code-pro-fonts sudo vim tmux git base-devel
```
---
## 7. <br>啟用服務,設定帳密,系統設定
---
### 設定 NetworkManager 以及 GUI 服務在開機時啟動
```bash
systemctl enable NetworkManager sddm
```
---
### 使用者以及 Root 帳號密碼
要不然待會就得用 root 登入 GUI...
---
### 其他系統設定
* Time zone
* Localization
* Network configuration
---
## 8. 安裝 bootloader `grub`
```bash
grub-install ...
grub-mkconfig -o /boot/grub/grub.cfg
```
---
## 9. <br>重新開機到新系統,上機測試!
---
<div class="d-flex">
<div class="flex-1">

</div>
<div class="flex-1">

</div>
</div>
---
## 我來為大家示範一次
## UEFI 安裝
#### (如果還有時間的話)
---
## 如果大家喜歡這個 distro 的使用手感,歡迎加入我們!
### https://archlinux.tw/getting-started/
#### https://pastleo.me
{"metaMigratedAt":"2023-06-15T11:17:02.896Z","metaMigratedFrom":"YAML","title":"ArchLinux Installation Workshop","breaks":true,"slideOptions":"{\"spotlight\":{\"enabled\":true,\"size\":80,\"presentingCursor\":\"default\",\"toggleSpotlightOnMouseDown\":false,\"spotlightOnKeyPressAndHold\":90,\"initialPresentationMode\":true,\"disablingUserSelect\":false,\"fadeInAndOut\":500},\"allottedMinutes\":120}","contributors":"[{\"id\":\"0eb274f7-a3a4-4c8e-b0d4-e5c08eaf9e72\",\"add\":6909,\"del\":2495}]"}