我的台式电脑(不是笔记本电脑)上有一个 Arch 双启动系统和 Windows。我已经有一段时间没摆弄它了,现在我想“恢复”它。我做的第一件事就是进行全局系统更新(pacman -Syu
)。但随后我收到了此错误:
error: Partition /boot too full: 4916 blocks needed, 3320 blocks free
于是我检查了我的/boot
分区,结果发现它只有 100MB,其中 96MB 已被使用。然后我尝试找出如何增加它的大小,一些帖子推荐使用经典的 GParted。我感到很不安,因为这是非常微妙的东西,但由于我找不到其他选择,我决定试一试。
然后我从 Arch 分区中取消分配了 1GB,将其向上移动两三次,直到它靠近分区/boot
,最后将两者合并。当 GParted 向我显示这个时,我感到很尴尬 — — 抱歉图像质量不佳,我不得不降级才能将其上传到这里 — —:
奇怪的是,尽管出现了错误,但 Windows 和 Arch 都认为新的/boot
的大小为 1.1GB。这是我尝试再次更新 Arch 时得到的结果:
为什么会发生这种情况?有解决方案吗?是因为 GParted 无法将/boot
分区调整到一定大小以上吗?这在某处有记录吗?
(不过我的系统中的一切似乎都运行良好。)
答案1
是不是因为 GParted 无法将 /boot 分区调整到一定大小以上?这在某处有记录吗?
libparted 无法将 FAT16/FAT32 分区调整为特定大小。
libparted 中有一些与 FAT16 和 FAT32 之间的转换相关的代码——较小的分区需要使用 FAT16,较大的分区(2 GB 及以上)需要转换为 FAT32,而且显然存在一定的范围介于libparted 完全搞不清楚,它的计算代码既不接受 FAT16也不FAT32 为请求的大小。
自从重新添加该代码以来,过去 10 年里似乎没有人触碰过该代码。
奇怪的是,尽管出现错误,但 Windows 和 Arch 都将新的 /boot 的大小识别为 1.1GB。
这分割包含 /boot 的目录已调整为 1.1 GB,但文件系统没有。nvme0n1p2 中的 FAT 文件系统结构仍然只“管理”与以前相同的 100 MB 空间 - 其文件分配表尚未增加以处理新可用的扇区等。
有解决办法吗?
备份分区中的所有文件,使用 重新格式化它mkfs.fat
,然后将文件复制回该分区。