我的硬盘上有两个分区。/dev/sdb1
用于我的整个系统并/dev/sdb2
作为交换驱动器。我遇到过几次系统崩溃,并认为我可能需要将交换驱动器的大小从 2GB 增加到 16GB。我通过使用parted内部的命令将末尾减少/dev/sdb1
14GB(从494GB到480GB)来做到这一点resizepart
。重新启动后我的系统(Arch Linux)启动失败:
/dev/sdb1
我设法通过再次将分区末尾增加到 494GB 来修复该错误。但我不明白为什么parted显示驱动器容量为500GB,分区末尾( dev/sdb1
)为494GB。lsblk
并fdisk
返回总驱动器大小 465.76 GB 和分区大小 460.1 GB ( /dev/sdb1
)。为什么 480GB 的文件系统大小比物理硬盘大,而 494GB 的文件系统大小则不然(与上述错误相关)?
这是我从lsblk
、fdisk
和 的输出parted
:
提前谢谢了。
答案1
使用parted
调整分区大小是不够的,您还需要调整刚刚调整大小的分区上的文件系统的大小(parted
不这样做)。您有 ext4 文件系统,/dev/sda1
因此在调整分区大小后,parted
您还需要运行sudo resize2fs /dev/sda2
来调整文件系统的大小(在resize2fs
没有大小的情况下运行,只需将文件系统大小调整为底层设备的大小)。如果没有这个,您将无法挂载文件系统,这就是引导失败的原因。
尺寸之间的差异parted
和lsblk
是好旧的公制(GB) 对比二进制(GiB) 单位。lsblk
使用二进制单位(1 GiB 为 1024 MiB),parted
使用公制单位(1 GB 为 1000 MB)。 500 GB 大约是 465.66 GiB,所以这里没有发生任何奇怪的事情。