Un dispositivo rimovibile come eSATA, unità USB può essere rimosso bruscamente (semplicemente staccando la spina).
Se sono presenti handle di file aperti su una partizione, queste partizioni non verranno smontate, ovvero Linux umount
il comando fallirà, anche dopo che l'unità è fisicamente staccata.
Se lo smontaggio non riesce, quindi su riattacco del dispositivo, il mount
fallirà pure. Quindi devi scoprire quali processi stanno usando l'unità e ucciderli o chiudere tutti gli handle. Se non puoi farlo, dovrai riavviare la scatola per far montare l'unità. E non posso assolutamente uccidere il processo che lo usa.
Non vedo l'opzione "Forza smontaggio", c'è a -f
opzione, ma è solo per NFS.
Questo suona molto strano, Linux non accetta questo scenario in cui un utente semplicemente strappa un disco? Qualcuno sa come gestire questo scenario con garbo in Linux?
C'è un modo per scoprire quali handle di file sono aperti su una particolare partizione / dispositivo o per chiudere e chiudere selettivamente tutti gli handle di file solo per un particolare dispositivo?
Notare la lsof
il comando non è disponibile nel Linux incorporato che sto usando (busybox).
"fuser" non è disponibile nel mio Linux incorporato.
Ho provato il pigro umount -l. Tuttavia, non sembra funzionare in modo coerente. Dì per es. Mantengo aperto un handle di file (con "tail -f" su qualche file sul dispositivo). Quindi rimuovo un'unità e poi eseguo "umount -l" e smonta. E poi riattacco l'unità e provo a montarla di nuovo sullo stesso punto di montaggio, mentre la coda è ancora in esecuzione. Non funziona in modo coerente. A volte succede e talvolta no. Questo mi mette a disagio nell'usare l'opzione lazy e se lascia il file system in uno stato incoerente. E inoltre non sono sicuro se questa opzione pigra fosse pensata per essere utilizzata per tali scenari.
Non riesco a terminare il processo con maniglie di file aperte.
Sembra che se ho montato il dispositivo su / mnt / abc e se disconnetto l'unità e poi riconnetti, Linux sembra riattaccare il file system del dispositivo allo stesso punto di mount "/ mnt / abc", senza che noi facciamo nulla smontare o montare. E poi lo stesso vecchio handle di file aperti sembra iniziare a funzionare dopo il ricollegamento (almeno per l'operazione di lettura dei file). Questa è la mia osservazione. Non sono sicuro se questo è il comportamento previsto .. Tuttavia, anche questo non sembra funzionare in modo coerente.
Avevo un handle di file aperto per la lettura ("tail -f") che ho lasciato aperto, quindi ho rimosso e ricollegato e poi modificato il file in coda e ho visto l'output "tail -f" che veniva aggiornato con le modifiche. Tuttavia, se provo a modificare un file dopo che il dispositivo è scomparso (dà un errore come previsto) e quindi ricollego, il file system del dispositivo non viene correttamente riattaccato allo stesso punto di montaggio. In caso di scrittura di un file (mentre il dispositivo non era lì) non sembra funzionare.
C'è un comportamento standard / coerente che Linux segue quando un'unità viene rimossa bruscamente senza chiudere tutti i manici e smontare correttamente tutte le partizioni?