Qual è l'equivalente della riga di comando di "Rimozione sicura dell'unità"?


Risposte:


40

Il udiskscomando è molto probabilmente quello che stai cercando.

Mentre sudo unmount /dev/sdXYfunzionerà, udisks può farlo senza permessi di livello root (sudo).

Se si dispone di un'unità /dev/sdXY, montata, dove X è una lettera che rappresenta il disco USB e Y è il numero di partizione (in genere 1), è possibile utilizzare i seguenti comandi per rimuovere l'unità in modo sicuro:

udisks --unmount /dev/sdXY
udisks --detach /dev/sdX

Per un esempio pratico, se ho /dev/sdb1montato la partizione , la eseguo per smontarla e staccarla:

udisks --unmount /dev/sdb1
udisks --detach /dev/sdb

Inizialmente ho trovato questo attraverso questa domanda: https://superuser.com/a/430470/176493 .

Utilizzando udisks2:

Nelle nuove distribuzioni di Ubuntu (non sono sicuro di quando si è verificato lo switch), udisks2 è installato invece di udisks.

Mirroring dei comandi sopra, per smontare e scollegare un disco con udisks2:

udisksctl unmount -b /dev/sdXY
udisksctl power-off -b /dev/sdX

Esempio se il mio disco è /dev/sdb1:

udisksctl unmount -b /dev/sdb1
udisksctl power-off -b /dev/sdb

Ottengo Detach failed: Not Authorizedquando provo a eseguirlo senza i privilegi di root. (Non è un problema serio, ma una piccola correzione.)
Jonathan Y.

