我的笔记本电脑上安装了 Windows 10。昨天我将其卸载了。问题是我还格式化了 sda1 分区以全新安装 grub。但是当我尝试 ubuntu 修复工具时它失败并给出以下摘要。
http://paste.ubuntu.com/p/cwQ5GBvdrB/
当我尝试重新启动时,grub2 命令行没有直接启动到 ubuntu。
答案1
至少有两种方法可以解决这个问题:
1.直接使用 grub 命令行
Grub 和 grub-rescue 使用的命令行语法一开始可能有点令人讨厌和麻烦,但了解至少一些基本知识以应对这种危急情况是个好主意:
- 首先,设置长命令的分页
grub>set pager=1
- 接下来,列出可用的卷/分区
grub>ls
作为输出,您将获得类似以下内容的内容:
(hd0) (hd0,msdos1) (hd0,msdos2) (hd0, msdos3)
然后可以检查每一个 msdos[1-3] 分区
ls
,最终其中一个分区将与您的 Linux 操作系统的目录结构相匹配。grub>ls (hd0,2) bin/ boot/ cdrom/ dev/ etc/ home/ lib/ lib64/ media/ mnt/ opt/ proc/ root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ initrd.img initrd.img.old vmlinuz vmlinuz.old
一旦找到您的 Linux 分区,您必须设置前缀,然后将该分区设置为根。
grub>set prefix=(hd0,2)/boot/grub grub>set root=set root=(hd0,2)
然后是
linux
和initrd
命令,root=/dev/sdaX 应该相应地更改,其中 X 是您的分区号,这里我使用 2 作为示例。[version] 将对应于您的内核版本。如果您有vmlinuz
和initrd
符号链接/vmlinuz
,那么/initrd.img
为了简单起见,您可以直接使用这些作为路径。grub>linux /boot/vmlinuz-[version] root=/dev/sda2 grub>initrd /boot/initrd.img-[version] grub>boot
这将让你进入 Linux 操作系统,然后继续重建 grub
2.使用 GParted 等实时救援磁盘。
一旦启动,您应该可以访问一个终端,可以使用以下命令重建并将更正的 grub 安装到您的硬盘驱动器。
更新并安装正确的 grub
- 从终端执行:
$sudo grub-mkconfig -o /boot/grub/grub.cfg
或者
$sudo update-grub
- 然后将 grub 安装到硬盘(而不是单独的分区),这里我再次使用 /dev/sda 作为示例。
$sudo grub-install /dev/sda
这就是全部了。这些命令在 StackExchange 上重复了几十次,但我发现当有人询问时简单地重写它们是一个好主意,因为这是我永远不想忘记的事情之一。