¿Montar volúmenes cifrados desde la línea de comandos?

86

Si tengo un disco externo encriptado (o un disco interno que no está en fstab), veo una entrada en Nautilus, con una entrada como "X GB Encrypted Volume". Puedo hacer clic en este volumen y se me solicita una contraseña para descifrar y montar el dispositivo.

Pero, ¿cómo hago esto desde la línea de comando?

Esta página wiki , y otros documentos que puedo encontrar, solo se refieren a métodos GUI para descifrar el dispositivo; pero esto no funcionará en el contexto de servidores sin cabeza o inicios de sesión SSH. ¿Hay una manera simple de hacer que los dispositivos se monten en ubicaciones automáticas /mediatal como lo harían con la GUI?

(No estoy preguntando acerca de los directorios principales encriptados, estoy al tanto ecryptfs-mount-private. Esta pregunta es sobre volúmenes encriptados adicionales).

cha
fuente
+1 para establecer la distinción entre el cifrado de los sistemas de archivos en su conjunto y los directorios principales cifrados
XavierStuvw
Continúa. La distinción se ha vuelto actual ahora que Ubuntu 18.04 ha degradado el soporte para el cifrado de un solo directorio a favor del cifrado de disco completo, de acuerdo con askubuntu.com/q/1030572/446253 Para algunos, incluido yo, esta es una fuente de dificultades para migrar a 18.04 sin problemas
XavierStuvw

Respuestas:

62

Los pasos en la respuesta de @Georg Schölly no funcionaron para mí en ese momento, aunque podrían funcionar ahora, algunos lanzamientos de Ubuntu después. En aquel entonces, después del sudo mount /dev/mapper/my_encrypted_volume /media/my_devicepaso recibí el error:

mount: tipo de sistema de archivos desconocido 'LVM2_member'

Desbloqueo y montaje del disco con udiskctl

En cambio, usé udisksctluna interfaz de línea de comandos que interactúa con el udisksdservicio.

Esto es lo que funcionó ( /dev/sdb5es la partición en mi disco duro marcada como crypt-luks):

udisksctl unlock -b /dev/sdb5
udisksctl mount -b /dev/mapper/ubuntu--vg-root

Después de escribir el primer comando, se le pedirá su frase de contraseña de cifrado. Una vez que la partición encriptada se desbloquea, el segundo comando la montará. Si eso es exitoso, terminarás con un mensaje similar a este:

Mounted /dev/dm-1 at /media/dpm/e8cf82c0-f0a3-41b3-ab28-1f9d23fcfa72

Desde allí pude acceder a los datos :)

Bloqueo del disco con udiskctl

Desmontar el dispositivo:

udisksctl unmount -b /dev/mapper/ubuntu--vg-root

ubuntu-vgPrimero deberá desactivar todos los volúmenes lógicos en el grupo de volúmenes. De lo contrario, recibirá un error similar al de "Dispositivo ocupado" si intenta bloquearlo ( más información ):

sudo lvchange -an ubuntu-vg

Entonces podrás volver a bloquear la partición encriptada

udisksctl lock -b /dev/sdb5

Notas

  • Los udisksctlcomandos se ejecutan sin sudo .
  • Nombres mapeador de dispositivos : la ubuntu--vg-rootdenominación podrían cambiar a través de comunicados de Ubuntu (por ejemplo, he visto que llama system-rooty ubuntu-roottambién). Una manera fácil de averiguar el nombre es ejecutar el siguiente comando después de desbloquear la partición LUKS :

    ls -la /dev/mapper

    Luego, mirando la salida del lscomando, el nombre que necesitará será generalmente el que está vinculado a/dev/dm-1

  • Nombres del mapeador de dispositivos, alternativa : una alternativa al comando anterior es ejecutar:

    lsblk -e7

    Allí podrá ver el mapeo del nombre del dispositivo como una vista de árbol. La -e 7opción se utiliza para excluir de la salida los dispositivos de bucle (ID 7) creados por las instantáneas instaladas. Simplemente para tener menos desorden.

  • Nombres de volúmenes lógicos : puede ejecutar el sudo lvscomando para averiguar los nombres de grupos de volúmenes y volúmenes lógicos.
  • Aplicación Discos : la aplicación Discos GNOME no desactiva automáticamente los volúmenes lógicos antes de bloquear la partición. Incluso si ha desbloqueado con éxito la partición a través de la GUI, deberá ir a la línea de comando y ejecutar el sudo lvchange -an ubuntu-vgcomando antes de poder bloquearlo desde la GUI.
David Planella
fuente
1
Creo que esta es la mejor respuesta, porque sospecho que esto es más o menos lo que hace Nautilus usando libudisks2. Además, he probado esto para que funcione bien como usuario sin privilegios.
Jaap Versteegh
99
Desafortunadamente recibo el error ¿ Object /org/freedesktop/UDisks2/block_devices/dm_2d3 is not a mountable filesystem.algún consejo?
wawa
1
@wawa Tuve el mismo problema y lo resolví en esta respuesta askubuntu.com/a/895508/334823
raphael
2
Avance rápido 5 años, me encontré teniendo que rescatar una partición encriptada nuevamente. Utilicé una memoria USB en vivo Ubuntu 18.04 y seguí los mismos pasos que describí en ese entonces. Como antes, funcionaron bien y no necesité sudoejecutarlos.
David Planella
1
@Selah, extendí la respuesta para explicar mejor qué ruta de dispositivo usar para el montaje. Para mwfearnley: puede valer la pena mirar los permisos del usuario con el que inició sesión.
David Planella
87

Probablemente su volumen esté encriptado con LUKS, aquí le mostramos cómo montarlo:

Necesitas:

sudo apt-get install cryptsetup

Para descifrar el volumen:

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume

Ahora puedes montarlo como siempre:

sudo mkdir /media/my_device
sudo mount /dev/mapper/my_encrypted_volume /media/my_device

Para bloquear el contenedor nuevamente, primero debe desmontarse:

sudo umount /media/my_device
sudo cryptsetup luksClose my_encrypted_volume

Para colocarlo automáticamente en la /mediaubicación, use la herramienta udisks

sudo udisks --mount /dev/mapper/my_encrypted_volume
Georg Schölly
fuente
¿Entonces tampoco puedo hacerlo como un usuario sin privilegios, aunque podría hacerlo a través de la GUI?
cha
Eso realmente depende de la configuración de su sistema. Creo que la mayoría de los comandos deberían funcionar siempre que su sistema le dé a su usuario acceso a los dispositivos.
Georg Schölly
1
Ubuntu 15.04 envía el udisks2paquete en lugar de udisks, y el primero renombra la herramienta udisksctl.
skierpage
desafortunadamente no funcionó para mí con ubuntu 16.04. mount: tipo de sistema de archivos desconocido 'LVM2_member'
Selah
@Selah: Parece que estás tratando de descifrar algo que no es un volumen LUKS. Quizás necesites usar algo más que /dev/sda1.
Georg Schölly
22

Si obtiene este error:

mount: unknown filesystem type 'LVM2_member'

correr:

sudo apt-get install lvm2
sudo lvscan

luego active todos los LVM que ve

sudo vgchange -ay

luego vuelva a ejecutar el montaje:

sudo mount /dev/mapper/my_encrypted_volume /media/my_device
taitelman
fuente
77
La última línea no es necesariamente correcta, ya que aún puede terminar con el mismo error. Por el contrario, monte una de las unidades que figuran con lvscan en lugar de/dev/mapper/my_encrypted_volume
Weasemunk
Esto no funcionó para mí. Mismo error de montaje: tipo de sistema de archivos desconocido 'LVM2_member'. ¿Quizás porque estoy arrancando desde una unidad flash?
Selah
@SeanScott muchas gracias ... Utilicé el instalador para cifrar mi disco ahora estoy tratando de recuperar datos y tengo que aprender estas cosas ... d'oh
CameronNemo
13

Un problema con el que me encontré fue la duplicación de los grupos de volúmenes : tanto mi sistema de recuperación como la unidad a recuperar eran sistemas ubuntu con LVM. Es por eso que tenía dos ubuntu-vggrupos de volúmenes ( vgdisplaymostraría ambos, cada uno con su propio UUID, pero no pude llegar a sus volúmenes lógicos).

