Montare i volumi crittografati dalla riga di comando?

Se ho un disco esterno crittografato (o un disco interno che non è in fstab), vedo una voce per esso in Nautilus – con una voce come “X GB Encrypted Volume”. Posso fare clic su questo volume e mi viene richiesta una password per decodificare e montare il dispositivo.

Ma come faccio a farlo dalla riga di comando?

Questa pagina wiki , e altri documenti che posso trovare, si riferiscono solo ai metodi della GUI di decrittografia del dispositivo; ma questo non funzionerà nel contesto di server headless o accessi SSH. C’è un modo semplice per far sì che i dispositivi montino in posizioni automatiche in /media esattamente come farebbero con la GUI?

(Non sto chiedendo informazioni sulle directory home crittografate: sono a conoscenza di ecryptfs-mount-private riguarda i volumi crittografati aggiuntivi.)

I passaggi nella risposta di @Georg Schölly non hanno funzionato per me al momento, anche se potrebbero funzionare ora, alcune versioni di Ubuntu dopo. Allora, dopo il sudo mount /dev/mapper/my_encrypted_volume /media/my_device ho ricevuto l’errore:

mount: tipo di file system sconosciuto ‘LVM2_member’

Sblocco e assembly del disco con udiskctl

Invece, ho usato udisksctl , un’interfaccia della riga di comando che interagisce con il servizio udisksd .

Ecco cosa ha funzionato ( /dev/sdb5 è la partizione sul mio disco rigido contrassegnata come crypt-luks ):

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

Dopo aver digitato il primo comando, ti verrà richiesta la passphrase di crittografia. Una volta sbloccata la partizione crittografata, il secondo comando la monterà. Se questo ha successo, ti ritroverai con un messaggio simile a questo:

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

Da lì ho potuto accedere ai dati 🙂

Gli appunti

  • I comandi sono eseguiti senza sudo .
  • La denominazione di ubuntu-root potrebbe cambiare tra le diverse versioni di Ubuntu (ad esempio ho visto anche system-root ). Un modo semplice per scoprire il nome è eseguire il seguente comando dopo aver sbloccato la partizione LUKS :

    ls -la /dev/mapper

    Quindi, guardando l’output del comando ls , il nome che ti servirà sarà generalmente quello collegato simbolicamente a /dev/dm-1

  • udisksctl , ho notato uno svantaggio nell’usare udisksctl . Una volta sbloccata, la partizione viene mappata come link simbolico in /dev/mapper . Il nome di quel collegamento simbolico diventa l’UUID del dispositivo. Tuttavia, strumenti come initramfs-update aspettano che il link simbolico corrisponda al nome in /etc/crypttab e stamperà un errore a meno che il collegamento simbolico non venga rinominato. In alternativa, l’utilizzo di cryptsetup luksOpen sembra impostare correttamente il nome del link simbolico.

Il tuo volume è probabilmente crittografato con LUKS, ecco come montarlo:

Hai bisogno:

 sudo apt-get install cryptsetup 

Per decrittografare il volume:

 sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume 

Ora puoi montarlo come al solito:

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

Per bloccare nuovamente il contenitore, è necessario prima smontarlo:

 sudo umount /media/my_device sudo cryptsetup luksClose my_encrypted_volume 

Per inserirlo automaticamente nella posizione /media , utilizzare lo strumento udisks

 sudo udisks --mount /dev/mapper/my_encrypted_volume 

Se ottieni questo errore:

 mount: unknown filesystem type 'LVM2_member' 

correre:

 sudo apt-get install lvm2 sudo lvscan 

quindi triggers tutto il LVM che vedi

 sudo vgchange -ay 

quindi rieseguire la montatura:

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

Un problema che ho incontrato è stato il doppio dei gruppi di volumi : sia il mio sistema di recupero che l’unità da recuperare erano sistemi ubuntu con LVM. Questo è il motivo per cui ho avuto due gruppi di volumi ubuntu-vg ( vgdisplay ne vgdisplay entrambi, ciascuno con il proprio UUID, ma non sono riuscito a raggiungere i loro volumi logici).

