Comment configurer un périphérique de bouclage évolutif?

Je sais que je peux créer et utiliser un périphérique de bouclage comme celui-ci:

# Create the file truncate disk.img --size 2G # Create a filesystem mkfs.ext4 disk.img # Mount to use mount disk.img /mnt # Clean up umount /mnt 

Cependant, dans ce cas, l'image disque est fixée à 2 Go. C'est 2 Go quand il est vide, et c'est 2 Go quand il est plein. Il ne grandira pas.

Existe-t-il une sorte de périphérique de bouclage qui peut prendre de l'ampleur? Ou, existe-t-il une sorte de périphérique de bouclage qui n'a besoin que de l'espace qu'il stocke?

    Créer un périphérique de files fragmentés, en utilisant dd.

     df -hm # to show where we started dd of=sparse-file bs=1k seek=102400 count=0 # creates a 100Meg sparsefile mkfs.ext4 sparse-file mkdir blah mount sparse-file blah cp somefile blah ls -lahts sparse-file # The 's' option will report the actual space taken in the first column ls -lahts blah df -hm # doublecheck my work echo 'profit :)' 

    Référence: wikipedia sparse file article

    Le commentaire de @ jordanm l'a cloué. J'ai supposé que la taille du file était fixe quand j'ai regardé la sortie de ls -lh disk.img . Quand j'ai utilisé ls -s disk.img comme dans la réponse de @ Stephan, la taille réelle du file est affichée. Comme un test, j'ai créé un file image qui est plus grand que mon disque dur:

     truncate test.img -s 1000G 

    Et cela fonctionne très bien, ce qui signifie que la réponse est dans la question 🙂

    Vous pouvez le faire manuellement avec soit dd seek, soit plus facile, puisque vous utilisez tronquer:

     truncate -s 100M file mkfs.ext4 -m0 file #mount, do whatever umount /mountpoint #let's grow it to 200 MB truncate -s 200M file e2fsck -f file && resize2fs file #done 

    Un doubleur pour la cultiver, n'appelle guère à l'automation ici, j'oserais dire 🙂