Quale versione di Ubuntu stai eseguendo? Inoltre, come hai montato l'unità? Se hai effettuato il mount utilizzando le autorizzazioni di root o quando hai effettuato l'accesso come un altro utente (al contrario di Nautilus o udisks nell'utente corrente), il tuo utente non avrà l'autorizzazione per smontare utilizzando udisks.
daboross,

2
Sì, ho montato con sudo, ma ho anche umounted prima di provare --detach. È una versione fidata del server Ubuntu.
Jonathan Y.

Ah, allora potrebbe fare la differenza con il server Ubuntu. Detach funziona senza il permesso di root sul mio desktop.
daboross,

2
@morhook vedi la risposta aggiornata con il supporto udisks2!
daboross,

21

L'effettivo equivalente dell'operazione di montaggio / smontaggio Nautilus è gvfs-mount -m -d /dev/ice /some/directorye gvfs-mount -u /some/directory. Questo utilizza la stessa API utilizzata da Nautilus, il file system virtuale GIO (gvfs), che fornisce diversi strumenti per utilizzare diversi servizi come punti di montaggio, come smb, NFS, FTP, dispositivi a blocchi, ecc.

Per identificare quale dispositivo è necessario smontare basta usare gvfs-mount -lquale dovrebbe essere sufficiente.

Questa soluzione ha la particolarità che non richiede autorizzazioni elevate, poiché tutto è gestito dai servizi umount / gvfsd / polkit, che ricorda ulteriormente la somiglianza con il comportamento di Nautilus.


2
Questa sembra essere la risposta più corretta. Sebbene molti di noi siano abituati a pensare udisks(suggerito in altre risposte) come "il modo in cui" gli utenti non root montano e smontano i dischi rimovibili sul desktop, come indicato qui gvfs-mountpossono utilizzare altri meccanismi. (Sul mio sistema Ubuntu MATE Utopic, il pacchetto udisks non è nemmeno installato.)
Eliah Kagan,

1
Ubuntu 18.40 ha gioquale è il sostituto di gvfs-mount.
Studog

13

Una volta che conosci il dispositivo, possibilmente usando le dfinformazioni come nella risposta @rcpao , il modo migliore per "espellere" il disco è, imho, usando lo stesso comando che utilizza l'interfaccia grafica:

udisksctl unmount --block-device /dev/sdc1

Ho uno script per fare un backup su un disco che so verrà montato sotto /media/romano/movlin, e dopo il backup faccio:

sync
udisksctl unmount -b $(mount | grep movlin   | cut -d" "  -f1)

Qui, mount | grep movlin | cut -d" " -f1estrarrà il dispositivo che è montato sotto l'etichetta "movlin", (sarebbe /dev/sdc1in quel caso), e poi lo smonta.


È davvero necessario eseguire manualmente syncprima udisksctl unmount?
Eliah Kagan,

Probabilmente no. Ma non sono abbastanza sicuro del corretto comportamento della cache in generale; Qualche volta sento che l'unità USB continua a lampeggiare dopo l'umount ... per alcuni secondi. Diciamo che è un residuo del vecchio sync; sync; sync && poweroff...
Rmano,

@Rmano Ho visto il lampeggiamento su un'unità flash apparentemente smontata (di solito eseguita attraverso una GUI sotto KDE) molte volte. Provo ad aspettare prima di scollegarlo. Questo sembra (ai miei occhi non allenati) come se qualcosa non fosse del tutto giusto. Sarebbe ancora peggio con un'unità flash senza spia di attività.
Joe,

1
Rmano, poiché udisksnon è più presente di default in Ubuntu udisksctlpotrebbe essere una soluzione preferita. udisksctl power-off --block-device /dev/sdcspegne la luce su un'unità flash USB esterna in modo che possa essere adatto come il prossimo comando per seguire il tuo.
H2ONaCl

8
  1. df per trovare il punto di montaggio della tua unità flash.

    rcpao@bun:~$ df
    Filesystem                   1K-blocks       Used  Available Use% Mounted on
    /dev/mapper/ubuntu--vg-root 1916153032  658404668 1160390336  37% /
    none                                 4          0          4   0% /sys/fs/cgroup
    udev                          16438692          4   16438688   1% /dev
    tmpfs                          3289976       2156    3287820   1% /run
    none                              5120          0       5120   0% /run/lock
    none                          16449860      18768   16431092   1% /run/shm
    none                            102400         48     102352   1% /run/user
    /dev/sda1                       240972      98990     129541  44% /boot
    /dev/sdc1                     60915712      20992   60894720   1% /media/rcpao/SD024-64GB
    
  2. Smontare usando / dev / sdc1 o / media / rcpao / SD024-64GB.

    rcpao@bun:~$ sudo umount /dev/sdc1
    [sudo] password for rcpao: 
    rcpao@bun:~$
    

    o

    rcpao@bun:~$ sudo umount /media/rcpao/SD024-64GB
    [sudo] password for rcpao: 
    rcpao@bun:~$
    
  3. Dovresti essere in grado di vedere l'icona di espulsione dell'unità flash scomparire in nautilus non appena umount termina.


2
dfsembra molto utile per identificare dove si trova il dispositivo.
H2ONaCl

2
Per un'unità flash, questo è ragionevole. Per un'unità disco, anche "Rimozione sicura" la riduce, cosa che questa soluzione non funziona (vedere la risposta di DaboRoss per questo).
Nate Eldredge,

3
Sì, udisks --detachè utile per staccare completamente le unità dopo lo smontaggio.
daboross,

1
dfe umountsono utility UNIX standard. È sempre bene conoscerli, perché funzioneranno sempre, mentre udisksdipende da dbus e udisksd in esecuzione .
Simon Richter,

1
@NateEldredge: "Per un'unità flash, questo è ragionevole ..." - in realtà non lo è e sto votando per questo motivo: l'anno scorso ho dovuto fare una distribuzione di app per app e ho usato ingenuamente un comando rapido lungo le linee di cp /path/to /drive && umount drive. Questo ha reso 2 unità flash (temporaneamente) non scrivibili fino a quando ho capito che era il comando a causarlo. L'esecuzione di "Scansione e riparazione" su un computer Windows ha corretto le unità. La risposta di DaboRoss qui sotto è molto più sicura.
Andy E

3

ejectdal pacchetto di espulsione :

sudo eject /dev/sdX

appare a umounttutte le partizioni e porta il dispositivo in uno stato che è necessario rimuovere e ricollegarlo per rimontarlo.


Per alcune applicazioni questo comando di espulsione è il modo migliore per farlo. La maggior parte delle altre risposte sono "abbastanza buone" ma tecnicamente l'icona di espulsione su Nautalis non fa cose come spegnere il dispositivo. Nella mia esperienza, espulsione è più vicino alla funzionalità del pulsante di espulsione usb stesso. Se vuoi evitare sudo puoi aggiungerti al gruppo di dischi (richiede il logout e il log in). Il comando per questo è "sudo adduser user disk"
SpiRail
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.