我在 上安装了 linux mint 19 /dev/sda5
。最近我连接了一个外部驱动器并在其上安装了 Ubuntu 18.04 LTS ( /dev/sdb2
)。之后,我无法再启动原来的 Mint 安装(除非存在外部驱动器)。它只是进入黑色 grub 屏幕并提示。
我的假设是,grub 是新安装在外部驱动器上的(这是预期的,因为我希望它能够自行启动),并且不知何故旧的 grub 安装被遗忘了。所以我通过使用 live cd 和 chroot 方法修复了 grub。
但现在如果我重新连接外部驱动器,我无法在 BIOS 启动选择中选择从该驱动器启动。
看来我的两个 grub 安装在某种程度上不兼容,但为什么以及如何解决呢?
附加信息:两个磁盘都安装了 grub2,都使用 EFI 和 gpt。我打开了一个 EFI 分区sda
,并打开了另一个sdb
,因为没有 EFI 分区 grub 将无法安装(而且我不想引用 sda 上的 EFI 分区,因为我希望 Ubuntu 能够在其他位置自行启动)机)。
更新:我在我的(已修复的)Mint 19 安装中发现了/boot/efi/EFI/ubuntu
该文件(未连接外部驱动器)。里面没有其他文件夹/boot/efi
,/boot/efi/EFI
我不知道这是否意味着什么,因为 Mint 19 基于 Ubuntu,并且/boot/efi/EFI/mint
那里没有或类似的目录。外部驱动器上的 EFI 分区完全是空的,/boot/efi
我的 ubuntu 安装上的文件夹也是如此。我想我必须对如何强制使用正确的 EFI 分区进行一些研究。
刚才我得到了 grub2 的更新,当它尝试运行时出现错误grub-install
:
Installing for x86_64-efi platform.
grub-install: error: cannot find EFI directory.
但系统确实可以正常启动。没有挂载EFI分区。
更新2
好的,似乎在除第一个分区(通常/dev/sda
)之外的任何其他分区上安装 EFI 时都会出现常见问题,请参见例如这里。我的外部 Ubuntu 安装上的 fstab 有以下行:
# /boot/efi was on /dev/sda1 during installation
UUID=8A3D-B724 /boot/efi vfat umask=0077 0 1
这证明,安装忽略了我选择的 EFI 分区选项。
答案1
当你安装 Ubuntu(可能还有 Mint)时在 UEFI 模式下,引导加载程序进入第一个驱动器(通常是内部驱动器),/dev/sda
,进入该驱动器上的 EFI 系统分区。即使您告诉系统将其安装到另一个驱动器中,也会发生这种情况。
如果您希望第二个驱动器是便携式的并且可以正常启动,则在卸下第二个驱动器时,您应该断开(或拔掉)第一个驱动器在开始安装之前。
以下链接可能有帮助,
如何将 Ubuntu 安装到 U 盘? (不使用启动盘创建器)
为了修复第一个驱动器(通常是内部驱动器)中的引导系统,您应该在开始修复操作之前断开第二个驱动器的连接。
编辑:
如果你不能断开/删除内部驱动器有解决方法:
禁用UEFI/BIOS 菜单中的内部驱动器
这旗帜方法
A。在纸上记下内部驱动器中 EFI 分区的标志
b.从内部驱动器的 EFI 分区中删除标志(例如
gparted
,从实时驱动器启动时使用 )C。执行安装
d.将标志恢复到内部驱动器中的 EFI 分区(从
gparted
实时驱动器引导)。
我已经断开/删除了驱动器,并且我知道有人在 UEFI/BIOS 菜单中禁用了它,并且我读过有关修改标志的内容,但没有自己的标志方法经验。
答案2
如果已经遇到这种情况,并且不想重新安装所有内容,则断开所有其他磁盘的连接苏多杜斯在他的回答中建议,我找到了一种方法:
第一的,如果主系统无法自行启动,断开外部驱动器并从 Live CD 或 Live USB 闪存驱动器启动。如果实时会话中不存在,请安装工具“boot-repair”(高级使用的详细信息并安装这里,通过在终端中输入
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
&& boot-repair
如果安装成功,最后一部分将立即启动它。它有一个非常不言自明的 GUI。修复主系统的启动,然后重新启动。
第二,当主系统再次启动时,启动进入,连接外部驱动器。将EFI/ubuntu
内部驱动器的 EFI 分区(在本例中)的全部内容复制/dev/sda1
到外部驱动器的 EFI 分区两次。一次到EFI/ubuntu
那里,一次到EFI/Boot
。然后在EFI/Boot
重命名shimx64.efi
为bootx64.efi
.
现在,在外部 ubuntu 根分区上编辑该文件etc/fstab
并找到如下行:
# /boot/efi was on /dev/sda1 during installation
UUID=8A3D-B724 /boot/efi vfat umask=0077 0 1
8A3D-B724
将属于主系统 EFI 分区的UUID 替换为外部 EFI 分区的 UUID。人们可以发现,使用命令blkid
或者如果喜欢 GUI 应用程序,可以使用磁盘或 Gparted。
完成后,外部驱动器即可启动。
另请参阅: