Apagar el disco duro externo, la unidad flash, etc. utilizando la línea de comando en Linux

8

Siempre pensé que quitar un dispositivo montado de forma segura era usar el umountcomando y hasta hace poco, cuando cambié a Ubuntu 12.04 LTS, noté que había la capacidad de quitar el dispositivo de manera segura, lo que me llamó la atención.

Revisé varias publicaciones y descubrí que umountaparentemente no significa que pueda quitar el dispositivo de manera segura porque no lo apaga. Sé que existe la opción de hacerlo eject. Ahora, esto es lo que entiendo después de buscar en Internet. Las referencias incluyen:

Luego me encontré con un artículo, pero encontré que el proceso era complicado y creo que finalmente llegué a pagar cuando me encontré con el comando, udiskspor ejemploudisks --unmount /dev/sdb1 && udisks --detach /dev/sdb

Lo que me confunde es (aparte de si en umountrealidad significa que es seguro quitar el dispositivo sin pérdida de datos y si necesito usar el comando syncantes de eso, y si el dispositivo se ha apagado, lo que parece que es seguro eliminar) es por qué Tengo que usar /dev/sdbseguido de --detachen lugar de/dev/sdb1

CacahuetesMonkey
fuente

Respuestas:

6

/dev/sdbEs todo el dispositivo. /dev/sdb1es una partición en ese dispositivo.

Si bien podría usar un disco sin particionarlo, eso es bastante inusual (fuera de las configuraciones RAID, pero luego crea los sistemas de archivos en los nodos del dispositivo de incursión, no en los nodos del dispositivo físico).
Realmente no tiene sentido tratar de separar (eliminar físicamente) una sola partición; desea eliminar todo el dispositivo (que puede contener múltiples particiones), no solo una partición de ese dispositivo.

Desmontar una partición sincronizará el sistema de archivos, por lo que no es necesario llamar syncantes unmount.
Llamar udisks --detachal dispositivo verifica que no tenga sistemas de archivos montados en ese dispositivo (debe asegurarse de que esa llamada realmente tenga éxito), y realizará un "apagado ordenado", que siempre es preferible a un enfoque de "desconectar", independientemente de si ese dispositivo en particular hace algo especial.

Estera
fuente
No tenía idea de que solo / dev / sdb representa todo el dispositivo que supongo representa todas las particiones. ¿Es eso correcto? Entonces, ¿podría ejecutar el comando como udisks --unmount /dev/sdb && udisks --detach /dev/sdbsi quisiera desmontar todas las particiones? Tiene sentido simplemente desmontar una partición si existen varias particiones.
PeanutsMonkey
¿Cómo se asegura también de que la llamada tenga udisks --detachéxito?
PeanutsMonkey
No, desmontar /dev/sdbno funcionará. Debe desmontar cada partición montada y analizar / analizar la salida de los comandos.
Mat
Lo sentimos, ¿no sigues exactamente lo que quieres decir con mirar o analizar la salida de los comandos? ¿No debería desmontar cada partición y luego ejecutar el comando udisks --detach /dev/sdb?
PeanutsMonkey