¿Cuál es el equivalente de la línea de comandos de "Quitar la unidad de forma segura"?

Respuestas:

40

El udiskscomando es muy probablemente lo que está buscando.

Si bien sudo unmount /dev/sdXYfuncionará, los udiscos pueden hacer esto sin permisos de nivel raíz (sudo).

Si tiene una unidad /dev/sdXY, montada, donde X es una letra que representa su disco usb e Y es el número de partición (generalmente 1), puede usar los siguientes comandos para extraer la unidad de forma segura:

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

Para un ejemplo práctico, si tengo la partición /dev/sdb1montada, ejecutaría esto para desmontarla y separarla:

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

Originalmente encontré esto a través de esta pregunta: https://superuser.com/a/430470/176493 .

Usando udisks2:

En las distribuciones más recientes de ubuntu (no estoy seguro de cuándo ocurrió el cambio), udisks2 está instalado en lugar de udisks.

Reflejando los comandos anteriores, para desmontar y separar un disco con udisks2:

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

Ejemplo si mi disco es /dev/sdb1:

udisksctl unmount -b /dev/sdb1
udisksctl power-off -b /dev/sdb
daboross
fuente
Obtengo Detach failed: Not Authorizedcuando intento ejecutarlo sin privilegios de root. (No es un problema grave, pero una pequeña corrección.)
Jonathan Y.
¿Qué versión de Ubuntu estás ejecutando? Además, ¿cómo montaste el disco? Si montó usando permisos de root, o cuando inició sesión como otro usuario (a diferencia de Nautilus o udisks en el usuario actual), su usuario no tendrá permiso para desmontar el uso udisks.
daboross
2
Sí, monté con sudo, pero también umountedité antes de intentarlo --detach. Es una versión confiable del servidor ubuntu.
Jonathan Y.
Ah, entonces podría haber una diferencia con el servidor Ubuntu. Separar funciona sin permiso de root en mi escritorio.
daboross
2
@morhook ver respuesta actualizada con soporte udisks2!
daboross
21

El equivalente real a la operación Nautilus Mount / Unmount es gvfs-mount -m -d /dev/ice /some/directoryy gvfs-mount -u /some/directory. Esto usa la misma API que usa Nautilus, el sistema de archivos virtuales GIO (gvfs), que proporciona diferentes herramientas para usar varios servicios como puntos de montaje, como smb, NFS, FTP, dispositivos de bloque, etc.

Para identificar qué dispositivo necesita desmontar, simplemente use gvfs-mount -lcuál debería ser suficiente.

Esta solución tiene la peculiaridad de que no requiere permisos elevados, ya que todo está administrado por los servicios umount / gvfsd / polkit, que se asemeja aún más a la similitud con el comportamiento de Nautilus.

Braiam
fuente
2
Esta parece ser la respuesta más correcta. Aunque muchos de nosotros estamos acostumbrados a pensar udisks(sugerido en otras respuestas) como "la forma" en que los usuarios no root montan y desmontan discos extraíbles en el escritorio, como se indica aquí, gvfs-mountpueden usar otros mecanismos. (En mi sistema Ubuntu MATE Utopic, el paquete udisks ni siquiera está instalado).
Eliah Kagan
1
Ubuntu 18.40 tiene giocuál es el reemplazo para gvfs-mount.
studog
13

Una vez que conozca el dispositivo, posiblemente usando la dfinformación como en la respuesta @rcpao , la mejor manera de "expulsar" el disco es, en mi opinión, usar el mismo comando que usa la interfaz gráfica:

udisksctl unmount --block-device /dev/sdc1

Tengo un script para hacer una copia de seguridad en un disco que sé que se montará debajo /media/romano/movlin, y después de la copia de seguridad hago:

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

Aquí, mount | grep movlin | cut -d" " -f1extraerá el dispositivo que está montado bajo la etiqueta "movlin", (sería /dev/sdc1en ese caso), y luego lo desmontará.

Rmano
fuente
¿Es realmente necesario ejecutar manualmente syncantes udisksctl unmount?
Eliah Kagan
Probablemente no. Pero no estoy seguro del comportamiento correcto del caché en general; A veces siento que la unidad USB sigue parpadeando después del desmontaje ... durante unos segundos. Digamos que es un remanente de lo viejo sync; sync; sync && poweroff...
Rmano
@Rmano He visto el parpadeo en una unidad flash supuestamente desmontada (generalmente realizada a través de una interfaz gráfica de usuario bajo KDE) muchas veces. Intento esperar antes de desconectarlo. Esto parece (para mi ojo inexperto) que algo no está del todo bien. Sería aún peor con una unidad flash sin luz indicadora de actividad.
Joe
1
Rmano, dado udisksque ya no está presente por defecto en Ubuntu, udisksctlpuede ser una solución preferida. udisksctl power-off --block-device /dev/sdcapaga la luz en una unidad flash USB externa, por lo que podría ser adecuado como el siguiente comando para seguir el suyo.
H2ONaCl
8
  1. df para encontrar el punto de montaje de su unidad 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. Desmonte 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. Debería poder ver desaparecer el icono de expulsión de la unidad flash en nautilus tan pronto como finalice el montaje.

rcpa0
fuente
2
dfparece muy útil para identificar dónde está el dispositivo.
H2ONaCl
2
Para una unidad flash, esto es razonable. Para una unidad de disco, "Quitar con seguridad" también la reduce, lo que esta solución no hace (consulte la respuesta de DaboRoss para eso).
Nate Eldredge
3
Sí, udisks --detaches útil para desconectar las unidades por completo después de desmontarlas.
daboross
1
dfy umountson utilidades estándar de UNIX. Siempre es bueno conocerlos, porque estos siempre funcionarán, mientras udisksque dependen de dbus y un udisksd en ejecución .
Simon Richter
1
@NateEldredge: "Para una unidad flash, esto es razonable ..." - en realidad no lo es y estoy votando por esta razón: el año pasado tuve que hacer un despliegue de una aplicación qa e ingenuamente usé un comando rápido en la línea de cp /path/to /drive && umount drive. Esto hizo que 2 unidades flash (temporalmente) no se puedan escribir hasta que me di cuenta de que era el comando que lo causó. Ejecutar "Escanear y reparar" en una máquina con Windows reparó las unidades. La respuesta de DaboRoss a continuación es mucho más segura.
Andy E
3

ejectdel paquete de expulsión :

sudo eject /dev/sdX

aparece en umounttodas las particiones y coloca el dispositivo en un estado que debe eliminar y volver a conectarlo para volver a montarlo.

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
fuente
Para algunas aplicaciones, este comando de expulsión es la mejor manera de hacerlo. La mayoría de las otras respuestas son "lo suficientemente buenas", pero técnicamente el icono de expulsión en Nautalis no hace cosas como apagar el dispositivo. En mi experiencia, eject está más cerca de la funcionalidad del botón usb de expulsión. Si desea evitar sudo, puede agregarse al grupo de discos (requiere cerrar sesión e iniciar sesión). El comando para esto es "sudo adduser user disk"
SpiRail