Spegnimento del disco rigido esterno, dell'unità flash, ecc. Utilizzando la riga di comando in Linux


8

Ho sempre pensato che per rimuovere in sicurezza un dispositivo che era stato montato fosse usare il umountcomando e fino a poco tempo fa quando sono passato a Ubuntu 12.04 LTS, ho notato che c'era la possibilità di rimuovere in sicurezza il dispositivo che ha suscitato la mia curiosità.

Ho scavato in giro un numero di post e umountho scoperto che apparentemente non significa che posso rimuovere in sicurezza il dispositivo perché non lo spegne. So che c'è l'opzione per eject. Ora questa è la mia comprensione dopo aver perlustrato Internet. I riferimenti includono:

Mi sono imbattuto in un articolo, ma ho trovato il processo contorto e penso di aver finalmente colpito lo stipendio quando mi sono imbattuto nel comando, udisksad esudisks --unmount /dev/sdb1 && udisks --detach /dev/sdb

Ciò che mi confonde è (a parte se umounteffettivamente significa che è sicuro rimuovere il dispositivo senza perdita di dati e se ho bisogno di usare il comando syncprima di esso e che il dispositivo si è spento che la rimozione sicura sembra raggiungere) è perché Devo usare /dev/sdbseguito da --detachal contrario di/dev/sdb1


Risposte:


6

/dev/sdbè l'intero dispositivo. /dev/sdb1è una partizione su quel dispositivo.

Mentre potresti usare un disco senza partizionarlo, è piuttosto insolito (al di fuori delle configurazioni RAID, ma poi crei i filesystem sui nodi del dispositivo RAID, non i nodi del dispositivo fisico).
Non ha davvero senso provare a staccare (rimuovere fisicamente) una singola partizione: vuoi rimuovere l'intero dispositivo (che può contenere più partizioni), non solo una partizione di quel dispositivo.

Lo smontaggio di una partizione sincronizzerà il filesystem, quindi non è necessario chiamare syncprima unmount.
Chiamare udisks --detachil dispositivo verifica che non ci siano filesystem montati su quel dispositivo (dovresti assicurarti che quella chiamata abbia effettivamente successo) ed eseguirà un "arresto ordinato", che è sempre preferibile ad un approccio "staccare la spina", indipendentemente se quel particolare dispositivo fa qualcosa di speciale.


Non avevo idea che solo / dev / sdb rappresentasse l'intero dispositivo che presumo rappresenti tutte le partizioni. È corretto? Quindi potrei semplicemente eseguire il comando come udisks --unmount /dev/sdb && udisks --detach /dev/sdbse volessi smontare tutte le partizioni? Ha senso smontare solo una partizione se esistono più partizioni.
PeanutsMonkey,

Come si assicura anche che la chiamata udisks --detachabbia esito positivo?
PeanutsMonkey,

No, lo smontaggio /dev/sdbnon funzionerà. Devi smontare ogni partizione montata e guardare / analizzare l'output dei comandi.
Mat

Spiacenti, non segui esattamente cosa intendi guardando o analizzando l'output dei comandi? Non dovrei smontare ogni partizione e quindi eseguire il comando udisks --detach /dev/sdb?
PeanutsMonkey,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.