J'utilise Ubuntu 17.10.
J'ai formaté une clé USB en NTFS pour préparer un programme d'installation Windows7 USB.
J'ai mis l'indicateur de démarrage sur ce lecteur de stylo et y ai copié les fichiers.
EDIT 1: La clé USB est automatiquement montée par udev.
umount /dev/sdb1
prend de 10 à 12 minutes.
Voici les options de montage:
$ mount | grep sdb
/dev/sdb1 on /media/mansfeld/Win7_USB_Installer type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
EDIT 2: l'opération cp
n'est pas INSTANTANÉE du tout, il a fallu 3 minutes pour copier les fichiers sur la clé USB.
EDIT 3: L'opération sync
(effectuée juste après le cp
) a duré 12 minutes! Mais alors le umount
sera instantané.
Pour FAT32 (avec la synchronisation également désactivée pendant le montage), je remarque le même comportement.
Des idées pour lesquelles le démontage de la clé USB NTFS prend autant de temps?
Vous êtes probablement souffrant de mise en mémoire tampon mise en cache. Pour accélérer l'écriture sur les clés USB (et les disques durs en général), Linux utilise un cache de système de fichiers:
Lorsque vous pensez que vous écrivez quelque chose sur la clé, celle-ci est d'abord écrite dans la mémoire cache (en RAM) et la commande cp
(par exemple) retourne immédiatement en prétextant une opération d'écriture très rapide. Pendant que vous faites autre chose, le contenu du cache est ensuite écrit sur la clé en arrière-plan. Vous remarquerez peut-être qu'une DEL sur le stick continue à clignoter pour indiquer les opérations d'écriture (cela dépend de votre stick) bien que rien ne se passe.
Lorsque vous émettez umount
peu de temps après une opération d'écriture, umount
attend que tout le contenu de la mémoire cache du système de fichiers soit écrit sur la clé afin de s'assurer qu'aucune donnée n'est perdue.
Avec sync
name__, vous pouvez forcer manuellement vider le cache et écrire les données sur la clé. Toutefois, cela n’accélérera pas le temps total écoulé, car vous devrez alors attendre que sync
soit terminé (au lieu d’attendre umount
name__). Mais umount
reviendra alors instantanément car le cache est déjà vidé.
En résumé, vous avez trois choix après la copie de fichiers volumineux ou nombreux sur la clé:
umount
et attendez 10 minutes qu'il soit terminésync
name__, attendez 10 minutes pour terminer, suivi de umount
(sera renvoyé presque immédiatement)umount
name__. Etant donné que le cache est automatiquement écrit en arrière-plan, umount
sera également renvoyé presque immédiatement.Lorsque vous copiez des fichiers sur votre clé USB, ils ne sont pas écrits directement dessus. La synchronisation du système de fichiers est en cours sur la commande unmount, les données réelles sont écrites pendant que vous attendez votre démontage. Si vous exécutez sync
avant umount
name__, umount
est instantané.