Mi solución se basa en la respuesta de Georg:

  • Inicie un live-linux (para que no se encuentre con el nombre del grupo de volumen duplicado)
  • sudo cryptsetup luksOpen /dev/sdaX my_encrypted_volume
  • ingrese su frase de contraseña cuando se le solicite
  • sudo vgscan ahora debería recoger los volúmenes / grupos contenidos.

  • DRAGONES ADELANTE: AHORA ESTAMOS CAMBIANDO EL NOMBRE DEL GRUPO DE VOLUMEN. ¡NO PODRÁ BOTAR QUE CONDUZCA DESPUÉS!

    use sudo vgrename ubuntu-vg ubuntu-vg2para cambiar el nombre del grupo de volúmenes.

    Si necesita arrancar desde esa unidad, que puede hacer estos pasos de nuevo, pero cambiar el nombre del grupo de volúmenes volver a ubuntu-vg. Una posibilidad diferente es alterar su configuración de arranque al nuevo nombre vg.

Ahora que el VG-nombre duplicado se resuelve, puedo arrancar de nuevo en mi sistema regular, hacer de nuevo el cryptsetup..., vgscany luego montar /dev/mapper/ubuntu--vg2-rooten cualquier lugar que desee.

amenthes
fuente
2
Parece que también puede hacer sudo vgdispaypara encontrar el UUID y usarlo en lugar del nombre duplicado para cambiar el nombre de un solo volumen. Es decir, tomar el UUID y luego sudo vgrename <uuid> oldtrabajar para mí.
mpontillo
No puedo probar la sugerencia de Mike en este momento, pero si funciona, ¡es mejor que renombrar el grupo de volúmenes!
Amenthes
5

sdb1 aquí hay un ejemplo en el que debe ingresar el nombre de su dispositivo, ninguno de estos comandos requerirá privilegios de root

desbloquear disco cifrado

udisksctl unlock -b /dev/sdb1

después de insertar la frase de contraseña correcta, generará algo como esto: Desbloqueado / dev / sdb1 como / dev / dm-3

luego móntelo en / media /

udisksctl mount -b /dev/dm-3

debería mostrar algo como esto: Montado / dev / dm-3 en / media / yourUserName / sdb

desmontarlo

udisksctl unmount -b /dev/dm-3

bloquearlo de nuevo

udisksctl lock -b /dev/sdb1
D.Snap
fuente
2
disksctl mount -b / dev / dm-4 Object / org / freedesktop / UDisks2 / block_devices / dm_2d4 no es un sistema de archivos montable.
DevilCode el
Lo siento, ¿resolvió este problema? (con FS no montable ... ya que estoy obteniendo lo mismo)
Oleg Tarasenko
1
Mismo problema, vea esta respuesta para algo que funcionó para mí askubuntu.com/a/895508/334823
raphael
3

Todas las respuestas anteriores asumieron que el usuario ya sabe qué partición es la encriptada. Viniendo de alguien a quien no le gusta mucho la línea de comandos, esperaba una respuesta fácil de usar ... Así que mis 2 centavos aquí.

  1. Abra la aplicación "discos" de ubuntu.
  2. Ubique su disco duro montado en el panel izquierdo.
  3. Haga clic en la partición que tiene "LUKS" en su nombre: de esta manera puede ver su punto de montaje en el texto "Dispositivo" a continuación (en mi caso:) /dev/sdb4.

Luego intenté montarlo como se indicó anteriormente:

$ sudo cryptsetup luksOpen /dev/sdb4 someNameForMyVolume
Enter passphrase for /dev/sdb4: 

Pero tengo este error:

Cannot use device /dev/sdb4 which is in use (already mapped or mounted).

Ok, entonces supongo que nautilus ya ha intentado montarlo (porque en realidad me solicitó la contraseña cuando conecté el USB, incluso si no terminó mostrando el árbol descifrado). Sin embargo, el mensaje de error no es realmente útil porque no me dice dónde ya está mapeado / montado. Pero este comando ayuda en este caso:

$ udisksctl unlock -b /dev/sdb4
Passphrase: 
Error unlocking /dev/sdb4: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Device /dev/sdb4 is already unlocked as /dev/dm-3

¡Ajá! Entonces es /dev/dm-3.

Sin embargo, cuando intenta montarlo, no funciona:

