Arch Linux 安裝筆記


Posted by 孫胖 on 2022-09-02

前言

這篇文章會慢慢寫,我會盡量把每個步驟要注意的事情都記錄清楚,也希望能夠幫助到正在看這篇文章的你。

安裝 Linux 之前需要知道的事情

首先,Linux 沒有 C 槽跟 D 槽,但是有以下幾個常見的分區。

non-UEFI

  • swap
  • root
  • home

UEFI

  • ESP Partition
  • swap
  • root
  • home

目前大部分的電腦都有 UEFI,只有少部分比較老的電腦沒有 UEFI。

製作 Arch Linux Live USB

安裝任何 Linux 之前都應該要先製作它的 Live USB。

Windows

可以使用 Rufus 製作

Mac/Linux

可以使用 Etcher 製作

BIOS 注意事項

到 BIOS 設定以下兩件事情

  • 停用安全啟動 (Disable Secure Boot)
  • 開機順序設定成優先使用 USB 開機

進入 Arch Installer

OK,現在終於可以正式開始安裝了,以下的安裝順序建議不要跳過,如果一步一步照著做,應該不會有問題。

調整字體

如果你覺得安裝程式的字體太小,可以使用這個指令將字體調大。

setfont ter-132n

確認是否有 UEFI

如果這個位置存在,就代表有 UEFI。

ls /sys/firmware/efi/efivars

這個步驟將決定之後是否要建立 ESP Partition。

Swap 要多大?

這要看你的 RAM 有多大,使用這個指令可以查看 RAM 的大小。

free -th

如果你的 RAM <= 2GB,那你的 swap 大小應該是 RAM * 2。
如果你的 RAM > 2GB,那你的 swap 大小應該是 RAM + 2。

e.g. 我的筆電 RAM 是 8GB,那我的 swap 大小應該是 8 + 2 = 10GB。

建立分區

使用 cfdisk 這個指令來建立分區。

cfdisk device

non-UEFI

建立以下分區。

Name Size Type
swap RAM + 2 Linux swap
root >=20GB Linux root (x86-64)
home 自由決定 Linux home

設定完記得要 Write && Quit。

UEFI

建立以下分區。

Name Size Type
ESP Partition 512MB EFI System
swap RAM + 2 Linux swap
root >=20GB Linux root (x86-64)
home 自由決定 Linux home

設定完記得要 Write && Quit。

設定分區格式

接下來要設定分區的格式,假設分區的代號如下。

Name Device
ESP Partition /dev/sda1
swap /dev/sda2
root /dev/sda3
home /dev/sdb1

指令

mkfs.vfat /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sdb1

補充

mkfs.vfat 會自動設定分區的格式,當分區 >= 512MB 的時候會設定成 fat32

non-UEFI 設定分區格式

如果是 non-UEFI 的話,只需要設定 swap、root 跟 home 就好 (省略 mkfs.vfat)

mount

non-UEFI 不需要建立 /boot/efi

non-UEFI

步驟如下。

  • mount root 到 /mnt
  • /mnt 上建立 /home
  • mount home 到 /mnt/home

指令

mount /dev/sda3 /mnt
mkdir /mnt/home
mount /dev/sdb1 /mnt/home

UEFI

步驟如下。

  • mount root 到 /mnt
  • /mnt 上建立 /boot/efi
  • mount ESP Partition 到 /mnt/boot/efi
  • /mnt 上建立 /home
  • mount home 到 /mnt/home

指令

mount /dev/sda3 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
mkdir /mnt/home
mount /dev/sdb1 /mnt/home

用vim /etc/pacman.conf編輯conf文件將,找到[core] [extra] [community]將交大的arch mirrorlist加入

[core]
Server = http://archlinux.cs.nctu.edu.tw/$repo/os/$arch
Include = /etc/pacman.d/mirrorlist

[extra]
Server = http://archlinux.cs.nctu.edu.tw/$repo/os/$arch
Include = /etc/pacman.d/mirrorlist

[community]
Server = http://archlinux.cs.nctu.edu.tw/$repo/os/$arch
Include = /etc/pacman.d/mirrorlist

網路設定

建議還是使用有線網路安裝。

有線網路

不用設定,使用這個指令可以測試網路。

ping google.com

如果有 64 bytes from google.com 就表示網路沒問題。

無線網路

使用 iwctl 來設定無線網路

iwctl
device list
station device_name scan
station device_name get-networks
station device_name connect SSID

時間設定

使用 timedatectl 來設定時間

timedatectl set-ntp true
timedatectl set-timezone Asia/Taipei

安裝 Linux

使用 pacstrap 來安裝 Linux 到 /mnt

pacstrap /mnt base linux linux-firmware

建立 fstab

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

change root 到系統

使用 arch-chroot 到系統。

arch-chroot /mnt

如果 prompt 變成全白,就代表已經在剛剛安裝的系統上了。

設定語言

echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
echo "zh_TW.UTF-8 UTF-8" >> /etc/locale.gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf

執行 locale-gen

locale-gen

設定 hostname

幫你的 Arch Linux 取一個名字。

echo rykersun-arch > /etc/hostname

建立 hosts

touch /etc/hosts

安裝 vim

使用 pacman 來安裝 vim

pacman -S vim

編輯 hosts

用 vim 開啟 /etc/hosts 並輸入以下內容

127.0.0.1    localhost
::1          localhost
127.0.0.1    rykersun-arch

注意

rykersun-arch 要改成剛剛設定的 hostname

如果不想使用 vim,也可以直接用 nano 編輯。

設定 root 密碼

使用 passwd 來設定 root 密碼。