La mia soluzione si basa sulla risposta di Georg:

  • Avvia da live-linux (in modo da non eseguire il nome del gruppo di volumi duplicato)
  • sudo cryptsetup luksOpen /dev/sdaX my_encrypted_volume
  • inserisci la tua passphrase quando richiesto
  • sudo vgscan ora dovrebbe raccogliere i volumi / gruppi contenuti.

  • DRAGHI AVANTI: STIAMO ORA CAMBIANDO IL NOME DEL GRUPPO VOLUME. NON SARÀ IN GRADO DI GUADAGNARE QUESTO GUIDATO DOPO!

    usa sudo vgrename ubuntu-vg ubuntu-vg2 per rinominare il gruppo di volumi.

    Se è necessario avviare l’unità, è ansible ripetere questi passaggi, ma rinominare il gruppo di volumi su ubuntu-vg. Una possibilità diversa è quella di modificare la configurazione di avvio sul nuovo nome di vg.

Ora che il nome-vg duplicato è stato risolto, posso riavviare il sistema normale, ripristinare il cryptsetup... , vgscan e quindi montare /dev/mapper/ubuntu--vg2-root ovunque tu voglia.

sdb1 ecco un esempio da inserire nel nome del dispositivo, nessuno di questi comandi richiede i privilegi di root

sblocca il disco crittografato

 udisksctl unlock -b /dev/sdb1 

dopo aver inserito la passphrase corretta emetterà qualcosa come questo: Unlocked / dev / sdb1 come / dev / dm-3

quindi montalo su / media /

 udisksctl mount -b /dev/dm-3 

dovrebbe produrre qualcosa del genere: montato / dev / dm-3 in / media / yourUserName / sdb

per smontarlo

 udisksctl unmount -b /dev/dm-3 

per bloccarlo di nuovo

 udisksctl lock -b /dev/sdb1 

Per quelli di noi che non vogliono utilizzare uno strumento GUI anche per determinare quale partizione è crittografata.

  • trova tutte le partizioni crittografate

     lsblk -lf | grep LUKS 

    -l richiede il formato “elenco” – non abbiamo bisogno dell’albero
    -f ci mostra anche il nome del file system
    otteniamo qualcosa di simile

    sdc2 crypto_LUKS b09d6209-......

  • sblocca la partizione che vogliamo (nel mio caso /dev/sdc2 )

     udisksctl unlock -b /dev/sdc2 

    -b significa che stiamo dando il percorso a un dispositivo a blocchi
    dopo aver inserito la passphrase otteniamo una risposta affermativa con le informazioni necessarie per il prossimo passo:

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

  • montare il dispositivo appena creato ( dm stand per device manager )

     udisksctl mount -b /dev/dm-6 

    Ancora una volta riceviamo una risposta affermativa con informazioni utili:

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

    ( g essendo il mio nome utente su questo sistema, Data è l’etichetta che ho usato per quella partizione)

    Potrebbe accadere che il tuo sistema desktop / gestore di file abbia già montato automaticamente il dispositivo, o lo hai già fatto tu stesso prima. Quindi ottieni qualcosa di simile

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

    Questo non è un problema, puoi comunque accedere ai dati dalla partizione crittografata.

  • accedere ai dati: ls /media/g/Data
  • smontare di nuovo il dispositivo (usa lo stesso nome usato per il assembly, il comando è umount , non umount :-))

     udisksctl unmount -b /dev/dm-6 

    Otterrai il dispositivo se il telefono non è occupato

    Unmounted /dev/dm-6.

  • Ora blocca nuovamente la partizione (devi ricordare il nome della partizione)

     udisksctl lock -b /dev/sdc2 

    Otterrete

    Locked /dev/sdc2.

  • opzionalmente spegnere il disco esterno completo

     udisksctl power-off -b /dev/sdc 

    Con un desktop grafico potresti ricevere un errore qui:

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

    In tal caso puoi usare udisksctl per smontare le partizioni una alla volta fino a quando non ci riesci. Lo udisksctl power-off non restituisce alcun messaggio.

