![尝试运行 grub 恢复](https://linux22.com/image/854455/%E5%B0%9D%E8%AF%95%E8%BF%90%E8%A1%8C%20grub%20%E6%81%A2%E5%A4%8D.png)
你好,我正在关注这个: 如何在 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 安装页面学习如何为将来的安装做正确的事,或者你应该决定放弃现在所拥有的一切并重新开始。