如何将 grub 指向正在运行的 Ubuntu(btrfs!)

如何将 grub 指向正在运行的 Ubuntu(btrfs!)

我在已经安装了 MSFT Windows 和 Ubuntu 18.04 工作版本的笔记本电脑上安装了第二个 Ubuntu。重新启动后,我发现 grub 显示了一个 Ubuntu,而不是两个。这个新版本让我登录。启动是 EFI 启动,在了解情况后,似乎问题在于在 EFI 分区下只创建了一个 /ubuntu 目录。因此 grub.cfg 被覆盖了。作为第一步,我想尝试恢复我的标准 Ubuntu 操作系统。为此,我尝试了几种方法:1- 我安装了 rEFInd。结果表明 rEFInd 会找到所有操作系统,无论它们是否是 EFI 可启动的。rEFInd 现在是我的启动管理器,但它没有神奇地恢复我正在寻找的分区。

2- 我运行启动修复的默认选项和高级选项但无济于事。

3- 我尝试过 chroot 如何将 GRUB 重新安装到 EFI 分区? 按照引导修复实时磁盘中的所有说明操作后,我得到了一个最终错误,在尝试 grub-isntall 后我未能克服该错误:/boot/grub 没有这样的设备(您是否安装了 /dev?——根据说明,我这样做了)。

我现在正尝试直接修改 grub.cfg 以指向旧分区。那里有一个带有 root hd0,gpt3 的 fs UUID 指令,我想对其进行调整,但不清楚如何操作。

任何帮助,将不胜感激。

最好的

答案1

非常感谢 Pedro de Paula 多次为我指明正确的方向。

我设法通过 chrooting 恢复了丢失的操作系统。上次尝试失败的原因是文件系统是 btrfs,它与 extxxx 有细微的差别。

整个想法在这里得到很好的解释:

http://logan.tw/posts/2015/05/17/grub-install-and-btrfs-root-file-system/ 我严格遵循这些说明并且它有效。

希望能帮助到你。

答案2

当您从实时 USB 启动它时,运行 cfdisk,它显示 2 个分区还是 1 个?

重启

从 USB 或 CD 运行

选择打开而不是安装。

他们这样做:

sudo apt install cfdisk

查看是否有 2 个 ext* 分区

看到分区名称后,您可以重新启动并进入安全模式。

这篇文章解释了你之后需要做什么:

启动时进入 (initramfs) prompts/busybox

基本上一旦进入(initramfs)exit 就会显示启动时的问题

现在做

fsck /dev/sda* -y

通常是 sda1 或 2,检查 initramfs 以查看是哪一个。

输入reboot就可以了

编辑:

对于那些有类似问题的人:

首先,如果你启动,grub>尝试执行ls

这会给你类似的东西grub> ls (hd0) (hd0,msdos2) (hd0,msdos1)

从这里开始,你必须知道一些事情,首先,你的 linux 启动是什么,你将寻找 EXT2、EXT3 和 EXT4 格式的设备。它们将从 sda1 开始命名,依此类推,例如ext4 /dev/sda1

利用这些信息,您可以做以下几件事:

如果您从 (initramfs)- 启动时,您将需要等待很长时间才能在启动错误后得到此提示,您可以在此响应的未编辑版本上执行上述步骤,否则,如果它不起作用,请按照以下步骤操作:

在识别您的启动表、名称和分区之后(可以使用 fdisk 或 cfdisk 完成),您将需要启动grub>并执行ls,从它显示的列表中,您需要找出您的启动在哪个分区中,方法是:例如cat (hd0,1)/etc/issue,对每个类似于“(hd0) (hd0,msdos2) (hd0,msdos1)”的输出执行这些操作,从这里您将寻找输出,它将类似于您的 ubuntu 版本:“Ubuntu 14.04 LTS”。

一旦你在所在的分区中有资金,grub>你可以尝试以下示例:

set prefix=(hd0,1)*/boot/grub
set root=(hd0,1)*
insmod normal grub 
normal 
insmod linux grub
linux /boot/*
root=/dev/sda1* grub 
initrd /boot/*
boot

用您的分区和启动路径替换 *。

希望这可以帮助。完整信息链接:

如果您有 BTRFS 分区:

http://logan.tw/posts/2015/05/17/grub-install-and-btrfs-root-file-system/

https://wiki.archlinux.org/index.php/btrfs#Missing_root

和 grub 常规完整指南grub rescue>

https://www.linux.com/learn/how-rescue-non-booting-grub-2-linux%20%20

一路顺利。

相关内容