正要使用 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 并执行以下操作:
- 使用“fdisk”在磁盘末尾创建一个新的小分区(/dev/sda99),不要忘记按“w”将更改写入磁盘
- 格式化为 FAT32: mkfs.vfat -F 32 /dev/sda99
- 并将新分区挂载到/mnt/f99
- 将当前EFI分区挂载到/mnt/efi
- 现在我保存了当前EFI分区的内容 cp -a /mnt/efi/EFI /mnt/f99
- 已卸载 /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
- 现在我使用fdisk删除/dev/sda3
- 然后我使用 fdisk 创建一个名为 /dev/sda3 的新分区,并为其分配 300M,分配正确的分区类型很重要。使用命令“t”并按“1”进行 EFI 分区。请参阅“L”了解可用类型!不要忘记按“w”将更改写入磁盘
- 格式化新的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
- 现在将保存的 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 双启动。但马特斯的答案是长期安全的解决方案。