ls 命令的输出与 XFS 上的 KVM 原始图像混淆

ls 命令的输出与 XFS 上的 KVM 原始图像混淆

使用在原始映像上创建新虚拟机后virt-install,我尝试验证该映像是否是稀疏文件,但无法使用该ls命令进行确定。

ls -ls myvm.img
1048576000 -rw------- 1 root root 1073741824000 Nov 4 15:49 myvm.img

由此看来,它似乎是一个 1 TB 的映像,仅分配了大约 1 GB 的空间。但是,如果我使用 -h 标志,我会得到以下结果:

ls -lsh myvm.img
1001G -rw------- 1 root root 1000G Nov 4 15:49 myvm.img

同样,该du命令显示:

du -h myvm.img
1001G myvm.img

和这个:

qemu-img info myvm.img
file format: raw
virtual size: 1.0T
disk size: 1.0T

如果我尝试备份映像,它会尝试复制整个 1 TB:

tar -Scf myvm.tar myvm.img

那么这是怎么回事呢?根据第一个命令,似乎有一些迹象表明它是一个稀疏文件,但事实似乎并非如此。这是 XFS 的奇怪之处吗?

答案1

ls并且du不要互相矛盾。 (它们使用相同的系统调用)。

ls -s列出块的大小(默认为 1 KB[*])。

1048576000 * 1024 = 1073741824000

[*] 咳,千字节。

相关内容