--- title: Arch Linux 安裝筆記 tags: tutorial, linux --- # Arch Linux 安裝筆記 > 我的 Arch Linux 安裝筆記 ## 建立 Arch Linux 的開機隨身碟 1. 從[這邊](https://www.archlinux.org/download/)下載 ISO 檔 2. 用 dd 指令建立你的開機 USB:`dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx && sync` 3. 現在你可以用你的 USB 開機了 ## 網路設定 - 有線:`dhcpcd` - 無線:`wifi-menu` ## 時間設定 - 設定自動校時間:`timedatectl set-ntp true` ## 磁碟分割 我使用的硬碟名稱為 `nvme0n1` 只分割兩個磁區分別為 `nvme0n1p1` 和 `nvme0n1p2`,設定如下: - nvme0n1p1 - 大小:512mb - 種類 (編號):ef00 - nvme0n1p2 - 大小:all - 種類 (編號):8300 :::info 指令筆記 - 查看磁碟分割:`lsblk` - 使用 `gdisk` 分割磁碟 - `gdisk {{ 硬碟名稱 }}` --> 分割指定的硬碟 - `p` --> 看目前現有分割 - `n` --> 新增分割 - `w` --> 寫入分割設定 ::: ## 磁碟格式化 - 格式化 EFI 要使用的 fat32 空間:`mkfs.vfat -F32 /dev/nvme0n1p1` - 格式化其他為 ext4 格式:`mkfs.ext4 /dev/nvme0n1p2` ## 安裝系統 - 開啟 `/etc/pacman.d/mirrorlist` - 找到 `##Taiwan` 後,將下方的網址複製到第一行,或是從[這邊](https://www.archlinux.org/mirrorlist/)產生 - 掛載要安裝的磁區 - 使用 bootctl: ```bash= mount /dev/nvme0n1p2 /mnt mkdir /mnt/boot mount /dev/nvme0n1p1 /mnt/boot ``` - 使用 grub: ```base= mount /dev/nvme0n1p2 /mnt mkdir -p /mnt/boot/efi mount /dev/nvme0n1p1 /mnt/boot/efi ``` - 安裝系統所需要的檔案: - 使用 bootctl:`pacstrap /mnt base base-devel linux linux-firmware intel-ucode` - 使用 grub:`pacstrap /mnt base base-devel linux linux-firmware intel-ucode grub efibootmgr` - 設定開機掛載:`genfstab -U -p /mnt >> /mnt/etc/fstab` - 載入 EFI 模組:`modprobe efivarfs` - 進入安裝的系統環境:`arch-chroot /mnt` - 為 root 使用者設定密碼:`passwd` ## 系統設定 - 設定主機名稱:`echo "{{ your-hostname }}" >> /etc/hostname` - 設定時間: ```bash= ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime hwclock --systohc --utc ``` - 設定語系 - 開啟檔案 `/etc/locale.gen` - 將以下的語系取消註解 - `en_US.UTF-8 UTF-8` - `zh_TW.UTF-8 UTF-8` - `zh_TW BIG5` - 重新套用設定:`locale-gen` - 設定語系:`localectl set-locale LANG="en_US.UTF-8"` - 載入相關的模組 - 開啟檔案:`/etc/mkinitcpio.conf` - 找到 `MODULES` 後在裡面加入 `intel_agp i915 nvme` - 套用:`mkinitcpio -p linux` - 開機設定 - 使用 bootctl: - 安裝:`bootctl --path=/boot$esp install` - 設定 loader - 開啟檔案:`/boot/loader/loader.conf` - 內容: ``` default arch timeout 3 editor 0 ``` - 設定 entry - 開啟檔案:`/boot/loader/entries/arch.conf` - 內容: ``` title Arch Linux linux /vmlinuz-linux initrd /intel-ucode.img initrd /initramfs-linux.img options root=PARTUUID={{ UUID }} rw ``` - 取得 UUID:`blkid -s PARTUUID -o value /dev/nvme0n1p2` - 套用設定:`bootctl --path=/boot$esp update` - 使用 grub: - 安裝:`grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug` - 產生設定檔:`grub-mkconfig -o /boot/grub/grub.cfg` :::info 建議做到這邊可以重開機測試看看安裝是否成功,如果要重開請記得完成以下步驟喔! 如果要繼續往下可跳過這邊的步驟直接到 [其他設定](#其他設定) ::: - 補足 wifi-menu 缺少的套件 - 輸入 `wifi-menu` 依照提示補足缺少的套件 - 安裝指令:`pacman -S {{ 套件名稱 }}` - 安裝 dhcpcd:`pacman -S dhcpcd` - 回到 Live USB 環境:`exit` 或是按下 `ctrl+d` - 解除掛載:`umount -R /mnt` - 重開機:`reboot` - 移除隨身碟並且使用硬碟開機 ## 其他設定 :::info 如果你剛剛重開機了請參考上方的方式將網路設定回來喔~ ::: - 開放安裝 `multilib` 中的套件 - 開啟檔案:`/etc/pacman.conf` - 找到 `[multilib]` 取消註解 `[multilib]` 和下方的連結 - 然後更新一下:`pacman -Syu` - 建立一般使用者 - 建立使用者:`useradd -G wheel -s /bin/bash -m {{ 使用者名稱 }}` - 為使用者設定密碼:`passwd {{ 使用者名稱 }}` - 讓這個使用者有能夠透過 `sudo` 提權 - 開始設定:`visudo` - 找到 `%wheel ALL=(ALL) ALL` 並取消註解 - 安裝驅動程式 - 安裝顯卡驅動:`pacman -S xf86-video-intel` - 安裝圖形化元件:`pacman -S xorg-server xorg-xinit` - 安裝觸控板驅動:`pacman -S xf86-input-libinput` - 安裝中文字體:`pacman -S ttf-dejavu wqy-zenhei` - 安裝 gnome:`pacman -S gnome gnome-tweak-tool` - 設定 gnome:`systemctl enable gdm` - 啟動 Network Manager:`systemctl enable NetworkManager` - 安裝中文輸入法:`pacman -S ibus-chewing` :::info 如果你剛剛沒有重開的話記得完成以下步驟喔 - 回到 Live USB 環境:`exit` 或是按下 `ctrl+d` - 解除掛載:`umount -R /mnt` ::: - 重開機 `reboot` ## 錯誤排除 ### Failed to acquire RNG protocol: Not Found ![](https://i.imgur.com/7k7LiHm.png) - 打開檔案:`/boot/loader/loader.conf` - 在最後加入 `random-seed-mode off` 即可 ### 蓋過還原卡開機 在特殊的環境(學校的還原卡)安裝完後會將還原卡開機蓋過去直接進入 Arch 而不是還原卡的開機選單,這時候可以透過 `grub-install` 的 `removable` 參數讓他能順利地被排在還原卡 efi 開機區的後方而不是前面 或是可以透過 efibootmgr 調整 boot order 也可以 ### 開機過 boot loader 後一閃就黑畫面 可能是顯示卡驅動出現問題在開機加入核心參數即可,可參考下方文章來跳過驅動載入: - Disabling modesetting:<https://wiki.archlinux.org/index.php/Kernel_mode_setting#Disabling_modesetting> - Kernel parameters:<https://wiki.archlinux.org/index.php/Kernel_parameters> ## 參考資料 - [我的舊版筆記](https://github.com/arthurc0102/Note/blob/master/Linux/Arch/install-xps-13.md) - [FS#63698 - [systemd] systemd-boot messages](https://bugs.archlinux.org/task/63698) - [Arch Linux UEFI install on NVMe drives](https://webby.land/2017/02/10/arch-linux-uefi-install-on-nvme-drives/) - [Arch Linux Installation and Configuration on UEFI Machines](https://www.tecmint.com/arch-linux-installation-and-configuration-guide/) - [General_troubleshooting#Boot_problems](https://wiki.archlinux.org/index.php/General_troubleshooting#Boot_problems) - [Microcode](https://wiki.archlinux.org/index.php/Microcode) - [Systemd boot](https://wiki.archlinux.org/index.php/Systemd-boot) - [Grub](https://wiki.archlinux.org/index.php/GRUB)