passwd

輸入的密碼不會顯示在螢幕上,輸入完直接 Enter 就好。

安裝 grub

non-UEFI 與 UEFI 的安裝方法不同。

non-UEFI

首先使用 pacman 安裝 grubos-prober

pacman -S grub

執行 os-prober 來偵測其他的作業系統。

os-prober

安裝 grub (只要指定磁碟就好,不需要加數字)

grub-install /dev/sda

接下來使用 vim 開啟 /etc/default/grub 並將以下這行取消註解。

#GRUB_DISABLE_OS_PROBER=false

最後使用這個指令來生成 grub config 檔。

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

這樣就完成了。

UEFI

首先使用 pacman 安裝 grubefibootmgros-prober

pacman -S grub efibootmgr os-prober

執行 os-prober 來偵測其他的作業系統。

os-prober

安裝 grub。

grub-install --target=x86_64-efi --bootloader-id=ARCH_GRUB --efi-directory=/boot/efi

接下來使用 vim 開啟 /etc/default/grub 並將以下這行取消註解。

#GRUB_DISABLE_OS_PROBER=false

最後使用這個指令來生成 grub config 檔。

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

這樣就完成了。

設定使用者

使用 pacman 安裝 sudo。

pacman -S sudo

使用這個指令建立使用者 sun。

useradd -m sun

注意

把 sun 改成你的使用者名稱

使用 passwd 設定使用者的密碼。

passwd sun

設定群組。

usermod -aG wheel,audio,video,storage sun

注意

請用逗號隔開,不要輸入空白鍵。

編輯 visudo。

visudo

將下面這行取消註解。

# %wheel ALL=(ALL) ALL

安裝 NetworkManager

使用 pacman 安裝 NetworkManager。

pacman -S networkmanager

啟用 NetworkManager.service

systemctl enable NetworkManager

安裝顯示卡驅動程式

Nvidia (Open Source)

sudo pacman -S xf86-video-nouveau

Nvidia (Proprietary)

sudo pacman -S nvidia nvidia-utils

恭喜你,這樣就安裝完成了。

最後的步驟

首先離開 arch-chroot。

exit

接下來 umount /mnt

umount -l /mnt

最後重新啟動。

reboot

注意

重開機的時候別忘了拔出 USB,才不會又進入到安裝程式。

nmcli 無線網路設定

如果是使用無線網路的話,可以透過以下指令來連接網路。

nmcli radio wifi
nmcli radio on
nmcli device wifi list
nmcli device wifi connect --ask SSID

測試筆記

後來測試這篇文章的內容發現時間和 grub 有點小問題

以下紀錄如何排除問題

時間

建議再打一次以下指令來確保時間沒有問題

timedatectl set-ntp true
timedatectl set-timezone Asia/Taipei

Grub

後來發現 os-prober 似乎沒有偵測到其他的作業系統

於是我就在重新打了以下的指令 (步驟跟之前一樣)

請確保已經修改過 /etc/default/grub

sudo os-prober

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

All right, you are good to go.

安裝完要做的事情

這邊整理了一些安裝完要做的事情。

安裝桌面環境

gnome

sudo pacman -S xorg gnome

enable gdm

sudo systemctl enable gdm

reboot

sudo reboot

i3

安裝 i3。

sudo pacman -S xorg i3 dmenu xorg-xinit

i3 可以選擇 i3-gaps (視窗之間有縫隙)

安裝 pulseaudio。

sudo pacman -S pulseaudio

建立 .xinitrc

cp /etc/X11/xinit/xinitrc ~/.xinitrc

刪除最後五行並加入以下內容。

exec i3

這樣下次登入 tty 的時候只要執行 startx 就會啟動 i3 了。

display manager

這邊推薦 ly 或是 lightdm

ly

ly 需從 AUR 安裝, 可以參考後面的 yay

sudo pacman -S ly

enable ly

sudo systemctl enable ly

lightdm

這個的話就不用從 AUR 安裝了, 直接 pacman 就可

sudo pacman -S lightdm lightdm-gtk-greeter

enable

sudo systemctl enable lightdm

這樣重開機之後應該就會看到登入畫面了 (極度醜陋)

我之後還會整理一篇完整設定 i3 的文章, 敬請期待!

i3 炫耀圖

中文字體出現一堆 "口口口"

gnome

如果你發現中文字體像下面這樣無法正常顯示,就代表沒有安裝中文字體。

安裝 noto-fonts, noto-fonts-cjk, noto-fonts-emoji-git, gnome-tweaks

sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji-git gnome-tweaks

之後使用 tweaks 把字體更改成 cjk tc bold 應該就解決了。

輸入法

安裝 fcitx5 輸入法。

sudo pacman -S fcitx5 fcitx5-im fcitx5-chinese-addons fcitx5-configtool fcitx5-chewing

打開 fcitx5-configtool 並加入注音。

修改 environment

sudo vim /etc/environment

加入以下內容

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

安裝 bash 自動補齊

sudo pacman -S bash-completion

安裝 yay

首先安裝 base-develgit

sudo pacman -S base-devel git

clone yay-bin from AUR

git clone https://aur.archlinux.org/yay-bin.git

install yay-bin

cd yay-bin/

makepkg -si

分享全新乾淨的 Arch Linux

這邊附上全新乾淨的 Arch Linux 照片。

參考資料


#Arch Linux #筆記







Related Posts

Prevent Heroku from sleeping

Prevent Heroku from sleeping

Virtual DOM 實作與原理解析

Virtual DOM 實作與原理解析

D37_W4 寫作業

D37_W4 寫作業


Comments