$ udisksctl mount -b /dev/dm-3
Object /org/freedesktop/UDisks2/block_devices/dm_2d3 is not a mountable filesystem.

Después de mucho retocar, descubrí que me encontraba con el duplicate volume groupsproblema (descrito anteriormente por @amenthes) porque los comandos sudo vgscan -vy sudo vgdisplaymostraban dos entradas con el mismo nombre de grupo de volumen. Sin embargo, encontré una mejor manera de lidiar con él que su método (¡no es necesario iniciar en un LiveCD para cambiar el nombre de los grupos de volúmenes!), En este enlace , que citaré anteriormente (en caso de que ese enlace se rompa ...) :

Si ejecuta ls -la /dev/mapper/, debería ver uno luks-xxxxxx-xxxxx-xxxxo algunos de esos archivos. Esa es la asignación que se creó cuando Ubuntu solicitó la contraseña de cifrado con un cuadro de diálogo pero no pudo abrirla (todo lo que hizo el diálogo fue llamar luksOpeny asignarla al archivo / dev / mapper / luks-xxx). Ahora:

  1. Asegúrese de que su volumen físico esté disponible ejecutando el sudo pvdisplaycomando. Debería ser / dev / mapper / luks-xxx-whatever.
  2. Obtenga el uuid del volumen ejecutando sudo pvs -o +vg_uuid. El uuid será el valor que se muestra a la derecha, que contiene 7 valores delimitados por guiones. Copie esos en algún lugar ya que los usaremos en el siguiente paso. NO CONFUNDIR LOS UUIDS Y COPIAR EL INCORRECTO. Copie solo el de su dispositivo actual / dev / mapper / luks-xxx-whatever.
  3. Cambie el grupo de volúmenes para su disco anterior ejecutando el siguiente comando sudo vgrename UUIDOFYOURDISKHERE oldhdPuede cambiar el "oldhd" a lo que quiera siempre que sea diferente del nombre del grupo de volúmenes de su disco actual. La realización de este paso elimina el conflicto con los nombres de grupos de volúmenes que le permitirán ahora poner a disposición los volúmenes.
  4. Ejecute el comando vgchange -a ypara activar los volúmenes.
  5. Cree una carpeta para un punto de montaje en algún lugar, por ejemplo: sudo mkdir /media/<yourUserName>/someDir
  6. Montarlo: sudo mount /dev/oldhd/root /mnt/oldhd.
  7. Después de trabajar con sus archivos, debe cambiar el nombre de su grupo de volúmenes nuevamente ubuntu-vgsi desea que el volumen aún sea de arranque.
knocte
fuente
2

Para aquellos de nosotros que no queremos usar una herramienta GUI incluso para determinar qué partición está encriptada.

  • encuentra las particiones encriptadas

    lsblk -lf | grep LUKS
    

    -lsolicita el formato de "lista" - no necesitamos que el árbol
    -fnos muestre el nombre del sistema de archivos también
    obtenemos algo como

    sdc2 crypto_LUKS b09d6209-......

  • desbloquear la partición que queremos (en mi caso /dev/sdc2)

    udisksctl unlock -b /dev/sdc2
    

    -bsignifica que estamos dando la ruta a un dispositivo de bloque
    después de ingresar la frase de contraseña, obtenemos una respuesta afirmativa con la información necesaria para el siguiente paso:

    Unlocked /dev/sdc2 as /dev/dm-6

  • montar el dispositivo recién creado ( dmsoporte para administrador de dispositivos )

    udisksctl mount -b /dev/dm-6
    

    Nuevamente obtenemos una respuesta afirmativa con información útil:

    Mounted /dev/dm-6 at /media/g/Data.

    ( gsiendo mi nombre de usuario en este sistema, Dataes la etiqueta que usé para esa partición)

    Puede darse el caso de que su sistema de escritorio / administrador de archivos ya haya montado automáticamente el dispositivo, o lo haya hecho usted mismo antes. Entonces obtienes algo como

    Error mounting /dev/dm-6: GDBus.Error:org.freedesktop.UDisks2.Error.AlreadyMounted: Device /dev/dm-6 is already mounted at '/media/g/Data'.

    Esto no es problema, de todos modos puede acceder a los datos desde la partición cifrada.

  • acceder a los datos: ls /media/g/Data
  • desmonte el dispositivo nuevamente (use el mismo nombre que usó para el montaje, el comando es unmount, no umount :-))

    udisksctl unmount -b /dev/dm-6
    

    Si el dispositivo no está ocupado, obtendrá

    Unmounted /dev/dm-6.

  • Ahora bloquee la partición nuevamente (debe recordar el nombre de la partición)

    udisksctl lock -b /dev/sdc2
    

    Conseguirás

    Locked /dev/sdc2.

  • opcionalmente apague el disco externo completo

    udisksctl power-off -b /dev/sdc
    

    Con un escritorio gráfico, puede obtener un error aquí:

    Error powering off drive: The drive in use: Device /dev/sdc3 is mounted (udisks-error-quark, 14)

    En ese caso, puede usar udisksctlpara desmontar las particiones una por una hasta que tenga éxito. El udisksctl power-offno devuelve ningún mensaje.

