En regardant /proc/meminfo
affichera le Dirty
le nombre diminue avec le temps à mesure que toutes les données s'écoulent ; une partie peut se répandre dans Writeback
aussi bien. Ce sera un résumé de tous les appareils, mais dans les cas où un appareil du système est beaucoup plus lent que les autres, vous vous retrouverez généralement là où tout ce qui se trouve dans cette file d'attente lui est lié. Vous trouverez probablement le Dirty
grand nombre au démarrage et le sync
se termine à peu près au même moment où il approche de 0. Essayez ceci pour obtenir un affichage interactif :
watch -d grep -e Dirty: -e Writeback: /proc/meminfo
Avec des disques normaux, je peux normalement ignorer Writeback
, mais je ne sais pas s'il est plus souvent impliqué dans le chemin de transfert USB. S'il ne fait que rebondir de haut en bas sans tendance claire, vous pouvez probablement simplement regarder le Dirty
numéro.
Vous pouvez regarder le /sys/block/<device>/stat
fichier pour l'appareil approprié pendant la synchronisation. La colonne 9 indiquera le nombre de requêtes en cours sur l'appareil, qui devrait descendre à zéro une fois la synchronisation terminée.
Je ne connais pas de moyen de traduire cela en un nombre d'octets, mais cela devrait vous donner une idée approximative de la quantité de "choses" encore en attente.
Voir le fichier stat.txt dans la documentation du noyau pour un peu plus d'informations. (Il y a aussi un inflight
fichier dans ce répertoire sur mon système qui semble pouvoir contenir des requêtes de lecture et d'écriture en cours, mais je ne trouve pas de documentation pour cela.)
En utilisant la réponse de Greg, vous pouvez simplement avoir sync
exécuter en arrière-plan tout en affichant l'état du bloc Dirty en mémoire.
Pour y parvenir, exécutez simplement cette commande :
sync & watch -n 1 grep -e Dirty: /proc/meminfo
Cela appellera sync
en arrière-plan lors de l'exécution de watch
à l'avant. Lorsque le sync
commande sera terminée (autour du moment où la taille du bloc Dirty a atteint 0), vous aurez une sortie qui ressemble à ceci :
1] + 27260 done sync
Cela signifie que la commande est terminée et que vous pouvez tuer le watch
commande avec Ctrl +C .