我有一个 vmware ext4 文件系统,该文件系统是非 lvm、非分区文件系统,驻留在虚拟 300GB 磁盘上。换句话说,没有分区,文件系统可能是通过以下方式创建的:
mkfs.ext4 /dev/sdd1
该磁盘几乎没有使用(1%),但我想将数据保留在上面。有没有安全的方法来缩小它?我正在考虑将 Vmware 中的磁盘大小从 300 调整为 100 并运行 resize2fs /dev/sdd1 但不确定是否不会丢失任何内容。
任何建议将不胜感激。
P。
答案1
您的问题不一致:如果有分区,则文件系统是由诸如 之类的命令创建的mkfs.ext4 /dev/sdd1
。如果没有分区,则文件系统是通过命令行创建的mkfs.ext4 /dev/sdd
。检查 的输出,df /path/to/some/directory/on/that/filesystem
看看它是哪一个。
无论哪种方式,您都可以调用resize2fs
来收缩文件系统。这与 LVM 的任何使用无关。您只能在卸载时收缩文件系统,因此如果它是您的根文件系统,则需要从救援系统执行此操作。请注意,救援系统中的磁盘盘符可能会有所不同,例如,sdb
而不是sdd
。
将文件系统收缩到所需大小后,如果它位于分区上,则需要收缩分区。您可以使用fdisk
它,但它有点微妙:您需要删除并重新创建分区,确保您不会更改其起始位置。您还可以使用parted
,它结合了文件系统大小调整和分区大小调整,但使用起来也很麻烦,因为需要计算目标起始地址。
之后,您可以在VMware中缩小磁盘映像的大小。确保文件系统(和分区,如果适用)适合磁盘映像;如果有分区,请记住分区表在开始时使用了额外的512B。