125 votes

Monter des volumes cryptés à partir de la ligne de commande ?

Si j'ai un disque externe crypté (ou un disque interne qui n'est pas dans fstab), je vois une entrée pour lui dans Nautilus -- avec une entrée comme "X GB Encrypted Volume". Je peux cliquer sur ce volume, et on me demande un mot de passe pour déchiffrer et monter le périphérique.

Mais comment puis-je faire cela à partir de la ligne de commande ?

Cette page wiki et d'autres documents que j'ai pu trouver, ne font référence qu'à des méthodes de décryptage de l'appareil par l'interface graphique, mais cela ne suffit pas dans le contexte des serveurs sans tête ou des connexions SSH. Existe-t-il un moyen simple d'obtenir que les périphériques soient montés sur des emplacements automatiques dans le répertoire /media comme ils le feraient avec l'interface graphique ?

(Je ne parle pas de répertoires personnels cryptés - je connais les ecryptfs-mount-private . Cette question concerne les volumes chiffrés supplémentaires).

125voto

Jacobbus Points 60

Votre volume est probablement crypté avec LUKS, voici comment le monter :

Vous avez besoin :

sudo apt-get install cryptsetup

Pour décrypter le volume :

sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume

Maintenant vous pouvez le monter comme d'habitude :

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

Pour verrouiller à nouveau le conteneur, il faut d'abord le démonter :

sudo umount /media/my_device
sudo cryptsetup luksClose my_encrypted_volume

Pour le mettre automatiquement dans le /media utilisez l'outil udisks

sudo udisks --mount /dev/mapper/my_encrypted_volume

106voto

Tom Points 635

Les étapes de la réponse de @Georg Schölly n'ont pas fonctionné pour moi à l'époque, bien qu'elles puissent fonctionner maintenant, quelques versions d'Ubuntu plus tard. À l'époque, après le sudo mount /dev/mapper/my_encrypted_volume /media/my_device étape j'ai obtenu l'erreur :

mount : système de fichiers de type inconnu 'LVM2_member'.

Déverrouillage et montage du disque avec udiskctl

A la place, j'ai utilisé udisksctl une interface de ligne de commande qui interagit avec le système de gestion de l'information de l'entreprise. udisksd service.

Voici ce qui a fonctionné ( /dev/sdb5 la partition de mon disque dur est marquée comme crypt-luks ):

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

Après avoir tapé la première commande, vous serez invité à saisir votre phrase de chiffrement. Une fois que la partition chiffrée est déverrouillée, la deuxième commande la montera. Si cela réussit, vous obtiendrez le message suivant similaire à ça :

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

De là, je pouvais accéder aux données :)

Verrouillage du disque avec udiskctl

Démontez le périphérique :

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

Vous devez désactiver tous les volumes logiques dans le système de gestion de l'information. ubuntu-vg groupe de volume en premier. Sinon, vous obtiendrez une erreur du type "Périphérique occupé" si vous essayez de le verrouiller ( plus d'infos ):

sudo lvchange -an ubuntu-vg

Ensuite, vous serez en mesure de verrouiller la partition cryptée.

udisksctl lock -b /dev/sdb5

Notes

  • Le site udisksctl les commandes sont exécutées sans sudo .

  • Noms des mappeurs de périphériques : le ubuntu--vg-root Le nom peut changer d'une version à l'autre d'Ubuntu (par exemple, j'ai vu qu'il s'appelait system-root y ubuntu-root aussi). Un moyen simple de connaître le nom est d'exécuter la commande suivante après avoir déverrouillé la partition LUKS :

    ls -la /dev/mapper

    Ensuite, en regardant la sortie de la ls le nom dont vous aurez besoin sera généralement celui qui est lié par un lien symbolique à la commande /dev/dm-1

  • Noms de mappeurs de périphériques, alternatifs : une alternative à la commande précédente est d'exécuter :

    lsblk -e7

    Vous pourrez y voir le mappage du nom du périphérique sous forme d'arborescence. Le site -e 7 est utilisée pour exclure de la sortie les dispositifs en boucle (ID 7) créés par les snaps installés. Simplement pour avoir moins d'encombrement.

  • Noms des volumes logiques : vous pouvez exécuter le sudo lvs pour connaître les noms des groupes de volumes et des volumes logiques.

  • Application Disques l'application GNOME Disks ne désactive pas automatiquement les volumes logiques avant de verrouiller la partition. Même si vous avez réussi à déverrouiller la partition via l'interface graphique, vous devrez passer par la ligne de commande et exécuter la commande sudo lvchange -an ubuntu-vg avant de pouvoir le verrouiller depuis l'interface graphique.

30voto

taitelman Points 301

Si vous obtenez cette erreur :

mount: unknown filesystem type 'LVM2_member'

courir :

sudo apt-get install lvm2
sudo lvscan

puis activer tous les LVM que vous voyez

sudo vgchange -ay

puis ré-exécutez le montage :

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

14voto

amenthes Points 296

Un problème que j'ai rencontré, c'est que dupliquer les groupes de volumes : Mon système de récupération et le lecteur à récupérer étaient tous deux des systèmes ubuntu avec LVM. C'est pourquoi j'avais deux ubuntu-vg groupes de volumes ( vgdisplay affichait les deux, chacun avec son propre UUID, mais je ne pouvais pas accéder à leurs volumes logiques).

