J'essaie de copier un ISO sur un bâton USB avec cette commande:
Sudo dd bs=4M if=lubuntu-17.04-desktop-AMD64.iso of=/dev/sdc status=progress
Ce qui est assez simple. L'ISO est de 912m de grande taille. Pourquoi le texte de sortie gèle-t-il ici au lieu de mettre fin au programme?
956301312 bytes (956 MB, 912 MiB) copied, 11.216 s, 85.3 MB/s
Je ne peux même pas arrêter le programme de courir avec ctr-c
.
Le comportement que vous voyez est uniquement dd
synchronisation des données sur disque après l'opération. Afin d'optimiser IO Operations, Linux lit souvent des données dans des morceaux plus importants que les écritures requises (lecture-avance) et des écritures de retard afin de pouvoir être combinées (cache sale). À la fin de l'opération, Soit dd
synchronise le fichier sur disque ou le noyau le fait implicitement et le processus reste actif jusqu'à la fin des écritures.
S'il n'y a pas d'autre autre fichier IO Opérations sur la machine, vous devriez être capable d'estimer la quantité de données à écrire en regardant la valeur "sale:" dans /proc/meminfo
- Il s'agit de la quantité totale de données en attente d'être écrite sur le disque.
La quantité de données que le système peut laisser une mémoire non écrite à une heure peut être contrôlée avec les boutons de syntonisation SYSCTL suivants. Par défaut, seuls les ratios sont utilisés. Vous pouvez définir la valeur en pourcentage (ratio) ou octets.
vm.dirty_background_ratio
vm.dirty_ratio
vm.dirty_background_bytes
vm.dirty_bytes
Vous trouverez la documentation officielle pour ces paramètres ici: