删除EFI系统分区

删除EFI系统分区

不小心删除了我的EFI系统分区。 Linux Mint 和 Windows 双启动系统,但我想删除 Windows。删除 Windows 分区后,我的意思是删除 Windows 启动管理器分区。然而,我不小心删除了EFI分区。我的 BIOS 现在不显示任何启动选项。我有一个可以启动的 Mint 实时启动 USB。
有人可以指导如何创建另一个 efi 分区并让它再次加载 grub 吗?

答案1

如果您还没有覆盖旧的 EFI 分区,您可以简单地使用 SystemRescue 启动并用于testdisk恢复分区。

答案2

如果您还没有尝试对磁盘进行更改,并且知道 EFI 分区的确切大小,那么您可以重新创建分区(不要格式化它),但在重新创建分区后,运行dosfsck /dev/disk/part<n>(通常是分区 #1) 或运行fsck.vfat /dev/disk/part<n>以查看它是否识别文件系统,我建议在尝试修复它之前以仅检查模式运行它(如果甚至需要修复):

fsck.vfat --help
Usage: fsck.vfat [OPTIONS] DEVICE
Check FAT filesystem on DEVICE for errors.

Options:
  -a              automatically repair the filesystem
  -A              toggle Atari variant of the FAT filesystem
  -b              make read-only boot sector check
  -c N            use DOS codepage N to decode short file names (default: 850)
  -d PATH         drop file with name PATH (can be given multiple times)
  -f              salvage unused chains to files
  -F NUM          specify FAT table NUM used for filesystem access
  -l              list path names
  -n              no-op, check non-interactively without changing
  -p              same as -a, for compat with other *fsck
  -r              interactively repair the filesystem (default)
  -S              disallow spaces in the middle of short file names
  -t              test for bad clusters
  -u PATH         try to undelete (non-directory) file that was named PATH (can be
                    given multiple times)
  -U              allow only uppercase characters in volume and boot label
  -v              verbose mode
  -V              perform a verification pass
  --variant=TYPE  handle variant TYPE of the filesystem
  -w              write changes to disk immediately
  -y              same as -a, for compat with other *fsck
  --help          print this message

最坏的情况是如果您无法恢复分区,则可以重新创建它。为了将来的参考,我从未尝试过这个,但如果您不知道确切的分区大小是多少,那么您可能可以通过查看卷标头来收集一些信息(dd 与分区开始位置的偏移量)分区存在,并在十六进制编辑器中查看它,但我从未尝试过此操作):

https://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html

要从头开始:重新格式化/重新安装 GRUB EFI 可执行文件,首先使用以下命令重新创建分区parted

例如:

sudo parted /dev/hda<n> mkpart primary fat32 1 256

会给你一个256MB的分区您应该参考此内容以确保您正在使用精确的原始分区的大小(如果这是您要尝试的路线):

https://www.gnu.org/software/parted/manual/html_node/unit.html

下一步格式化它: mkfs.vfat -F32 /dev/hda<n>

如果您需要执行整个 chroot 来安装引导加载程序:

  • 挂载根 mount /dev/sda<n> /mnt
  • 安装引导 mount /dev/sda<n> /mnt/boot
  • 挂载efi mount /dev/sda<n> /mnt/boot/efi
  • 挂载开发者 mount -o rbind /dev/ /mnt/dev
  • 挂载进程 mount -t proc proc /mnt/proc
  • chroot chroot /mnt/ /bin/bash
  • grub-install grub-installupdate-bootloader取决于您的操作系统

在那之后:

  • umount /mnt/boot/efi
  • umount /mnt/boot
  • sync ; sync ; mount -o remount,ro /mnt
  • sync ; sync ; reboot -f

相关内容