双引导 debian 和 windows 机器上的 grub 引导加载程序损坏

双引导 debian 和 windows 机器上的 grub 引导加载程序损坏

我的机器装有 AV Linux(各种 Debian 10)和 Windows 10。最初我有 Ubuntu 和 Windows,并将 AV Linux 安装在 /dev/sda7 分区中。这破坏了 grub 引导加载程序。

当我启动机器时,我会看到 Grub 2.0 提示符。我还注意到,在 BIOS 启动优先级部分中,给出的选项是 Windows 和“Ubuntu”,即。不是 AV Linux 或 Debian。

Windows 和 AV Linux 都可以,我可以通过启动时出现的 grub 2 提示符启动它们。

我使用以下命令启动 Linux:

set root=(hd0,7)
linux /boot/vmlinuz-5.0.7-rt5av11 root=/dev/sda7
initrd /boot/initrd.img-5.0.7-rtav11
boot

fdisk -l 显示:

Device          Start        End    Sectors   Size Type
/dev/sda1        2048     206847     204800   100M EFI System
/dev/sda2      206848     468991     262144   128M Microsoft reserved
/dev/sda3      468992 1018656447 1018187456 485.5G Microsoft basic data
/dev/sda4  1918676992 1920569343    1892352   924M Windows recovery environment
/dev/sda5  1920569346 1951426562   30857217  14.7G Windows recovery environment
/dev/sda6  1951426563 1953523715    2097153     1G Windows recovery environment
/dev/sda7  1018656768 1918676991  900020224 429.2G Linux filesystem

我创建了目录 /boot/efi 并尝试了各种方法来更新 grub。例如:

sudo mount /dev/sda1 /boot/efi/   
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck --debug /dev/sda 
sudo update-grub2

但我在重新启动时返回到 grub 提示符。我也尝试过 sudo update-grub 。另请注意,grub-install 始终会产生:

grub-install: warning: EFI variables are not supported on this system..

sudo update-grub2 似乎运行正常并产生:

Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-5.0.7-rt5avl1
Found initrd image: /boot/initrd.img-5.0.7-rt5avl1
Found Windows Boot Manager on /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi
Found linux image: /boot/vmlinuz-5.0.7-rt5avl1
Found initrd image: /boot/initrd.img-5.0.7-rt5avl1
done

我安装了 grub-customizer。 Debian、Debian 的高级选项和 Windows 启动管理器都会显示。如果我编辑 Debian 条目,则会在引导顺序字段中看到以下内容:

load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt7'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7  ba95278e-9d8d-4bf0-9a2a-d6fcaf9e88aa
else
  search --no-floppy --fs-uuid --set=root ba95278e-9d8d-4bf0-9a2a-d6fcaf9e88aa
fi
echo    'Loading Linux 5.0.7-rt5avl1 ...'
linux   /boot/vmlinuz-5.0.7-rt5avl1 root=UUID=ba95278e-9d8d-4bf0-9a2a-d6fcaf9e88aa ro  threadirqs transparent_hugepage=never noresume quiet
echo    'Loading initial ramdisk ...'
initrd  /boot/initrd.img-5.0.7-rt5avl1

使用实用程序启动修复生成启动信息文件(该实用程序无法修复问题本身)。请参见:

http://paste.ubuntu.com/p/Vm7PhphxD6/

相关内容