制作启动盘、进入并联网
参见 使用 ArchInstall 安装 Arch Linux 的“安装前准备”一节。
挂载分区、进入系统
- 如果不了解你的硬盘分区,可以执行以下命令:
#
lsblk -f - 先挂载根目录所在的分区:
- 非 BtrFS 分区
#
mount /dev/[根分区] /mnt - 如果根分区使用 BtrFS,需要知道子卷名,如果没有子卷可以跳过此步
- 可以通过先挂载 BtrFS,然后通过以下命令之一查看子卷名
#
ls /mnt#
btrfs subvolume list /[挂载点] - 随后解除 /mnt 的挂载并重新挂载对应的子卷
#
umount /mnt#
mount /dev/[根分区] -t btrfs -o subvol=[子卷名] /mnt
- 可以通过先挂载 BtrFS,然后通过以下命令之一查看子卷名
- 非 BtrFS 分区
- 随后挂载其他分区:
- 挂载启动分区
#
mount /dev/[启动分区] /mnt/boot - 查看先前的挂载方式,有助于你的回忆
#
cat /mnt/etc/fstab - 如果回忆起有其他分区,请继续挂载
- 挂载启动分区
- 可以将此时的挂载方式写入原系统:
#
genfstab -U /mnt > /mnt/etc/fstab - 随后就可以进入原系统了
#
arch-chroot /mnt
修复一些可能导致无法进入的问题
- 如果忘记
root
用户密码,可以执行以下命令:#
passwd - 同时,还可以更新一下系统的软件包,说不定有用呢:
#
pacman -Syyuu- 如果更新缓慢,可以换源
#
pacman -S reflector#
reflector --verbose --country China --sort rate --save /etc/pacman.d/mirrorlist- 如果提醒无法锁定数据库,可以删除锁文件
#
rm /var/lib/pacman/db.lck- 如果提醒某文件已存在,可以强制覆盖
#
pacman -Syu --overwrite "*"
修复引导
- 安装 Linux 包可以触发 mkinitcpio
#
pacman -S linux - 如果使用 systemd-boot,请执行以下命令
#
bootctl install- 使用此命令检测 EFI 引导项和 Boot Loader 配置
#
bootctl list- 如果屏幕显示不全,可以使用交互模式,按 q 退出
#
bootctl - 如果使用 grub,请执行以下命令
#
grub-install- 备用命令,也可以自行在网上搜索
#
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub
为 systemd-boot 添加引导项
如果 bootctl list
显示没有 Arch Linux,那么需要写入以下文件:
title Arch Linux (linux)
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=PARTUUID=692afe0d-e1d7-4e0f-970f-1ed04e0c07e9 zswap.enabled=0 rootflags=subvol=@ rw rootfstype=btrfs
请注意:
- PARTUUID 和 UUID 不同,
lsblk -f
命令显示的是 UUID,你可以通过lsblk -o+UUID,PARTUUID
发现两者的区别。- 查看 PARTUUID 并追加到文件中
#
blkid -s PARTUUID -o value /dev/[根分区] >> /boot/loader/entries/arch.conf - 查看 UUID 并追加到文件中,需要
option
中使用root=UUID=
#
blkid -s UUID -o value /dev/[根分区] >> /boot/loader/entries/arch.conf
- 查看 PARTUUID 并追加到文件中
initrd
中需要添加对应 CPU 的微码,没有的话可以跳过。options
中设置合适的rootfstype
和rootflags
,有子卷时需要设置rootflags=subvol=[子卷名]
。
重启
按 Ctrl+Alt+Delete 直接重启。
更规范的方式是输入 exit
或按 Ctrl+D 退出 chroot 环境,然后执行 reboot
命令重启。
评论区
评论加载中...