我一直尝试使用 Ubuntu 的“磁盘”程序来创建我朋友笔记本电脑上的分区映像,然后恢复它们,但没有成功。我将备份保存到外部硬盘上,然后删除笔记本电脑上的所有分区,创建具有原始字节数的空分区,并从外部硬盘恢复映像,但 Windows 甚至无法找到自己的引导程序,所以我无法启动。
所以现在我尝试一些不同的东西。她反正也不用 Windows,所以我将保留 Windows 分区,并选择 sda7 来安装 Ubuntu 16.04 引导加载程序。
现在,在 BIOS 中,我可以看到一个单独的 Windows 引导加载程序和我选择为引导加载的受信任 UEFI 文件的 Ubuntu grub64 文件。所以现在她有一个双启动系统。
现在我想尝试创建 sda7 的克隆(使用 Ubuntu 的“磁盘”应用程序),这样即使我删除分区 sda7、sda5 和 sda6,然后重新创建它们并恢复 sda7 的克隆,我应该能够从 BIOS 中选择 sda7 的引导加载程序作为可信的引导加载程序并像以前一样拥有双启动系统。
但在此之前,我想验证引导加载程序是否真的在 sda7 中。我尝试grep -r "grub" .
从根文件夹执行此操作,但这可能是错误的内容,所以你能帮忙吗?我如何确保引导加载程序在 sda7 中?那些文件是什么?
答案1
您的 UEFI bios 运行的引导加载程序不是从 /dev/sda7 加载的,而是从您的 EFI 分区 /dev/sda2 加载的。您当前的系统已将此分区挂载在 /boot/efi/。以 root 身份搜索此分区以查找 grub 二进制文件和 grub cfg 文件。
此 cfg 文件将 grub 指向您的启动分区,然后指向另一个自动生成的 cfg 文件(您可以在 /boot/grub/grub.cfg 中看到)。此 cfg 文件包含用于构建 grub 启动菜单的所有数据,当您在 linux 中键入“sudo grub-install”时,该文件就会被写入。
答案2
首先,你最好仔细检查一下你确实在启动电喷没有旧的BIOS:
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
如果您实际使用 EFI 启动,则 GRUB 文件存储如下:
- 在 ESP 分区中(在 中
/EFI/ubuntu
) - 在
/boot/grub
- 在
/etc/grub
所以是的,/dev/sda7
有一些GRUB/etc/grub
文件最类似于和中的文件/boot/grub
。
我对此不是 100% 确定,但是如果/dev/sda7
擦除,/boot/grub/grub.cfg
则会丢失并且 GRUB 将无法正常工作。