如何增加(太小)EFI 分区以实现双引导

如何增加(太小)EFI 分区以实现双引导

正要使用 Fedora 31 设置我的笔记本,却遇到了 EFI 分区 (/boot/efi) 太小的问题,只有 100Mb。 (EFI 分区之前是在我运行“MBR2GPT.exe /convert /disk:0 /allowfullos”时从 Windows 设置的)

尝试使用“gparted”来扩展其大小。虽然 gparted 可以增加分区,但它本身并不能纠正分区格式,并且 gparted 会抛出错误:

gnu parted cannot resize this partition to this size. we're working on it

答案1

真的不想为 internetz 提出的解决方案花费任何金钱。所以我想出了这个:

再次从 U 盘启动 Fedora 31 Live 并执行以下操作:

  1. 使用“fdisk”在磁盘末尾创建一个新的小分区(/dev/sda99),不要忘记按“w”将更改写入磁盘
  2. 格式化为 FAT32: mkfs.vfat -F 32 /dev/sda99
  3. 并将新分区挂载到/mnt/f99
  4. 将当前EFI分区挂载到/mnt/efi
  5. 现在我保存了当前EFI分区的内容 cp -a /mnt/efi/EFI /mnt/f99
  6. 已卸载 /mnt/efi 已卸载 /mnt/f99

这是我的分区布局“fdisk -l /dev/sda”:

/dev/sda1        2048    1180000   1180000  579M Windows RE
/dev/sda2     1180000  164423679 163235840  80G  Microsoft basic data
/dev/sda3   164423680  164623680    200000  100M EFI System
/dev/sda99  900000000  900200000    200000  100M Linux home
  1. 现在我使用fdisk删除/dev/sda3
  2. 然后我使用 fdisk 创建一个名为 /dev/sda3 的新分区,并为其分配 300M,分配正确的分区类型很重要。使用命令“t”并按“1”进行 EFI 分区。请参阅“L”了解可用类型!不要忘记按“w”将更改写入磁盘
  3. 格式化新的EFI分区 mkfs.vfat -F 32 /dev/sda3

这是新的分区布局:

/dev/sda1        2048    1180000   1180000  579M Windows RE
/dev/sda2     1180000  164423679 163235840  80G  Microsoft basic data
/dev/sda3   164423680  165023679    600000  300M EFI System
/dev/sda99  900000000  900200000    200000  100M Linux home
  1. 现在将保存的 EFI 数据复制回 EFI 分区:

挂载 /dev/sad99 /mnt/f99
挂载 /dev/sda3 /mnt/efi
cp -a /mnt/f99/EFI /mnt/efi
同步
umount /mnt/f99
umount /mnt/efi

EFI 现在已调整为 300M 并使用“原始”数据恢复启动 Windows。

现在是时候重新启动并安装我选择的“优秀”操作系统 Fedora31

对我来说就像一个魅力。享受。

答案2

感谢您提供上述答案,我想知道通过复制将 efi 分区复制到其他地方是否可行。

我只是想分享一个可以在一定程度上解决问题的快速修复方法,尽管不是通过增加 efi 分区的大小来解决:

  • 如果您在启动时不需要这些语言,您可以安全地从 EFI/Microsoft/Fonts 中删除这些语言。这些语言有数千个字符,因此它们占用的空间比其他字体多 1000 倍。
  • /etc/mkinitcpio.d/linux.preset您可以通过从配置文件中删除'fallback'来禁用后备 initramfs 的创建PRESETS
  • 可以删除/boot/initramfs-linux-fallback.img,不会重新创建
  • 您可以删除 /boot/Boot 目录。据我所知,它是出于遗留原因而存在的。

有了这些,您可以释放大约 50MB 的空间。它适用于 Arch linux - Windows 10 双启动。但马特斯的答案是长期安全的解决方案。

相关内容