# Framework 13 裝Arch Linux 全紀錄 # 2025/8決定寫一篇新版 這版將封存參考用 > 廢話: > Arch 是個安裝時非常麻煩的發行版 > 沒有Linux設定基礎請慎入 > 一切教程皆為僅供參考 > 請在知道自己在幹嘛的情況下操作 ## Live USB(ISO) > 前置需求:隨身碟、電腦、網路 ### 下載ISO [官方下載頁面](https://archlinux.org/download/) 官方載點超慢,磁力和種子都是。 建議下拉載台灣鏡像點 ### Ventoy [官方下載頁面](https://www.ventoy.net/en/download.html) 灌ISO做安裝碟的好東西,使用方法不展開說 [Windows使用者可參考這篇](https://www.gdaily.org/23174/ventoy-iso) > 隨身碟裝好後直接把Arch的ISO丟進去就好 ### 啟動Live USB 首先,請先進UEFI(BIOS)關閉(Secure boot) 使用你剛灌好的隨身碟開機,找到Arch的ISO,無腦enter > 這部份理論上不會有問題啦,真出問題嘗試看看arch用grub2啟動 等它載入完後 恭喜你,進到Arch的Live USB模式了 然後就可以按照[官方教程](https://wiki.archlinux.org/title/Installation_guide_(正體中文))進行安裝囉 ### 安裝Arch > 這裡只是官方教程的複製貼上 #### 網路 `# ip link` 看連線狀態 `# ping archlinux.org` 確認能上網 `ctrl+c`關掉ping 如果你的電腦是插網路線的,在這個時候應該都沒什麼大問題 如果有,那就是沒驅動,真慘QQ ||Arch這種跟隨最新版Linux內核的發行版都沒有你網卡的驅動,你用的是什麼星雲科技的網卡|| 無線網路的話,官方教程是使用`iwctl`進行設定 只要網路出問題,外接USB 1G網卡都能搞定 #### 時間 `# timedatectl set-ntp true`自動上網對時間 #### 儲存空間 ##### 分區 `fdisk`和`lsblk`很好用 簡單說就是需要切至少2~3個分區 分別是`EFI`,`SWAP`,`儲存` SWAP是選配,如果你記憶體特別大又沒有休眠需求,也不介意可能的性能犧牲,可以不用分配,這個事後也能用交換檔的方式掛載[參閱](https://wiki.archlinuxcn.org/wiki/Swap?rdfrom=https%3A%2F%2Fwiki.archlinux.org%2Findex.php%3Ftitle%3DSwap_%28%25E7%25AE%2580%25E4%25BD%2593%25E4%25B8%25AD%25E6%2596%2587%29%26redirect%3Dno) > 我是切了1GiB給它啦 EFI分區,參照官方可以設定成2MiB(如果你只裝Arch並且沒有其他怪需求的話),有其他需求就去參考官方wiki和其他教程吧。 剩下的空間就全丟給儲存 分區標籤大概長這樣 ``` nvme0n1 disk ├─nvme0n1p1 EFI System ├─nvme0n1p2 Swap └─nvme0n1p3 Linux File System ``` ##### 格式化 ``` # mkfs.fat -F 12 /dev/nvme0n1p1 # mkswap /dev/nvme0n1p2 # mkfs.ext4 /dev/nvme0n1p3 ``` EFI的格式化指令請根據容量進行微調 ##### 掛載 ``` # mount /dev/nvme0n1p3 /mnt # swapon /dev/nvme0n1p2 # mkdir /mnt/efi # mount /dev/nvme0n1p1 /mnt/efi ``` 掛載順序有差,我在這裡把EFI分區掛在系統內的/efi資料夾,但因為目前環境是在live USB,所以指令中的路徑會有些許不同 ##### 修改鏡像站(參考他人教程) 系統自動抓的鏡像站很慢,手動指定台灣鏡像站會快很多 ``` # reflector --country Taiwan > /etc/pacman.d/mirrorlist ``` > 選配操作 > `Server = http://free.nchc.org.tw/arch/$repo/os/$arch` > 用你喜歡的文字編輯器如vim, namo之類的,放在`/etc/pacman.d/mirrorlist`的`Server`列表最前面 ##### 安裝 終於能安裝系統了,Arch前置可真麻煩 ```= # pacstrap /mnt base linux linux-firmware # genfstab -U /mnt >> /mnt/etc/fstab ``` 第一行打完後要等一陣子,取決於網速和電腦性能 ##### 進入灌好的系統 ``` # arch-chroot /mnt ``` ## 第一次進入系統 目前系統距離正常能用還有一段距離,主要是還沒有設定好啟動引導,如果不介意每次開機都必須從Live USB進來的話,其他部份就基本上是選配了 ### 裝文字編輯器 這部份看你想裝哪款就裝哪款,以下示範是vim ``` # pacman -S vim ``` 過程無腦enter ### 時區 ```= # ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime # hwclock --systohc # 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 ``` host/hostname設定也放這好了 `# echo "Arch" > /etc/hostname` 這個Arch隨便改 用文字編輯器打開`/etc/hosts`輸入: ```= 127.0.0.1 localhost ::1 localhost 127.0.1.1 ARCH.localdomain ARCH ``` 輸入這個的時候用tab縮排比較快,裡面的`ARCH`就跟隨你的hostname然後全大寫,這部份有數字也是沒問題的 ### 設定root密碼 ``` # passwd ``` ### 網路設定 手動配置一下DHCP,不然就現況重開機一定沒網路 ``` # pacman -S dhcpcd # systemctl enable dhcpcd.service ``` 無線網路可參考Live USB的網路章節,參考官方wiki灌iwd之類的 > USB 有線網卡永遠的神 ### 啟動引導 這篇用GRUB,會用其他bootloader的估計也不會看這篇 ```= # pacman -S grub efibootmgr os-prober mtools # grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB # grub-mkconfig -o /boot/grub/grub.cfg ``` 第二行中,`bootloader-id`能隨便改,但不建議有空格。 >我在實作時,有試過msi的uefi,這樣配置完重開會清空剛剛的啟動引導,需要在grub-install後額外加一段: >`grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB --removable` > 雙啟動檔才能正常進入系統,但在framework不用加就能過。 前面好像有提到安全啟動? 那個很麻煩,選配再弄也不遲。 ### 重啟 接下來,就能重開機了 `exit`回到Live USB後`reboot`重啟,這時候能順便拔隨身碟 ## 重啟後 前面沒出問題的話應該就進到TTY打帳號密碼了,然後就是一堆選配操作 不過記得先更新系統 ``` # pacman -Syu ``` ### Secure boot [archwiki](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot) 還真沒想到framework設置這個如此容易。 本紀錄使用的是自訂金鑰,可能在更新韌體時需要重新設置。 首先,進入UEFI把secure boot調整成setup模式,好像會清金鑰的樣子,非framework用戶請謹慎操作,framework可以一鍵還原預設金鑰。 用`bootctl`確認,應該需要root權限。 接下來,要回去往grub動刀,網路上的相關教程好像都是systemd-boot的,不過貌似大同小異。 ``` # grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB --modules="tpm" --disable-shim-lock # grub-mkconfig -o /boot/grub/grub.cfg ``` 手動配置是不可能的 所以 `# pacman -S sbctl`安裝sbctl `$ sbctl status`看狀態 `# sbctl create-keys`生金鑰 `# sbctl enroll-keys -m`註冊金鑰 -m代表把微軟的金鑰也一併註冊上去 > 大部分筆電可能都需要連著微軟的金鑰註冊,但framework不用,可以直接執行`# sbctl enroll-keys` `# sbctl verify`驗證金鑰簽名 ``` # sbctl sign -s /boot/vmlinuz-linux # sbctl sign -s /efi/EFI/GRUB/grubx64.efi ``` 幫kernel和bootloader簽名 都設定好後就可以重開機`reboot`再進一次UEFI了 在UEFI中的secure boot選單把`/efi/EFI/GRUB/grubx64.efi`加入信任列表,具體操作要看機型,之後就F10保存重啟,不出意外就能進系統了 ### yay [Jguer/yay-GitHub](https://github.com/Jguer/yay) 灌AUR庫中的套件程式,當然也可以手動抓就不用裝它 AUR簡單說就是不在官方core,extra庫的社區套件庫,基本上都是原始碼,得在本地編譯 安裝過程只是複製過來 ``` # pacman -S --needed git base-devel $ git clone https://aur.archlinux.org/yay.git $ cd yay $ makepkg -si ``` 用法基本上跟pacman一樣,啊不過裝套件的時候會有幾個選項問你要不要保留編譯相關的依賴有的沒的,反正我是設定編譯後刪除。 ### TODO GUI sudo eduroam in iwctl hyprland ## 參考資料 https://ivonblog.com/posts/install-archlinux/ https://hackmd.io/@PIFOPlfSS3W_CehLxS3hBQ/r1xrYth9V https://hackmd.io/@bloodnighttw/arch (前段主要參考這篇)