拿到一台 Dell XPS 13 9350,在安裝 Arch Linux 時總體順利,但有一些小問題,在此記一下備忘。
制作引導優盤
將下載的 Arch Linux ISO 鏡像文件 archlinux-2016.05.01-dual.iso 校驗無誤後,使用 dd
寫到優盤。因我的優盤在系統識別為 /dev/sdb
,故其命令為:
dd if=archlinux-2016.05.01-dual.iso of=/dev/sdb bs=4M status=progress && sync
引導 Arch Linux
在引導之前按 F12
進入 BIOS 設置,關掉 Secure Boot,否則會報找不到 loader.efi 的錯誤。同時,將 SATA Operation 設置為 AHCI,若不然則無法識別 SSD 磁盤。
連接 WiFi
當引導完畢進入 shell 後,執行以下命令來連接 WiFi:
wifi-menu
對磁盤分區
鑒於 GPT 分區表比 MBR 更有優勢,在此選擇 UEFI/GPT 的引導及分區方案。使用 parted
可以對磁盤進行分區操作:
parted /dev/nvme0n1
先刪掉原分區,然後根據需要創建新的分區。我的分區方案如下,第一個分區用於 UEFI 引導,第二個作為 / 分區,最後一個用於 /home。
Device Start End Sectors Size Type /dev/nvme0n1p1 2048 1050623 1048576 512M EFI System /dev/nvme0n1p2 1050624 84934655 83884032 40G Linux filesystem /dev/nvme0n1p3 84934656 500117503 415182848 198G Linux filesystem
創建完後別忘了將第一分區設置 boot 標志。
mkpart ESP fat32 1MiB 513MiB set 1 boot on mkpart primary ext4 513MiB 40.5GiB mkpart primary ext4 40.5GiB 100%
格式化分區
分別將三個分區格式化需要的文件系統類型:
mkfs.fat -F32 /dev/nvme0n1p1 mkfs.ext4 /dev/nvme0n1p2 mkfs.btrfs /dev/nvme0n1p3
完成後再掛載:
mount /dev/nvme0n1p2 /mnt mkdir -p /mnt/{boot,home} mount /dev/nvme0n1p1 /mnt/boot mount /dev/nvme0n1p3 /mnt/home
安裝基礎包
使用 pacstrap
腳本來安裝基礎系統:
pacstrap -i /mnt base base-devel
生成 fstab
使用 genfstab
來生成 fstab 文件:
genfstab -U /mnt >> /mnt/etc/fstab
chroot
為了進行後續配置,需要 chroot:
arch-chroot /mnt /bin/bash
設置區域和時區
從 /etc/locale.gen
選取需要的區域,去掉開頭的注釋即可,然後使用 locale-gen
來生成。同時,創建 /etc/locale.conf
文件,並將 LANG
設為跟所選區域一致。
使用 tzselect
來設置時區。
設置 hostname
將 /etc/hostname
的內容設置為喜歡的主機名。
安裝引導程序
這裡選擇使用 systemd-boot
來完成 UEFI 引導:
bootctl install
同時,創建 /boot/loader/entries/arch.conf
引導條目:
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=PARTUUID=06d1a377-976d-47db-a907-9bf03bb8519b rootfstype=ext4 rw pcie_aspm=force i915.enable_rc6=7
其中 PARTUUID 可通過 blkid
獲得。
另外,/boot/loader/loader.conf
包含內容為:
timeout 3 default arch
設置 root 密碼
使用 passwd
來設置 root 密碼。
重啟
執行 exit
退出 chroot 環境,同時卸載分區並重啟系統:
umount -R /mnt reboot
安裝其它包及配置環境
為了避免手動操作,我利用 Ansible 將安裝各種常用軟件及配置環境的過程自動化,只需執行:
ansible-playbook site.yml
可通過 GitHub 獲取 archstrap。
→ Arch Linux