Espelli / rimuovi in ​​modo sicuro vs umount


44

Sto usando Ubuntu 12.04 e quando faccio clic sull'icona di un'unità flash (nella barra di sinistra di Unity) ottengo due opzioni che mi confondono: espellere e rimuovere in modo sicuro .
Più mi avvicinavo a una risposta a questo thread del forum , che conclude che (per un'unità flash) sono entrambi uguali ed equivalenti anche per usare il umountcomando. Tuttavia, quest'ultima affermazione sembra essere falsa.
Se uso umountdalla console per smontare la mia immersione in flash e quindi utilizzo il comando lsblk, vedo ancora il mio dispositivo (senza nulla in MOUNTPOINT, ovviamente). D'altra parte, se espulsione o rimuovo in sicurezza la mia unità flash, lsblknon la elenco più.

Quindi, la mia domanda è: quale sarebbe il comando / i comandi della console che riproducono davvero il comportamento di espulsione e rimuovono in modo sicuro ?


3
Potresti essere in grado di trovare un file .desktop per l'icona sotto /usr/share/applications/o qualcosa del genere. Se lo si apre in un editor di testo, il campo Exec = ... corrisponde al comando che viene eseguito quando si fa clic su di esso.
spelufo,

Risposte:


65

Se si utilizza, systemdutilizzare l' udisksctlutilità con l' power-offopzione:

spegni

Predispone che l'unità venga rimossa e spenta in modo sicuro. Per quanto riguarda il sistema operativo, ciò include la garanzia che nessun processo stia utilizzando l'unità, quindi la richiesta che buffer e cache in volo siano impegnati in una memoria stabile.

Prima di tutto consiglierei di smontare tutti i filesystem su quell'USB. Questo può essere fatto anche con udisksctl, quindi i passaggi sarebbero:

udisksctl unmount -b /dev/sda1
udisksctl power-off -b /dev/sda

Se non si utilizza, il systemdvecchio bene udisksdovrebbe funzionare:

udisks --unmount /dev/sda1
udisks --detach /dev/sda

Oh amico - mi sono reso conto solo ora che la domanda era come farlo dalla riga di comando - non qual è la differenza tra una cosa e l'altra. non eliminerò la mia risposta perché penso che offra qualche prospettiva, ma la tua è la risposta giusta per i sistemi linux, penso (non so nemmeno se questa è una domanda bsd rilevante ...) .
Mikeserv,

4
udisksctl power-offsembra non essere equivalente alla "rimozione sicura" nel mio caso. Con una scheda micro-SD nel mio lettore di schede interno, dispositivo /dev/sdd, nessun filesystem montato, quando uso il comando udisksctl power-off -b /dev/sdd, il LED del lettore si spegne, ma poi l'intero dispositivo diventa inutilizzabile, immagino perché, beh, letteralmente spento completamente. Devo riavviare il sistema affinché diventi nuovamente utilizzabile.
Ack

1
Per @ack: è possibile disabilitare / abilitare l'hub (possibilmente interno) a cui è collegato il lettore. Poiché si tratta di un hub, eliminerà e quindi re-enumererà tutto, incluso il dispositivo mancante. Spero che tu possa leggere questo esempio: udisksctl power-off -b /dev/mmcblk0mmc0: scheda aaaa rimossa usb 3-1.8: disconnessione USB, numero dispositivo 41 cd /sys/bus/usb/devices/usb3/3-1 echo 0 > authorized echo 1 > authorizedhub 3-1: 1.0: hub USB trovato usb 3-1: autorizzato a collegare usb 3-1.8: nuovo dispositivo USB trovato , idVendor = 0bda, idProduct = 0129 mmc0: nuova scheda SDHC SDR50 ad altissima velocità all'indirizzo aaaa
AB

14

umountè perfettamente sicuro per il disco. Una volta fatto, hai smontato con successo il filesystem e non devi preoccuparti in tal senso. La differenza principale tra espulsione e umountnon riguarda affatto il disco - piuttosto riguarda l'uscita di alimentazione 5v della porta USB.

Dopo umountpuoi ancora vedere il tuo disco elencato lsblkperché è ancora acceso e collegato. umountun file system del disco rigido interno e vedrai lo stesso comportamento per lo stesso motivo. Ma quando si espelle un dispositivo USB, lo si spegne e cessa di disegnare il 5v in genere: penso che scenda a 0,5 V, ma quella classe è avvenuta molto tempo fa.

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
NAME   FSTYPE LABEL   UUID                                 MOUNTPOINT
sdd                                                        
├─sdd1 vfat   USBESP  3AD6-C7CC                            
└─sdd2 ext4   USBROOT 5afbfe93-6955-44ec-8c4f-cf381f8ef174 

Ecco il suo percorso bus USB ...

cat /sys/bus/usb/devices/5-3/manufacturer 
SanDisk

Anche se non l'ho quasi mai montato, è stato collegato e lampeggiante per molto tempo, immagino ...

cat /sys/bus/usb/devices/5-3/power/{level,connected_duration}
on
1777877440

Dovrei fare qualcosa al riguardo:

echo 1 | sudo tee /sys/bus/usb/devices/5-3/remove                                      

Ora lo darò di nuovo ...

cat /sys/bus/usb/devices/5-3/power/level                            
cat: /sys/bus/usb/devices/5-3/power/level: No such file or directory

Hmmm ...

lsblk -f /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0
lsblk: /dev/disk/by-id/usb-SanDisk_Cruzer_200522428118F4325EC2-0:0: not a block device

1
Grazie. Dopo umountun hdd esterno, è sicuro rimuovere l'hdd esterno dal computer?
Tim

1
Non credo umountequivale a "rimuovere in modo sicuro", né lo è udisksctl power-off, per favore vedi il mio commento sull'altra risposta. Confronta con il comportamento di Windows, ad esempio. La mia ipotesi è che Windows faccia un po 'più di un semplice "smontaggio" dei filesystem sul dispositivo. L'ho visto girare su hard disk esterni, spegnere i LED sui lettori di schede ( senza successivamente rendere il dispositivo inutilizzabile a meno che non sia stato ricollegato o riavviato il sistema), ecc.
ack

2
@ack - cosa c'entra Windows con questo? e perché indovina? e non è necessario riavviare per renderlo nuovamente utilizzabile. tu umount. allora lo spegni. e non ho mai suggerito nulla riguardo a udiskctlun modo o all'altro.
Mikeserv,

1
@mikeserv "Rimozione sicura dell'hardware" è l'espressione utilizzata in Windows. È probabile che altri sistemi abbiano copiato quella frase a causa della familiarità dell'utente. È importante distinguerlo dal semplice smontaggio del filesystem. Un esempio di ciò che conta molto è quando il sistema operativo non è sicuro della memorizzazione nella cache di scrittura di un dispositivo di archiviazione. Personalmente ho riscontrato una perdita di dati piuttosto significativa (superblock e file danneggiati) dopo aver semplicemente smontato e scollegato un disco rigido esterno. In seguito ho scoperto che Linux aveva avvertito di questo: "Nessuna pagina della modalità cache trovata", "Supponendo che la cache dell'unità: scriva".
ack

1
@ack - no, non è importante. il tuo problema è probabilmente il tuo acpi. non ha nulla a che fare con il sistema operativo esattamente - solo che il produttore della scheda ha scritto solo driver per un sistema operativo. quei piccoli dispositivi multicard richiedono un accesso abbastanza basso al bersaglio della carta - devono essere in grado di fare cose come eye-fi. non sono dispositivi a blocchi - sono dispositivi a caratteri. non sono affatto come i dischi USB. il board-rom deve gestirli separatamente, e se il tuo fornitore lo supporta male (non è insolito, prova ad avviarne uno) sei sfortunato. ma non è un problema di Linux.
Mikeserv,
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.