Expulsar / eliminar con seguridad vs umount

44

Estoy usando Ubuntu 12.04, y cuando hago clic con el botón derecho en el icono de mi unidad flash (en la barra izquierda de Unity) obtengo dos opciones que me confunden: expulsar y eliminar de forma segura .
Lo más cerca que llegué a una respuesta fue este hilo del foro , que concluye que (para una unidad flash) son iguales y equivalentes para usar el umountcomando. Sin embargo, esta última afirmación parece ser falsa.
Si uso umountdesde la consola para desmontar mi inmersión flash, y luego uso el comando lsblk, todavía veo mi dispositivo (por supuesto, sin nada debajo de MOUNTPOINT). Por otro lado, si expulso o extraigo con seguridad mi unidad flash, lsblkya no aparece en la lista.

Entonces, mi pregunta es, ¿cuáles serían los comandos / comandos de la consola que realmente reproducirían el comportamiento de expulsión y eliminación segura ?

LGenzelis
fuente
3
Es posible que pueda encontrar un archivo .desktop para el icono debajo /usr/share/applications/o algo así. Si lo abre en un editor de texto, el campo Exec = ... corresponde al comando que se ejecuta al hacer clic en él.
spelufo

Respuestas:

65

Si está utilizando systemd, utilice la udisksctlutilidad con la power-offopción:

apagado

Organiza la extracción y el apagado seguros de la unidad. En el lado del sistema operativo, esto incluye garantizar que ningún proceso esté utilizando la unidad, y luego solicitar que las memorias intermedias y las memorias caché en vuelo se comprometan con un almacenamiento estable.

Primero recomendaría desmontar todos los sistemas de archivos en ese usb. Esto se puede hacer también con udisksctl, por lo que los pasos serían:

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

Si no está utilizando, systemdentonces el bien viejo udisksdebería funcionar:

udisks --unmount /dev/sda1
udisks --detach /dev/sda
jimmij
fuente
Oh hombre, solo ahora me di cuenta de que la pregunta era cómo hacer esto desde la línea de comandos, no cuál es la diferencia entre una cosa y otra. No eliminaré mi respuesta porque creo que ofrece algo de perspectiva, pero creo que la suya es la respuesta correcta para los sistemas Linux (ni siquiera sé si esta es una pregunta relevante de bsd de todos modos ...) .
mikeserv
44
udisksctl power-offparece no ser equivalente a la "eliminación segura" en mi caso. Con una tarjeta micro-SD en mi lector de tarjetas interno, dispositivo /dev/sdd, sin sistemas de archivos montados, cuando uso el comando udisksctl power-off -b /dev/sdd, el LED del lector se apaga, pero luego todo el dispositivo deja de funcionar, supongo porque, bueno, literalmente se apaga por completo. Tengo que reiniciar el sistema para que vuelva a ser utilizable.
ack
1
Para @ack: puede deshabilitar / habilitar el concentrador (posiblemente interno) donde está conectado el lector. Debido a que es un centro, también caerá y luego volverá a enumerar todo, incluido el dispositivo que falta. Espero que pueda leer este ejemplo: udisksctl power-off -b /dev/mmcblk0mmc0: tarjeta aaaa eliminada usb 3-1.8: desconexión USB, número de dispositivo 41 cd /sys/bus/usb/devices/usb3/3-1 echo 0 > authorized echo 1 > authorizedhub 3-1: 1.0: hub USB encontrado usb 3-1: autorizado para conectar usb 3-1.8: nuevo dispositivo USB encontrado , idVendor = 0bda, idProduct = 0129 mmc0: nueva tarjeta SDR50 SDHC de ultra alta velocidad en la dirección aaaa
AB
14

umountEs perfectamente seguro para el disco. Una vez que haya hecho eso, habrá desmontado con éxito el sistema de archivos y no tendrá que preocuparse en ese sentido. La principal diferencia entre expulsar y umountno concierne en absoluto al disco, sino que se trata de la salida de alimentación de 5v del puerto USB.

Después umount, aún puede ver su disco en la lista lsblkporque todavía está encendido y conectado. umountel sistema de archivos de un disco duro interno y verá el mismo comportamiento por el mismo motivo. Pero cuando expulsa un dispositivo USB, lo apaga y deja de consumir los 5v normalmente, creo que se reduce a .5v, pero esa clase sucedió hace mucho tiempo.

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 

Aquí está su ruta de autobús usb ...

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

Aunque casi nunca lo monte, creo que ha estado enchufado y parpadeando durante mucho tiempo ...

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

Debería hacer algo al respecto:

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

Ahora lo echaré un vistazo otra vez ...

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
mikeserv
fuente
1
Gracias. Después de umountun disco duro externo, ¿es seguro quitar el disco duro externo de la computadora?
Tim
1
No creo que umountsea ​​equivalente a "eliminar con seguridad", y tampoco lo es udisksctl power-off, por favor vea mi comentario sobre la otra respuesta. Compare con el comportamiento en Windows, por ejemplo. Supongo que Windows hace un poco más que simplemente "desmontar" los sistemas de archivos en el dispositivo. He observado que desacelerándose discos duros externos, apagar LEDs en lectores de tarjetas ( sin posteriormente haciendo que el dispositivo inservible a menos Replugged o reinicia el sistema), etc.
ACK
2
@ack: ¿qué tiene que ver Windows con esto? y por que estas adivinando y no tiene que reiniciar para que se pueda volver a usar. usted umountlo entonces lo apagas. y nunca sugerí nada sobre udiskctluna forma u otra.
mikeserv
1
@mikeserv "Quitar hardware con seguridad" es la expresión utilizada en Windows. Es probable que otros sistemas hayan copiado esa frase debido a la familiaridad del usuario. Es importante distinguirlo del mero desmontaje del sistema de archivos. Un ejemplo de dónde esto es importante es cuando el sistema operativo no está seguro acerca del almacenamiento en caché de escritura de un dispositivo de almacenamiento. Personalmente, he experimentado una pérdida de datos bastante significativa (superbloque y archivos dañados) después de simplemente desmontar y desconectar un disco duro externo. Más tarde descubrí que Linux había advertido sobre esto: "No se encontró la página del modo de almacenamiento en caché", "Suponiendo que la memoria caché de la unidad: escribir a través".
ack
1
@ack: no, eso no es importante. tu problema es probablemente tu acpi. no tiene nada que ver exactamente con el sistema operativo, solo que el fabricante de su placa solo escribió controladores para un sistema operativo. esos pequeños dispositivos de tarjetas múltiples requieren un acceso de nivel bastante bajo al objetivo de la tarjeta; tienen que poder hacer cosas como eye-fi. no son dispositivos de bloque, son dispositivos de personajes. no son nada como discos usb. el board-rom tiene que manejarlos por separado, y si su proveedor no lo admite (no es inusual, intente arrancar desde uno) no tiene suerte. Pero no es problema de Linux.
mikeserv