卡在 GRUB 命令行

Khi*_*ore 13 boot

这是我看到的:

GNU GRUB version 2.02~beta2-9ubuntu1

Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists possible device or file completions.

grub> _
Run Code Online (Sandbox Code Playgroud)

我现在该怎么办?

小智 16

我从Unix 论坛中 eli 的回答中复制

原因:启动过程找不到根分区

解决方案

请输入 ls 这将显示所有分区,然后输入个人

ls (hd0,1)/
ls (hd0,2)/ 
Run Code Online (Sandbox Code Playgroud)

......等等,直到你发现像

(hd0,1)/boot/grub 或者 (hd0,1)/grub

在 EFI 的情况下,

(hd0,1)/efi/boot/grub或者(hd0,1)/efi/grub...现在相应地设置启动参数,只需输入您的号码

set prefix=(hd0,1)/grub
set root=(hd0,1)
insmod linux
insmod normal
normal
Run Code Online (Sandbox Code Playgroud)

现在它将启动,请打开终端并输入此命令行

sudo update-grub ...它应该在下次正确启动。如果没有,您必须再次执行这些步骤。在其他情况下,您可能需要重新修复或安装 grub,请查看这篇文章

我的软件:Windows 10 和 Ubuntu 16.04 双启动

硬件:HP Pavilion 15t

  • 而不是 `(hd0,1)/efi/boot/grub` ;我看到 `(hd0,1)/efi/boot/` 有三件事:`bootx64.efi, fbx64.efi, mmx64.efi` --- 没有 grub 目录 (5认同)
  • 这对我有用,但对后续启动不起作用(即使在运行“sudo update-grub”之后) (2认同)

小智 10

你的引导加载程序有问题。您应该初始化内核。首先使用 command ls,然后根据它调整以下命令。在hd0写你的磁盘和1写你的号码的地方。

grub> set root=(hd0,1)
grub> linux /vmlinuz-4.4.0-38-generic 
grub> initrd /initrd.img-4.4.0-38-generic
grub> boot
Run Code Online (Sandbox Code Playgroud)

如果您不知道您的内核版本是什么,请编写:

grub> linux /vmlTab
grub> initrd /inTab

仅第一次尝试 grub> boot


小智 7

不是永久修复,但您应该可以通过退出来继续:

grub> exit
Run Code Online (Sandbox Code Playgroud)

这将继续进入 grub 菜单(如果您有双引导系统),您可以在其中选择要引导的操作系统,或者直接进入您的主操作系统。这是使用 UEFI 引导加载程序双重引导系统时的常见问题。

  • 就我而言,这让我回到终端,第二个“退出”启动到主操作系统。 (3认同)