我刚刚扩展了 1GB 的“主文件”,该/home/user
文件使用truncate -s +1G homefile
.虽然它将显示的主文件大小更改df
为 2GB,但安装后它仍然只有 1GB。我错过了什么吗?我不必再次使用 mkfs.etx4 ,是吗?..因为这会擦除数据并破坏我使用 truncate over fallocate 的目的,我必须在扩展后使用 resize2fs,但不会改变数据。我尝试在截断后使用 resize2fs,但文件系统类型有错误(如果相关的话,我将不得不重新启动我的虚拟机)。
如果我无法使用 truncate 进行扩展,还有其他方法可以挂载动态扩展文件吗?我知道 qcow2 可以做到这一点,但它似乎有点笨拙。我知道 PuppyOS 和 PorteuOS 等产品中有 squashfs,但据我了解,它需要更多步骤才能设置。如果 truncate 可以工作的话,我喜欢它的简单性。
答案1
您只是调整了底层存储的大小,而不是文件系统的大小。所以,这是完全可以预料到的!
resize2fs
是您需要的工具;resize2fs homefile
还没有工作(还不要这样做),因为您首先必须告诉通过其安装的循环设备底层存储已更改。
那么,整个过程是这样的:
- 增加图像尺寸 (
truncate
/fallocate
...) - 告诉loopdev它的大小改变了:
losetup -c $(losetup -j homefile)
- 调整文件系统的大小:
resize2fs $(losetup -j homefile)