Sono andato in diversi percorsi dalle risposte precedenti e solo la combinazione delle risposte precedenti ha funzionato per me. Lui quello che ho fatto e quello che è andato bene, e quello che è andato storto e la mia soluzione.

Ho un disco rigido crittografato LUKS che ho bisogno di montare da un USB di avvio dal vivo per Ubuntu 15.10 . Per farlo ho iniziato con il seguente comando,

 udisksctl unlock -b /dev/sda3 

dove sda3 è la partizione crittografata. Questo comando non ha funzionato con me e non sono sicuro del perché, quindi ho usato il seguente comando:

 sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume 

ha funzionato con me e non ho avuto bisogno di installarlo come era lì nel live boot.

Ora, ho bisogno di montare l’HD, e questa non era una cosa semplice: ho provato:

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

Ma il secondo comando non ha funzionato con me, e quindi devo trovare un lavoro su quale sia il seguente:

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

Quello era il mio percorso .. ma puoi usare il percorso dev/mapper/ubuntu e poi la doppia scheda per vedere il resto delle opzioni. Questo ha montato l’HDD come:

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

Quindi ho usato il seguente comando per montarlo come /media/my_device come segue:

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

che ha funzionato bene.

In sintesi

 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/ 

Tutte le risposte precedenti presumevano che l’utente già sapesse quale partizione è criptata. Venendo da qualcuno a cui la linea di comando non piace molto, mi aspettavo una risposta user-friendly … Quindi i miei 2cents qui.

  1. Apri l’applicazione “disks” di ubuntu.
  2. Individua il disco rigido montato nel pannello di sinistra.
  3. Clicca sulla partizione che ha “LUKS” nel suo nome: in questo modo puoi vedere il suo punto di mount nel testo “Device” sottostante (nel mio caso: /dev/sdb4 ).

Poi ho provato a montarlo come consigliato sopra:

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

Ma ho ottenuto questo errore:

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

Ok, suppongo che nautilus abbia già provato a montarlo (perché in realtà mi ha richiesto la password perché ho collegato l’USB, anche se non è finito a mostrare l’albero decrittografato). Tuttavia, il messaggio di errore non è molto utile perché non mi dice dove è già mappato / montato. Ma questo comando aiuta in questo 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 

Aha! Quindi è /dev/dm-3 .

Tuttavia, quando si tenta di montarlo, non funziona:

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

Dopo molti tentativi, ho scoperto che stavo correndo nel problema dei duplicate volume groups (descritto sopra da @amenthes) perché i comandi sudo vgscan -v e sudo vgdisplay mostravano due voci con lo stesso nome del gruppo di volumi. Tuttavia, ho trovato un modo migliore per affrontarlo rispetto al suo metodo (non è necessario avviare un LiveCD per rinominare i volumegroup!), In questo link , che citerò sopra (nel caso in cui quel collegamento si rompa …) :

