创buildFS后,空文件会缩小

我有一个问题,我的服务器,让我感到困惑。 我想创build一个空文件,然后作为循环设备安装文件。 所以我试试这个:

dd if=/dev/zero of=/tmp/loop.img bs=1024k count=10 

当我检查文件时,它有适当的大小:

 ls -lisah 528484126 10M -rw-r--r-- 1 root root 10M 31. Mär 04:06 loop.img 

下一步是创buildfs:

 mkfs.ext4 /tmp/loop.img 

之后文件更小:

 ls -lisah 528484126 1,2M -rw-r--r-- 1 root root 10M 31. Mär 04:10 loop.img 

而我无法安装该文件。 有没有人知道发生了什么,或者可以告诉我我的错误?

那么,你最大的问题是你没有在运行mkfs之前通过一个循环挂载镜像,你可能打算这样做(例如,在losetup /dev/loop0 /tmp/loop.img之后加上mkfs.ext4 /dev/loop0

但是,至于收缩和为什么数字改变,1.2M是实际的文件使用; 10M是磁盘分配。 这就是说“你已经授予/ tmp上的loop.img 10M,目前正在使用它们的1.2M”。

文件系统映像是less数几种文件之一(连同稀疏分配的文件); 一般磁盘分配只是比实际文件大小更高的下一个块边界。