O sei fortunato a non aver mai avuto dati danneggiati o sei sfortunato a non aver mai notato che i tuoi dati erano danneggiati.
Quando si esegue un'azione che dovrebbe scrivere su un disco, la maggior parte dei sistemi operativi inserisce l'operazione di scrittura in una coda. Di tanto in tanto, svuotano la coda. (Lo sto chiamando una coda qui, ma in realtà le operazioni possono essere eseguite fuori servizio, i sistemi operativi lo fanno quando è più veloce e danno lo stesso risultato finale.) Questo può rendere le operazioni di scrittura molto più veloci, sia perché il sistema prova eseguirli quando non ha niente di meglio da fare e perché può raggrupparli in modo intelligente.
Se ti capita di scollegare il dispositivo prima che tutto sia stato scritto, potresti perdere i dati più recenti. Peggio ancora, se il sistema operativo ha eseguito operazioni fuori servizio, è possibile mettere il dispositivo in uno stato incoerente e perdere più dei dati più recenti.
Alcuni sistemi operativi entrano in una modalità più conservativa (ma più lenta) per i dispositivi rimovibili, per ridurre i rischi associati allo scollegamento del dispositivo prima che sia stato smontato.
AGGIUNTO :
Fare operazioni fuori servizio a volte non è solo una questione di velocità. I supporti flash economici (che non riguardano la riallocazione del settore a livello hardware) hanno un limite al numero di volte in cui è possibile scrivere su un determinato settore. Se si scrivono ingenuamente tutte le modifiche mentre si verificano, questo può uccidere i settori che contengono la tabella di allocazione dei file su un file system FAT (V) (il caso più comune per le unità rimovibili) o il journal su un tipico file system moderno. (Vedi ad esempio questa discussione sync
sulla mailing list del kernel Linux .) Qui, non aggiornare il FAT o il journal ogni volta che si scrive un file non è solo un grande guadagno in termini di prestazioni, è anche buono per la vita dell'hardware.
Fino a poco tempo fa, Linux poteva solo scegliere tra sync
(scrivere tutte le modifiche in tempo reale) e async
(scrivere ogni volta che è conveniente). Le versioni recenti introducono l' flush
opzione per i filesystem FAT, che si trova nel mezzo (svuota tutte le scritture ritardate non appena il disco diventa inattivo); è attivo di default in Ubuntu 10.04.
In un'altra nota, lo smontaggio di un'unità rimovibile garantisce che nessuna applicazione abbia un file aperto. Se non smonti prima di scollegare, non noterai se hai dati non salvati fino a quando non è troppo tardi. Smontare mentre un file è aperto aumenta anche la possibilità di corruzione, sia a livello di filesystem (il sistema operativo potrebbe aver messo in coda alcune operazioni fino alla chiusura del file) sia a livello di applicazione (ad esempio se l'applicazione inserisce un file di blocco, ha vinto ' essere rimosso).