Guntbert
fuente
2

Entré en varios caminos de las respuestas anteriores y solo la combinación de las respuestas anteriores funcionó para mí. Él lo que hice y lo que salió bien, y lo que salió mal y mi solución.

Tengo un disco duro cifrado LUKS que necesito montar desde un USB de arranque en vivo para Ubuntu 15.10 . Para hacerlo comencé con el siguiente comando,

udisksctl unlock -b /dev/sda3

donde sda3 es la partición encriptada. Este comando no funcionó conmigo y no estoy seguro de por qué, así que utilicé el siguiente comando:

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume

funcionó conmigo y no necesité instalarlo ya que estaba allí en el arranque en vivo.

Ahora, necesito montar el HD, y esto no fue algo sencillo: intenté:

sudo mkdir /media/my_device
sudo mount /dev/mapper/my_encrypted_volume /media/my_device

Pero el segundo comando no funcionó conmigo y, por lo tanto, tengo que encontrar una solución que sea la siguiente:

sudo udisksctl mount -b /dev/mapper/ubuntu--vg-root

Ese era mi camino ... pero puedes usar el camino dev/mapper/ubuntuy luego doble pestaña para ver el resto de opciones. Esto montó el HDD como:

Mounted /dev/dm-1 at /media/root/03cf6b80-fa7c-411f-90b9-42a3398529ce

Luego usé el siguiente comando para montarlo de la /media/my_devicesiguiente manera:

sudo mount /dev/dm-1 /media/my_device/

que funcionó bien

En resumen

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume
sudo mkdir /media/my_device
sudo udisksctl mount -b /dev/mapper/ubuntu--vg-root
sudo mount /dev/dm-1 /media/my_device/
aibrahim
fuente
1

Puede montarlo en dos pasos, y tengo un ejemplo de script.

Nota: el servicio udiskctl montará cosas debajo de / media, está más diseñado para usuarios de escritorio que montan memorias USB. Si desea montar el dispositivo en otro lugar, no es la solución que está buscando.

Esto es lo que resolví. En este ejemplo, mi dispositivo encriptado es una partición hecha con lvm, pero esto realmente no importa. Es una partición con formato ext4. En su forma encriptada, vive en

/dev/myvg/opt1 

una partición cifrada se "abre" (descifra) de esta manera

  STEP 1:  sudo cryptsetup luksOpen /dev/myvg/opt1 opt1_opened

(aquí es donde ingresas la frase de contraseña)

El último argumento es una referencia temporal al dispositivo de bloque descifrado. El 'mapeo' desaparece cuando reinicia para que pueda elegir un nombre diferente cada vez, si lo desea.

ahora es visible como un dispositivo:

ls /dev/mapper
control  myvg-opt1  myvg-root  opt1_opened

Puede montar este dispositivo: ahora tenemos un dispositivo ext4. Para que sea conveniente, agregue una línea en / etc / fstab

/dev/mapper/opt1_opened /opt1   ext4    noauto,users    0       0

y haga el punto de montaje (en mi caso:, sudo mkdir /opt1y luego configure los permisos como desee) Si usó el nombre opt1_opened en el Paso 1, entonces este es el segundo paso para montarlo:

STEP 2: mount /opt1   #the fstab line lets users mount, so no need for sudo

