Le file vide se rétrécie après avoir créé FS

J'ai un problème avec mon server qui m'énerve. Je veux créer un file vide et monter le file en tant que périphérique en boucle. Alors, j'essaie ceci:

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

Lorsque je vérifie le file, il a la taille appropriée:

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

L'étape suivante consiste à créer les fs:

 mkfs.ext4 /tmp/loop.img 

et ensuite le file est plus petit:

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

Et je ne peux pas monter le file. Quelqu'un at-il une idée de ce qui s'est passé, ou peut-il me dire mon erreur?

Eh bien, votre plus grand problème est que vous n'avez pas monté l'image via une boucle avant d'exécuter mkfs, ce que vous avez probablement l'intention de faire (par exemple, losetup /dev/loop0 /tmp/loop.img suivi de mkfs.ext4 /dev/loop0 )

Mais, en ce qui concerne le retrait et pourquoi les numbers changent, le 1.2M est l'utilisation réelle des files; le 10M est une allocation de disque. Cela dit "vous avez accordé loop.img 10M sur / tmp, et il utilise actuellement 1,2M d'entre eux".

Les images du système de files sont l'un des quelques types de files (ainsi que les files peu fréquentés) où cela count; généralement l'atsortingbution du disque est juste la limite du prochain bloc supérieur à la taille du file réel.