Linux分区结束大于物理磁盘和分区大小

Linux分区结束大于物理磁盘和分区大小

我的硬盘上有两个分区。/dev/sdb1用于我的整个系统并/dev/sdb2作为交换驱动器。我遇到过几次系统崩溃,并认为我可能需要将交换驱动器的大小从 2GB 增加到 16GB。我通过使用parted内部的命令将末尾减少/dev/sdb114GB(从494GB到480GB)来做到这一点resizepart。重新启动后我的系统(Arch Linux)启动失败:

拱形启动错误

/dev/sdb1我设法通过再次将分区末尾增加到 494GB 来修复该错误。但我不明白为什么parted显示驱动器容量为500GB,分区末尾( dev/sdb1)为494GB。lsblkfdisk返回总驱动器大小 465.76 GB 和分区大小 460.1 GB ( /dev/sdb1)。为什么 480GB 的文件系统大小比物理硬盘大,而 494GB 的文件系统大小则不然(与上述错误相关)?

这是我从lsblkfdisk和 的输出parted

lsblk、fdisk 和parted 输出

提前谢谢了。

答案1

使用parted调整分区大小是不够的,您还需要调整刚刚调整大小的分区上的文件系统的大小(parted不这样做)。您有 ext4 文件系统,/dev/sda1因此在调整分区大小后,parted您还需要运行sudo resize2fs /dev/sda2来调整文件系统的大小(在resize2fs没有大小的情况下运行,只需将文件系统大小调整为底层设备的大小)。如果没有这个,您将无法挂载文件系统,这就是引导失败的原因。

尺寸之间的差异partedlsblk是好旧的公制(GB) 对比二进制(GiB) 单位。lsblk使用二进制单位(1 GiB 为 1024 MiB),parted使用公制单位(1 GB 为 1000 MB)。 500 GB 大约是 465.66 GiB,所以这里没有发生任何奇怪的事情。

相关内容