Ma solution s'appuie sur la réponse de Georg :

  • Démarrez à partir d'un live-linux (pour ne pas rencontrer le nom de groupe de volume en double).

  • sudo cryptsetup luksOpen /dev/sdaX my_encrypted_volume

  • entrez votre phrase de passe lorsque vous y êtes invité

  • sudo vgscan devrait maintenant récupérer les volumes/groupes contenus.

  • DRAGONS EN AVANT : NOUS CHANGEONS MAINTENANT LE NOM DU GROUPE DE VOLUME. VOUS NE POURREZ PAS DÉMARRER CE DISQUE PAR LA SUITE !

    utilice sudo vgrename ubuntu-vg ubuntu-vg2 pour renommer le groupe de volumes.

    Si vous avez besoin de démarrer à partir de ce disque, vous pouvez refaire ces étapes, mais en renommant votre groupe de volumes. arrière à ubuntu-vg. Une autre possibilité est de modifier votre configuration de démarrage avec le nouveau nom de vg.

Maintenant que la duplication du nom de VG est résolue, je peux redémarrer sur mon système normal, refaire l'installation de l'ordinateur. cryptsetup... , vgscan et ensuite monter /dev/mapper/ubuntu--vg2-root où vous voulez.

9voto

knocte Points 949

Toutes les réponses ci-dessus partent du principe que l'utilisateur sait déjà quelle partition est la partition chiffrée. Venant de quelqu'un qui n'aime pas tellement la ligne de commande, je m'attendais à une réponse conviviale... Donc mes deux centimes ici.

  1. Ouvrez l'application "disques" d'ubuntu.
  2. Localisez votre disque dur monté dans le panneau de gauche.
  3. Cliquez sur la partition qui a "LUKS" dans son nom : de cette façon, vous pouvez voir son point de montage dans le texte "Device" ci-dessous (dans mon cas : /dev/sdb4 ).

J'ai ensuite essayé de le monter comme indiqué ci-dessus :

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

Mais j'ai eu cette erreur :

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

Ok, donc je suppose que nautilus a déjà essayé de le monter (parce qu'il m'a effectivement demandé le mot de passe lorsque j'ai connecté l'USB, même s'il n'a pas fini par montrer l'arbre décrypté). Cependant, le message d'erreur n'est pas vraiment utile car il ne me dit pas où il est déjà mappé/monté. Mais cette commande aide dans ce cas :

$ 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 ! Donc c'est /dev/dm-3 .

Cependant, lorsqu'on essaie de le monter, cela ne fonctionne pas :

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

Après beaucoup de bricolage, j'ai découvert que je me heurtais à la duplicate volume groups problème (décrit ci-dessus par @amenthes) parce que les commandes sudo vgscan -v y sudo vgdisplay affichaient deux entrées avec le même nom de groupe de volumes. Cependant, j'ai trouvé une meilleure solution que sa méthode (pas besoin de démarrer dans un LiveCD pour renommer les groupes de volumes ! lien que je cite ci-dessus (juste au cas où le lien serait rompu...) :

Si vous exécutez ls -la /dev/mapper/ vous devriez voir un luks-xxxxxx-xxxxx-xxxx ou un autre fichier de ce type. C'est le mappage qui a été créé quand Ubuntu a demandé le mot de passe de cryptage avec une boîte de dialogue mais n'a pas réussi à l'ouvrir (tout ce que la boîte de dialogue a fait était d'appeler luksOpen et le mapper sur ce fichier /dev/mapper/luks-xxx). Maintenant :

  1. Assurez-vous que votre volume physique est disponible en exécutant la commande sudo pvdisplay commande. Ce devrait être /dev/mapper/luks-xxx-whatever.
  2. Obtenez l'uuid du volume en exécutant sudo pvs -o +vg_uuid . L'uuid sera la valeur affichée tout à droite, contenant 7 valeurs délimitées par des tirets. Copiez-les quelque part car nous les utiliserons à l'étape suivante. NE PAS CONFONDRE LES UUIDS ET COPIER LE MAUVAIS. Copiez uniquement celui de votre périphérique actuel /dev/mapper/luks-xxx-whatever.
  3. Changez le groupe de volume de votre ancien disque en exécutant la commande suivante sudo vgrename UUIDOFYOURDISKHERE oldhd Vous pouvez changer le "oldhd" en ce que vous voulez tant qu'il est différent du nom du groupe de volume de votre disque actuel. Cette étape permet de supprimer le conflit avec les noms de groupes de volumes, ce qui vous permettra de rendre les volumes disponibles.
  4. Exécutez la commande vgchange -a y pour rendre les volumes actifs.
  5. Créez un dossier pour un point de montage quelque part, par exemple : sudo mkdir /media/<yourUserName>/someDir
  6. Montez-le : sudo mount /dev/oldhd/root /mnt/oldhd .
  7. Après avoir travaillé avec vos fichiers, vous devriez renommer votre groupe de volume en ubuntu-vg si vous voulez que le volume soit toujours amorçable.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X