删除了 ubuntu EFI

删除了 ubuntu EFI

我红着脸试图恢复我的 Deepin 安装。

我安装了 Ubuntu 16.04,但想尝试一些不同的东西。当我之前从 Windows 双启动中删除 Ubuntu 时,我不得不手动删除 ubuntu EFI 目录以阻止系统每次都在启动菜单中启动。像个傻瓜一样,我试图对我的 Linux 机器做同样的事情,现在每次启动时我都只会得到:

GNU GRUB 版本 2.02~berta2-36ubuntu2

我尝试使用退出命令退出,但随后只收到一条消息,说安装正确的启动设备。

我尝试从 deepin 启动驱动器进入故障安全模式以重新添加 efi 文件,但我认为这只是一种实时模式,因此每次我重新启动 ubuntu 目录时它都会再次消失。

除了重新安装之外,还有什么办法可以解决这个问题吗?我能以某种方式从 GRUB 或其他东西中恢复 ubuntu efi 目录吗?

我现在已经按照 Boot-Repair 的评论完成了恢复过程,它仍然可以在 gnu grub 中启动。

答案1

由于 efi ubuntu 目录已被删除,因此您必须从与当前 ubuntu 相同版本的 live cd 中复制 efi 文件

因此让我们首先启动 Ubuntu 16.04 LTS 的 Live CD。
有时其他版本的 ubuntu 也可以工作,但不要使用其他发行版来制作 live cd

打开终端并列出计算机上的分区

lsblk

你会得到类似

sda            8:0    0 931.5G  0 disk 
├─sda1         8:1    0 601.4G  0 part 
├─sda2         8:2    0 325.2G  0 part 
└─sda3         8:3    0   200M  0 part 
sr1           11:1    1  1024M  0 rom  
sdb
├─sdb1         8:1    0 4.4G  0 part /media/user/pendrive

猜猜你的Linux ext4 文件系统,sdXY。在本例中我的是 sda1。将其替换为您自己的

现在我们应该挂载Linux文件系统:

sudo mount /dev/sdXY /mnt

安装一些其他必需的东西:

for i in  /dev  /dev/pts  /proc  /sys  /run; do sudo mount -B $i  /mnt$i; done

现在 chroot 进入已挂载的分区。

sudo chroot /mnt

你现在应该位于旧的 ubuntu 文件系统中

现在创建 grub 将安装文件的目录:

# mkdir -p /boot/efi

让我们识别我们的 EFI 分区:

lsblk

它通常约为 100MB 或 200MB。我的是 sda3。我将使用 sdxy 来表示它。磁盘是 sda。

现在挂载 efi 分区:

# mount /dev/sdxy /boot/efi 

安装 grub 到磁盘:

# apt install efibootmgr
# grub-install /dev/sdX

grub 将安装启动 PC 所需的所有必要的 efi 文件

安装 grub 后执行以下操作:

# update-grub

完成后退出 chroot:

# exit

现在重启:

reboot

希望这能解决这个问题

相关内容