我的服务器出了问题,这让我很担心。我想创建一个空文件,然后将该文件作为循环设备挂载。所以我尝试了这个:
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
下一步是创建 fs:
mkfs.ext4 /tmp/loop.img
之后文件变小了:
ls -lisah
528484126 1,2M -rw-r--r-- 1 root root 10M 31. Mär 04:10 loop.img
我无法挂载该文件。有人知道发生了什么吗,或者能告诉我我的错误吗?
答案1
嗯,你最大的问题是你在运行 mkfs 之前没有通过循环挂载映像,这可能是你想要做的(例如,losetup /dev/loop0 /tmp/loop.img
然后mkfs.ext4 /dev/loop0
)
但是,至于缩减量以及数字变化的原因,1.2M 是实际文件使用量;10M 是磁盘分配量。这说明“您已授予 loop.img 在 /tmp 上的 10M 空间,它当前正在使用其中的 1.2M”。
文件系统映像是少数几种重要的文件类型之一(以及稀疏分配的文件);通常磁盘分配只是比实际文件大小更高的下一个块边界。