1. Créer un fichier de 10 Mo (instantané)
dd if=/dev/zero of=10M.bin bs=1024 count=0 seek=$[1024*10]
2. Créer un fichier de 100 Mo (instantané)
dd if=/dev/zero of=100M.bin bs=1024 count=0 seek=$[1024*100]
3. Créer un fichier de 1 Go (instantané)
dd if=/dev/zero of=1G.bin bs=1024 count=0 seek=$[1024*1024]
Explication du principe :
- 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é
Depuis bash 4+ et dd récent, tu peux utiliser des suffixes directs (plus clair, pas de calcul manuel) :
# 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
Alternative avec truncate (encore plus simple et portable) :
truncate -s 10M 10M.bin truncate -s 100M 100M.bin truncate -s 1G 1G.bin truncate -s 10G 10G.bin
truncate est souvent plus direct et disponible partout.