尝试运行 grub 恢复

尝试运行 grub 恢复

你好,我正在关注这个: 如何在 Ubuntu 实时光盘中安装 Boot-Repair 工具?

但最后我收到以下错误。

#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"



/boot/efi detected in the fstab of sda9: UUID=F2C9-69DB  (sda1)

*******lspci -nnk | grep -iA3 vga
00:02.0 VGA compatible controller [0300]: Intel Corporation Haswell-ULT Integrated Graphics Controller [8086:0a16] (rev 09)
Subsystem: ASUSTeK Computer Inc. Device [1043:13fd]
Kernel driver in use: i915
00:03.0 Audio device [0403]: Intel Corporation Haswell-ULT HD Audio Controller [8086:0a0c] (rev 09)
*******

grub-install: info: executing modprobe efivars 2>/dev/null.
grub-install: info: Looking for /sys/firmware/efi ...
grub-install: info: ... not found. Looking for /proc/device-tree ...
grub-install: info: ... not found.
grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.
,.
GRUB too old for SecureBoot. Please report this message to [email protected]

chroot /mnt/boot-sav/sda9 efibootmgr -v
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.

chroot /mnt/boot-sav/sda9 uname -r
Kernel: 3.13.0-24-generic
WinEFI detected. Do you want to activate [Backup and rename Windows EFI files]? yes (if any choice fails, please retry with the other)

Reinstall the grub-efi of sda9
grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.
grub-install : exit code of grub-install :1
Error: no grub*.efi generated. Please report this message to [email protected]

Add /mnt/boot-sav/sda9/boot/efi efi entries in /mnt/boot-sav/sda9/etc/grub.d/25_custom
Adding custom /mnt/boot-sav/sda9/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
Adding custom /mnt/boot-sav/sda9/boot/efi/EFI/Boot/bootx64.efi
sda1/bootx64.efi already added
sda1/bootmgfw.efi already added

---- Grub-install verbose
/usr/sbin/grub-install: 1: /usr/sbin/grub-install: cannot create n\F0\F0TT@T@DDP\E5td\8C\D2\8C\D2L\8C\D2Ll9l9Q\E5tdR\E5td\F0=\F0=n\F0=n/lib64/ld-linux-x86-64.so.2GNUGNUm: Directory nonexistent
+ ELF @@@@@@\F8\F888@8@@@d:d: \F0=\F0=n\F0=n\9E{ \81 
/usr/sbin/grub-install: 1: /usr/sbin/grub-install: ELF: not found
/usr/sbin/grub-install: 2: /usr/sbin/grub-install: Syntax error: ")" unexpected
--------
/usr/sbin/grub-install : exit code of grub-install :2
---- End of grub-install verbose


chroot /mnt/boot-sav/sda9 efibootmgr -v
Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.

chroot /mnt/boot-sav/sda9 update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.13.0-24-generic
Found initrd image: /boot/initrd.img-3.13.0-24-generic
Found Windows Recovery Environment (loader) on /dev/sda2
Found Windows 8 (loader) on /dev/sda4
Unhide GRUB boot menu in sda9/boot/grub/grub.cfg

An error occurred during the repair.

You can now reboot your computer.


You may want to retry after deactivating the [Backup and rename Windows EFI files] option.

The boot of your PC is in Legacy mode. You may want to retry after changing it to EFI mode.

答案1

人们在基于 EFI 的计算机(例如绝大多数搭载 Windows 8 的计算机)上尝试双启动 Linux 时遇到的最大问题就是在固件中启用 BIOS/CSM/旧版支持。套用 Nancy Reagan 的话,对 BIOS/CSM/legacy 支持说“不”!!!启用该支持有助于在早期克服障碍,但随后又会产生多个新障碍。最后,您需要弄清楚如何在没有该支持的情况下启动 Linux,因此启用它只会增加工作量。(此规则有例外,但很少见,必须通过实验逐案发现。)请注意,禁用安全启动有时是必要的,因此如果您已这样做,请不要重新启用它 - 至少现在不要。

话虽如此,你显然犯了这个早期的错误,所以现在你必须改正它。为此,你应该首先进入固件并禁用 BIOS/CSM/旧版支持。(具体如何执行此操作因机器而异,但你可能从一开始就更改了它,所以你可能记得你更改了什么。)

在禁用 BIOS/CSM/旧版支持的情况下,您必须为 Linux 安装 EFI 模式引导加载程序。有几种方法可以做到这一点,但最简单的两种是:

  • 下载我的 USB 闪存驱动器或 CD-R 版本的rEFInd 启动管理器,从中准备一个启动介质,然后启动它。rEFInd 应该为您提供启动 Windows 和 Ubuntu 的选项。测试两者以确保您可以启动这两个操作系统。如果可以,请启动到 Ubuntu 并安装 Debian 软件包版本的 rEFInd。这会将其设置为您的默认启动管理器,使您无需 USB 驱动器或 CD-R 即可从 rEFInd 启动任一操作系统。请注意,此方法要求至少在最初禁用安全启动。(您可以稍后重新启用它,但这可能需要克服一些额外的困难
  • 从任何可以启动的 Linux 安装(可能是实时 CD 或 USB 驱动器)重新运行 Boot Repair 实用程序。禁用 BIOS/CSM/旧版支持后,Linux 应在 EFI 模式下运行,这应启用 Boot Repair 以使用efibootmgr,这是正确修复安装所必需的。运气好的话,当您重新启动时,GRUB 将出现并为您提供启动 Ubuntu 或 Windows 的选项。不幸的是,您更相信这种方法——通常它可以工作,但有时它没有帮助,在极少数情况下它会使情况变得更糟。

你可能想读我的 EFI 模式 Linux 安装页面学习如何为将来的安装做正确的事,或者你应该决定放弃现在所拥有的一切并重新开始。

相关内容