![ls 命令的输出与 XFS 上的 KVM 原始图像混淆](https://linux22.com/image/98175/ls%20%E5%91%BD%E4%BB%A4%E7%9A%84%E8%BE%93%E5%87%BA%E4%B8%8E%20XFS%20%E4%B8%8A%E7%9A%84%20KVM%20%E5%8E%9F%E5%A7%8B%E5%9B%BE%E5%83%8F%E6%B7%B7%E6%B7%86.png)
使用在原始映像上创建新虚拟机后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
[*] 咳,千字节。