自从安装 Ubuntu 18.04 以来,我一直卡在 grub 提示符下。我尝试了所有能在网上找到的方法,但还是无济于事。
这是从 USB 启动的 Ubuntu 18.04 的全新安装。我安装了 17.10,但在新安装期间选择覆盖旧安装。由于我是双启动,因此我还有一个 Windows 10 分区。
安装顺利进行,但现在当我启动机器时,我最终会出现提示grub>
。
如果我输入 exit,Ubuntu 启动时不会出现任何问题。
如果我从 BIOS 中手动选择打开 Windows 的驱动器,则加载不会出现任何问题。
我尝试使用 grub-rescue 磁盘工具,但它说无法运行,因为它不在 EFI 模式。
诊断的输出显示:
=================== Suggested repair
The default repair of the Boot-Repair utility would purge (in order to fix packages) and reinstall the grub-efi-amd64-signed of nvme0n1p7, using the following options: nvme0n1p1/boot/efi,
Additional repair would be performed: unhide-bootmenu-10s fix-windows-boot use-standard-efi-file
我尝试使用以下命令安装 grub:
sudo grub-install --efi-directory=/dev/nvme0n1p1/
但是我收到一个错误:
Installing for i386-pc platform.
grub-install: error: install device is not specified.
这是 NVMie 驱动器。我有点困惑。还有什么我可以尝试的吗?
答案1
我能够解决我的问题(尽管我使用的是 EFI 而不是传统问题),通过从安装拇指驱动器启动、选择救援模式并在 /dev/sda 上重新安装 grub。
答案2
在 CSM/传统模式下重新安装 Ubuntu
有人对您的安装是 UEFI 还是 CSM(传统 BIOS 模式)感到困惑。最近的评论表明是后者。使用此参考:
将 Ubuntu 转换为传统模式
笔记:仅使用此过程将 UEFI 模式的 Linux 安装转换为以 BIOS/CSM/旧模式启动。如果某些硬件在 UEFI 模式下无法正常工作,则可能需要进行此类转换。(视频卡是常见的问题来源。)当 Windows 以 UEFI 模式启动时,转换为以 BIOS/CSM/旧模式启动会使启动过程更加尴尬——您需要使用计算机的内置启动管理器在操作系统之间切换,而某些计算机的启动管理器非常差,因此这可能无法实现。
如果 Ubuntu 安装在 GPT 磁盘上(您可以通过“sudo parted -l”命令检查),请使用 Gparted 在其磁盘的启动位置创建 BIOS-Boot 分区(1MB、未格式化的文件系统、bios_grub 标志)。
启动 Boot-Repair,点击“高级选项”,转到“GRUB 位置”选项卡。
取消勾选“单独的 /boot/efi 分区”选项
单击“应用”按钮。
设置您的 BIOS,以便它以传统模式启动 HDD(请参阅上面的“以 UEFI 或传统模式设置 BIOS”段落)。
以下是原始答案
您正在尝试安装grub
到根分区,但它需要进入 EFI 分区,该分区通常约为 500 MB。完整说明可用这里
基本上正确的语法是:
sudo grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB
答案3
要安装 grub,您需要为grub-install
命令指定正确的参数。
这也是我大约一小时前在启动到提示符后重新安装 grub 时使用的方法:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader=ubuntu --boot-directory=/boot/efi/EFI/ubuntu --recheck
假设您已将启动分区挂载到 /boot,并将 EFI 分区挂载到 /boot/efi,则上述命令应该可以工作,只要 EFI 分区上有足够的空间容纳 grub。
如果您要安装到 USB 驱动器并且不想将 grub 安装到 PC 的 EFI 分区,请确保 USB 驱动器上有一个 EFI 分区,并且该分区已安装到 /boot/efi 而不是 PC 的分区。
答案4
如果您的系统以传统模式启动并且 GRUB 是为 EFI 目标安装的,则它将无法工作。
我建议如下:
如果文件夹的设备/boot
已正确安装(或与 相同/
),请尝试以下命令:
grub-install --boot-directory=/boot --target=i386-pc /dev/nvme0n1
假设/dev/nvme0n1
是 NVIDIA SSD 磁盘(全部,不是分区)。确保备份您的数据。