J'ai une archive tar d'une seule image disque. L'image à l'intérieur de ce fichier tar fait environ 4 Go. Je dirige la sortie de tar xf
dans dd
pour écrire l'image disque sur une carte SD. Le vidage de disque ne s'arrête jamais tant que la carte n'est pas pleine. Voici ma session shell:
$ ls -l disk.img.tgz
-rw-r--r-- 1 confus confus 192M Okt 5 00:53
$ tar -tvf disk.img.tgz
-rw-r--r-- root/root 4294968320 2018-10-05 00:52 disk.img
$ lsblk -lb /dev/sdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc 8:32 1 16022241280 0 disk
$ tar zxf disk.img.tgz -O | sudo dd status=progress conv=sync bs=1M of=/dev/sdc
[sudo] password for user:
15992881152 bytes (16 GB, 15 GiB) copied, 212 s, 75,4 MB/s
dd: error writing '/dev/sdc': No space left on device
0+15281 records in
15280+0 records out
16022241280 bytes (16 GB, 15 GiB) copied, 217,67 s, 73,6 MB/s
Pourquoi? Il devrait s'arrêter une fois que le hit a écrit l'image de 4 Go dans le panier de 16 Go et ne jamais manquer d'espace!
conv=sync
? Vouliez-vous utiliser conv=fsync
peut-être?
dd
et de l'écrire dans un autre fichier?tar zxf disk.img.tgz -O | dd status=progress conv=sync bs=1M of=/path/to/some/file/on/disk
? Si oui, cela vous donne-t-il une copie exacte du fichier d'origine?