TL;DR:使用EndeavourOS的LiveCD可以与官方ISO一样安装Arch Linux,还能享受Gparted、浏览器、文字编辑器等图形界面软件的便利。
在数次尝试中,使用Arch Linux官方LiveCD的tty界面安装系统总是令我感觉十分不便,或许我还是需要一个带图形界面的安装器,但又不愿意抛弃命令行安装方法。然而,虽然Arch Linux并没有提供图形化LiveCD,但是与其共享同一个软件库的EndeavourOS有啊!LiveCD里带的工具也算比较全乎。
理论存在,开始实践。
分区
分区反倒是我觉得最困难的。
这一步要先考虑好将内核镜像装到EFI分区还是系统分区 /boot里面(对应 EFI 分区的挂载点)。前者会多花至少100MB空间,但不管怎么样,都应该先保证EFI分区空间足够。联想给了一个仅260MB的EFI分区(/dev/nvme1n1p1),而且后面跟着的就是MSR和Windows系统分区,不敢动,所以选择后者,又不是不能用.jpg。
然后可以先将Arch的系统分区分出来了。我分了一个Btrfs分区(/dev/nvme0n1p2),有两个子卷 @ 和 @home,分别挂载到 / 和 /home。分区操作很容易使用Gparted搞定,然后在终端中输入:
sudo btrfs subvolume create /mnt/@
sudo btrfs subvolume create /mnt/@home
sudo umount -R /mnt
sudo mount -o subvol=@ /dev/nvme1n1p2 /mnt
sudo mount --mkdir -o subvol=@home /dev/nvme1n1p2 /mnt/home
sudo mount /dev/nvme1n1p1 /mnt/efi
1
2
3
4
5
6
|
sudo btrfs subvolume create /mnt/@
sudo btrfs subvolume create /mnt/@home
sudo umount -R /mnt
sudo mount -o subvol=@ /dev/nvme1n1p2 /mnt
sudo mount --mkdir -o subvol=@home /dev/nvme1n1p2 /mnt/home
sudo mount /dev/nvme1n1p1 /mnt/efi
|
这时候带一个桌面环境的LiveCD的优势又体现出来了:可以一边用Gparted看分区,一边在终端里操作。
安装
然后就是正常的安装流程了。换完源之后进入root账户,然后:
pacstrap -K /mnt base linux linux-firmware nano intel-ucode btrfs-progs networkmanager iwd man-db man-pages # 每人需要的包不同
genfstab -U /mnt >> /mnt/etc/fstab
1
2
|
pacstrap -K /mnt base linux linux-firmware nano intel-ucode btrfs-progs networkmanager iwd man-db man-pages # 每人需要的包不同
genfstab -U /mnt >> /mnt/etc/fstab
|
建议在生成完fstab之后检查一下,确定btrfs的子卷挂载点是对的。然后就是chroot进入新系统,设置时区和硬件时间:
arch-chroot /mnt
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
1
2
3
|
arch-chroot /mnt
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
|
以及本地化、主机名、密码等等,参考Arch Wiki就行了,不要忘了。也可以先enable一下NetworkManager和iwd的service。
然后是引导器,我使用rEFInd,先按照Wiki中的步骤安装即可,会自动添加Btrfs驱动。注意其chroot环境下会添加LiveCD的分区信息(而非新系统的),所以不如全图图掉,从 Arch Wiki 示例上换个新的 /boot/refind_linux.conf(chroot路径),以下配置已加入Btrfs子卷配置。
"Boot using default options" "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw rootflags=subvol=@ add_efi_memmap initrd=@\boot\intel-ucode.img initrd=@\boot\amd-ucode.img initrd=@\boot\initramfs-%v.img"
"Boot using fallback initramfs" "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw rootflags=subvol=@ add_efi_memmap initrd=@\boot\intel-ucode.img initrd=@\boot\amd-ucode.img initrd=@\boot\initramfs-%v-fallback.img"
"Boot to terminal" "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw rootflags=subvol=@ add_efi_memmap initrd=@\boot\intel-ucode.img initrd=@\boot\amd-ucode.img initrd=@\boot\initramfs-%v.img systemd.unit=multi-user.target"
1
2
3
|
"Boot using default options" "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw rootflags=subvol=@ add_efi_memmap initrd=@\boot\intel-ucode.img initrd=@\boot\amd-ucode.img initrd=@\boot\initramfs-%v.img"
"Boot using fallback initramfs" "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw rootflags=subvol=@ add_efi_memmap initrd=@\boot\intel-ucode.img initrd=@\boot\amd-ucode.img initrd=@\boot\initramfs-%v-fallback.img"
"Boot to terminal" "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw rootflags=subvol=@ add_efi_memmap initrd=@\boot\intel-ucode.img initrd=@\boot\amd-ucode.img initrd=@\boot\initramfs-%v.img systemd.unit=multi-user.target"
|
这时候图形界面的另一个优点就体现出来了,可以直接从Arch Wiki里方便地复制内容。这里的PARTUUID可以用 blkid 查看,输入Btrfs分区的UUID即可(子卷的你也找不到啊)。另外不要忘了针对性地更改 /efi/EFI/refind/refind.conf(chroot路径),以检测Arch Linux initramfs和Btrfs子卷。
确定步骤都正确走完了的话,就可以重启了。rEFInd会自动把自己设为默认的。
后续工作
重新启动后当然是tty了,用NetworkManager连上网之后,就可以装些别的了。我装了这些:
sudo pacman -S gnome sudo vi adobe-source-han-sans-otc-fonts
1
|
sudo pacman -S gnome sudo vi adobe-source-han-sans-otc-fonts
|
仅供参考,有需要的自己装就行。