[Arch][Linux] grub 引导失效修复
一 制作U盘启动盘
下载 Arch 系统镜像(附清华源),准备一个U盘,将其刻录成启动盘。
-
Linux 下,运用
dd
命令$ dd bs=4M if=/path/to/archlinux.iso of=/dev/sda status=progress oflag=sync
-
Windows 下,使用软件 Refus 以
dd
方式刻录成启动盘 -
Windows 下,使用软件 Ventory 制作启动盘(推荐!!!)
利用 Ventoy,我们无需反复地格式化U盘,只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件直接拷贝到U盘里面就可以启动,无需其他操作,且支持一次性拷贝很多个不同类型的镜像文件。
二 挂载分区
关机启动到U盘,用 lsblk
或 fdisk -l
查看硬盘分区情况,并按顺序挂载 /
, /boot/EFI
, /home
等。
三 修复系统
1. 重建fstab文件(可选)
$ mv /mnt/etc/fstab /mnt/etc/fstab.bac
$ genfstab -U /mnt > /mnt/etc/fstab
$ ls -l /dev/disk/by-uuid # 查看硬盘 uuid
$ cat /mnt/etc/fstab # 对应 uuid 查看重置分区配置文件是否正常
2. Arch-chroot 到受损系统并进行修复
$ arch-chroot /mnt
[root@archiso] $ pacman -S linux
[root@archiso] $ pacman -S linux-lts # lts内核
[root@archiso] $ grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=GRUB
# 若要修改 grub 参数: vim /etc/default/grub
[root@archiso] $ grub-mkconfig -o /boot/grub/grub.cfg
[root@archiso] $ exit
$ umount -R /mnt
$ reboot
3. 重建 Windows 引导
# 需要在 /etc/default/grub 中加入一行 GRUB_DISABLE_OS_PROBER=false
os-prober
grub-mkconfig -o /boot/grub/grub.cfg
grub 引导修复完毕。
如果上述操作依旧无法解决问题,尝试降级内核
pacman -U /var/cache/pacman/pkg/linux-5.0.12.arch2-1-x86_64.pkg.tar.xz
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