可能重复:
驱动器报告错误的可用空间
最近我一直在尝试使用 dd 工具克隆我的硬盘。克隆 ntfs 分区时一切正常,但对于 ext4 - dd 会出现奇怪的情况。例如,有一个 12GB 分区,其中有 4GB 的可用空间,当我尝试将其克隆到新的 25GB 分区上时,它确实克隆了它,但之前为 12GB 的数据现在为 21GB,其中有 4GB(仍然具有与旧分区相同的可用空间)。每次我克隆我的主分区和根分区(ext4)时都会发生这种情况。我还尝试将新分区的大小降低到旧分区的大小,但 dd 以错误结束,提示空间不足,而空间应该足够……
有人吗?发生什么事了?
答案1
我假设你正在做类似的事情:
sudo dd if=/dev/sda98 of=/dev/sda99
其中 /dev/sda98 大小为 12GB,/dev/sda99 大小为 25GB。
显然这些名字是错误的,但你明白我的意思。
您所做的不仅是将数据,还将整个文件系统(包括描述哪些可用和哪些已使用的所有元数据)移动到新分区。它有很多可用空间,但这些可用空间尚未纳入 /dev/sda99 上的文件系统,因此它隐藏在分区的末尾,完全无法使用。
解决方案是调整分区中的文件系统的大小:
sudo resize2fs /dev/sda99
它适用于 EXT2、EXT3 和 EXT4 文件系统。
我建议您先进行备份,但我认为您仍然拥有原始分区中的数据。
这将告诉文件系统扩展到分区上的所有可用空间,将新空间合并到文件系统的元数据中,以便文件可以在其中存储。
dd
除非您使用 count 参数告诉它只复制一定量的内容,否则您无法将较大的分区复制到较小的分区。dd
将源分区中的所有内容逐位复制到目标分区,在这种情况下,它会尝试将所有隐藏/不可见空间连同原始内容一起复制到较小的分区。它不知道也不关心它正在复制什么——它根本不需要是有效的文件系统。