Y está montado.

Por lo tanto, un script bash:

#!/bin/bash
#needs to be run sudo
read -s -p "Enter LUKS password: " luks_password
printf $luks_password | cryptsetup luksOpen /dev/myvg/opt1 opt1_opened --key-file -
sudo -u tim mount /opt1
Tim Richardson
fuente
1

La respuesta correcta es gio mount -d /dev/dm-x(sin sudo).

Las respuestas anteriores muestran una desconexión con la forma de montaje de Nautilus o Nemo, ya que debe ingresar la frase de contraseña LUKS a pesar de que previamente se almacenó en caché en el llavero de usuario desde la GUI. El uso giousa automáticamente la frase de contraseña previamente almacenada por Nautilus o Nemo.

Para obtener una respuesta más detallada, consulte https://unix.stackexchange.com/questions/394320/what-command-does-nemo-use-to-mount-drives/536842#536842

Redsandro
fuente
0

Estaba buscando lo mismo ...

Los mkdirpasos fueron mi razón para buscar más, también he modificado policykitpara permitir que mi usuario monte sin preguntar primero la contraseña de root y luego la contraseña del volumen cifrado, por sudolo que también se eliminó.

Mi solución que encontré fue el uso de gvfs-mountdel gvfs-binpaquete. Ahora con un solo gvfs-mount -d /dev/sda7me piden la contraseña cifrada y está montada debajo /media/VOLUME_LABEL.

Aditya
fuente
No tengo suerte con esto. Pasos que tomé: primero, cat /proc/partitionspara identificar la etiqueta / dev para la unidad. Segundo gvfs-mount -d /dev/sdf1,. Esto da el error "No hay volumen para el archivo de dispositivo / dev / sdf1". ¡Sin embargo, esto se ve muy de cerca!
cha
Esto funciona para mi. Extrañamente no a través /dev/disks/by-labelo /by-uuid, sino solo por/dev/sdxx
Redsandro
El mensaje "No hay volumen para el archivo de dispositivo / dev / sdf1" estará presente hasta que elimine el dispositivo correspondiente de / etc / fstab. Después de que gvfs-mount funciona según lo diseñado
dbzix
FYI: gvfs-mount -d /dev/sdaXfuncionó perfectamente para mí en Linux Mint 17.3 - No se requiere contraseña como con la GUI.
Jonathan Cross
0

En mi Chromebook con (crouton) Ubuntu Xenial 16.04 encuentro que cuando publico:

sudo cryptsetup luksOpen / dev / sda1 my_encrypted_volume

según la publicación anterior e ingrese mi frase de contraseña, aparece "No hay clave disponible con esta frase de contraseña". Sin embargo, por accidente he encontrado (¡y es muy extraño!) Que todo funcione cuando agrego "--debug" al comando cryptsetup! Entonces puedo montar el volumen y acceder a los archivos.

Pidiéndole al administrador de archivos Thunar que haga los resultados de montaje "No está autorizado para realizar la operación". error. No puedo encontrar una forma de evitar eso, pero como puedo hacer el montaje en la línea de comando, eso es algo aceptable.

yawlhoo
fuente
0

Ok, tengo una solución que funciona, chicos, como se discutió anteriormente, la razón por la que se mount: unknown filesystem type 'LVM2_member'produce un error es porque, de forma predeterminada, su máquina Linux asigna el mismo nombre VG al disco duro externo, por lo tanto, toda la partición en el disco duro externo está inactiva.

Esto es lo que necesitas hacer:

  1. desconecte su disco duro externo y tome nota de su VG UUID interno usando ( sudo vgdisplay command),
  2. ahora conecte su disco duro externo y cambie el nombre del grupo VG de su HDD EXTERNO (no interno, esto romperá su caja) ( vgrename UUID_Number [new-group]).
  3. Verifique que el nuevo nombre esté actualizado en VGdiplay, ahora active el nuevo VGroup ( vgchange [new_group] -a y), verifique que todas las particiones estén activadas ( lvscan).
  4. Ahora debería ver todas sus particiones ls /dev/mapper/[new_group], todo lo que necesita hacer es montar la partición ( mount -t ext4 /dev/mapper/[new_group]-data /zez)
Zareena Shinwari
fuente