Se esegui ls -la /dev/mapper/ dovresti vedere un luks-xxxxxx-xxxxx-xxxx o un file di questo tipo. Questa è la mapping che è stata creata quando Ubuntu ha richiesto la password di crittografia con una finestra di dialogo ma non è riuscito ad aprirla (tutta la finestra di dialogo è stata quella di chiamare luksOpen e luksOpen su quel file / dev / mapper / luks-xxx). Adesso:

  1. Assicurati che il tuo volume fisico sia disponibile eseguendo il comando sudo pvdisplay . Dovrebbe essere / dev / mapper / luks-xxx-qualunque.
  2. Ottieni l’uuid del volume eseguendo sudo pvs -o +vg_uuid . L’uuid sarà il valore visualizzato completamente a destra, contenente 7 valori delimitati da un trattino. Copia quelli da qualche parte mentre li useremo nel passaggio successivo. NON CONFONDERE UUIDI E COPIARE L’ERRATO. Copia solo quello per il tuo dispositivo corrente / dev / mapper / luks-xxx-qualunque.
  3. Cambia il gruppo di volumi per il tuo vecchio disco eseguendo il seguente comando sudo vgrename UUIDOFYOURDISKHERE oldhd Puoi cambiare “oldhd” in qualsiasi cosa tu desideri purché sia ​​diverso dal nome del gruppo di volumi del tuo attuale disco. Eseguendo questo passaggio rimuoverai il conflitto con i nomi dei gruppi di volumi che ti permetteranno ora di rendere disponibili i volumi.
  4. Esegui il comando vgchange -ay per rendere attivi i volumi.
  5. Creare una cartella per un punto di assembly da qualche parte, ad esempio: sudo mkdir /media//someDir
  6. sudo mount /dev/oldhd/root /mnt/oldhd : sudo mount /dev/oldhd/root /mnt/oldhd .
  7. Dopo aver lavorato con i tuoi file, dovresti rinominare il tuo volumegroup su ubuntu-vg se vuoi che il volume sia ancora avviabile.

Stavo cercando lo stesso …

I passaggi di mkdir erano la mia ragione per guardare oltre, inoltre ho modificato il policykit per consentire al mio utente di eseguire il mount senza chiedere prima il passwd di root e poi la password del volume crittografato, quindi anche il sudo era sopra kill.

La mia soluzione che ho trovato era l’uso di gvfs-mount dal pacchetto gvfs-bin . Ora con gvfs-mount -d /dev/sda7 mi viene richiesta solo la password crittografata e viene montata in /media/VOLUME_LABEL .

Sul mio Chromebook con (crostino) Ubuntu Xenial 16.04 trovo che quando rilascio:

sudo cryptsetup luksOpen / dev / sda1 my_encrypted_volume

per la pubblicazione sopra e inserisci la mia passphrase, ottengo “Nessuna chiave disponibile con questa passphrase”. Tuttavia, per caso ho trovato (e molto strano che sia!) Il tutto funziona quando aggiungo “–debug” al comando cryptsetup! Sono quindi in grado di montare il volume e accedere ai file.

Chiedendo al gestore di file Thunar di eseguire i risultati di assembly “Non autorizzato a eseguire operazioni”. errore. Non riesco a immaginare un modo per aggirare questo, ma dato che posso fare il mount sulla linea di comando, è abbastanza accettabile.

Ok, quindi ho una soluzione di lavoro ragazzi, come discusso in precedenza il motivo per cui stai mount: unknown filesystem type 'LVM2_member' errore del mount: unknown filesystem type 'LVM2_member' è perché di default la tua macchina linux assegna lo stesso nome VG al disco rigido esterno, quindi tutta la partizione su HDD esterno non attivo.

Questo è quello che hai bisogno di fare:

  1. scolbind il disco rigido esterno e prendere nota del sudo vgdisplay command UUID interno usando ( sudo vgdisplay command ),
  2. ora inserisci il tuo disco rigido esterno e rinomina il gruppo VG del tuo HDD ESTERNO (non interno, questo interromperà il tuo box) ( vgrename UUID_Number [new-group] ).
  3. Controlla che il nuovo nome sia aggiornato in VGdiplay, ora triggers il nuovo VGroup ( vgchange [new_group] -ay ), verifica che tutte le partizioni siano triggerste ( lvscan ).
  4. Ora dovresti vedere tutte le tue partizioni sotto ls /dev/mapper/[new_group] , tutto ciò che devi fare è montare la partizione ( mount -t ext4 /dev/mapper/[new_group]-data /zez )