Skip to content

1 引导损坏修复

标签
Bootloader
Linux
Grub
rEFInd
字数
640 字
阅读时间
3 分钟

1 检查硬盘连接和启动顺序

  • 检查硬盘连接:确保Linux和Windows所在的硬盘都连接良好,并在BIOS/UEFI中被正确识别。
  • 调整启动顺序:进入BIOS/UEFI设置,确保Linux安装所在的硬盘是第一个启动设备。

2 修复引导安装

可能是GRUB安装过程中出错,导致引导无法正确加载。尝试重新安装或修复GRUB。

2.1 进入Live CD/USB修复

btrfs

  • btrfs 的根目录在 /@
  • 所以 boot 应该挂载到 /mnt/@/boot

使用Arch Linux的Live CD/USB进入系统并挂载你的Linux系统分区:

bash
mount /dev/sdaX /mnt  # 假设Arch Linux安装在/dev/sdaX
mount /dev/sdaY /mnt/boot/efi  # 如果是UEFI系统,挂载EFI分区

将系统根目录切换到你的安装环境:

bash
arch-chroot /mnt

2.2 重新安装 rEFInd

如果没有安装就先安装 rEFInd

sh
sudo pacman -S refind

重新进行设置

sh
sudo refind-install

2.3 重新安装 GRUB

  • BIOS系统

    bash
    grub-install --target=i386-pc /dev/sda
  • UEFI系统

    bash
    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

重新生成GRUB配置:

bash
grub-mkconfig -o /boot/grub/grub.cfg

3 禁用Fast Boot(快速启动)

如何在 Windows 11 中打开或关闭快速启动

4 检查Secure Boot

  • 禁用Secure Boot:Secure Boot可能会阻止GRUB启动。进入BIOS/UEFI设置,尝试禁用Secure Boot功能。

5 使用efibootmgr检查和修复引导顺序

如果你在UEFI系统上,使用efibootmgr工具检查和设置GRUB的引导顺序:

bash
efibootmgr

确保GRUB在启动顺序中的位置高于Windows Boot Manager。如果需要更改启动顺序:

bash
sudo efibootmgr -o 0001,0000  # 根据你的具体启动项编号调整

6 更新系统和GRUB包

在chroot环境中或正常进入Linux后,确保所有系统包和GRUB已更新:

bash
sudo pacman -Syu

再重新生成GRUB配置并重启。

7 检查和修复分区表

  • 检查分区表:使用fdiskgdisk工具检查分区表的健康状况。某些情况下,分区表损坏会导致引导问题。
  • 修复EFI分区:对于UEFI系统,确保EFI分区格式正确,并且GRUB的引导文件在正确的位置。

8 检查日志

如果问题依然存在,可以检查系统日志,了解更详细的错误信息:

bash
journalctl -xb