dd if=/dev/zero of=10M.bin bs=1024 count=0 seek=$[1024*10]
dd if=/dev/zero of=100M.bin bs=1024 count=0 seek=$[1024*100]
dd if=/dev/zero of=1G.bin bs=1024 count=0 seek=$[1024*1024]
- count=0 → on n’écrit aucun bloc réel.
- seek=… → on avance le pointeur de fichier à la taille souhaitée.
- Résultat : le fichier apparaît comme ayant la taille demandée (ls -lh), mais il n’occupe presque aucun espace physique sur le disque tant qu’on n’y écrit pas vraiment de données (c’est un sparse file).
- Instantané, même pour des dizaines de Go.
Vérification :
ls -lh *.bin # Taille affichée ls -lhS *.bin # Taille réelle occupée sur disque (très petite) du -h *.bin # Espace réellement utilisé
# 10 Mo dd if=/dev/zero of=10M.bin bs=1 count=0 seek=10M # 100 Mo dd if=/dev/zero of=100M.bin bs=1 count=0 seek=100M # 1 Go dd if=/dev/zero of=1G.bin bs=1 count=0 seek=1G # 10 Go en une ligne dd if=/dev/zero of=10G.bin bs=1 count=0 seek=10G
truncate -s 10M 10M.bin truncate -s 100M 100M.bin truncate -s 1G 1G.bin truncate -s 10G 10G.bin