Sto usando Ubuntu 17.10.
Ho formattato una chiavetta USB in NTFS per preparare un programma di installazione USB di Windows7.
Ho impostato il flag di avvio su questa pen-drive e vi ho copiato i file.
EDIT 1:La chiavetta USB viene montata automaticamente da udev.
umount /dev/sdb1
il completamento richiede da 10 a 12 minuti.
Ecco le opzioni di montaggio:
$ 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:Il cp
il funzionamento non è per niente ISTANTANEO, ci sono voluti 3 minuti per copiare i file sulla chiavetta USB.
EDIT 3:La sync
operazione (fatta subito dopo il cp
) ci sono voluti 12 minuti per essere completato! Ma poi il umount
sarà istantaneo.
Per FAT32, (con sincronizzazione disabilitata anche durante il montaggio), noto lo stesso comportamento.
Qualche idea sul perché ci vuole così tanto tempo per smontare la pendrive USB NTFS?
Risposta accettata:
Probabilmente soffri di buffering memorizzazione nella cache . Per velocizzare la scrittura su chiavette USB (e dischi rigidi in generale), Linux usa una cache del filesystem:
Quando (credi di) scrivere qualcosa sulla chiavetta, viene prima scritto nella cache (nella RAM) e nel cp
comando (ad esempio) restituisce immediatamente fingendo un'operazione di scrittura molto veloce. Mentre fai altre cose, il contenuto della cache viene quindi scritto sulla chiavetta in background. Potresti notare che un LED sulla chiavetta lampeggia ancora che mostra le operazioni di scrittura (dipende dalla tua chiavetta) anche se non succede nulla di evidente.
Quando emetti umount
subito dopo un'operazione di scrittura, quindi umount
attende fino a quando tutto il contenuto della cache del filesystem viene scritto sulla chiavetta per assicurarsi che nessun dato venga perso.
Con sync
puoi forzare manualmente lo svuotamento della cache e la scrittura dei dati sulla chiavetta. Tuttavia, questo non accelererà il tempo totale trascorso perché dovrai attendere la sync
da completare (anziché attendere umount
). Ma il umount
tornerà quindi istantaneamente perché la cache è già stata svuotata.
In sintesi hai tre scelte dopo aver copiato file di grandi dimensioni o molti sulla chiavetta:
umount
e attendi 10 minuti per il completamentosync
, attendi 10 minuti per il completamento, seguito daumount
(ritornerà quasi immediatamente)- Aspetta semplicemente 10 minuti (forse un po' di più) e non fare nulla (o qualcosa di estraneo allo stick) e poi emettere
umount
. Poiché la cache viene scritta automaticamente in background,umount
tornerà anche quasi immediatamente.