[lvm sur usb] démonter proprement luks sur lvm en USB (début)

Applications, problèmes de configuration réseau
Avatar de l’utilisateur
rafmav
yeomen
Messages : 271
Inscription : mer. 11 mars 2009, 13:30

[lvm sur usb] démonter proprement luks sur lvm en USB (début)

Message par rafmav »

Bonjour,

Je vous expose le problème, j'essaye d'être exhaustif (donc certains propos sont hors sujet, désolé) :
Ancien disque dur crypté avec cryptsetup et luks, maintenant utilisé comme secours backup et branché en USB (pas pris le temps de faire autrement), environnement gnome 3 et nautilus.
Il a gardé les 3 anciennes partitions (/dev/sdb si que 2 disques... le disque du système du laptop actuel est /dev/sda et marche très bien... passons) :
1. /dev/sdb1 le boot,
2. /dev/sdb2 la swap et
3. /dev/sdb3 crypté avec luks en volume physique (pv) et contenant plusieurs volumes logiques (lv nommée vg0) : un pour l'ex-root (racine /), un pour l'ex-home, un pour une swap inutilisée c'est tout.

CE QUI MARCHE:
Au branchement, pas de problème:
1. boot sur la partition physique /dev/sdb1 est reconnu à gauche dans l'explorateur de nautilus (d'ailleurs inutilement, passons),
2. la swap sur la partition physique /dev/sdb2 inutile et inutilisée ne s'affiche pas et ne semble pas être monté,
3. popup de demande phrase de passe pour le disque (d'ailleurs ça me propose de l'enregistrer définitivement, passons également la respect de la discrétion des phrases de passe, mais c'est du gnome donc...), le disque apparait dans /dev/mapper/

Code : Tout sélectionner

ls /dev/mapper
/dev/mapper/luks-a0e*********************************
(il s'agit probablement du numéro d'UUID de la partition ou du disque) et le mot de passe de mon profil m'est demandé, puis probablement l'interface fait probablement un

Code : Tout sélectionner

vgchange -ay
"tout seul", et les 2 volumes logiques apparaissent dans /dev/mapper sous les noms "groupe de volume" (vg0 ici) + nom du volume logique :

Code : Tout sélectionner

ls /dev/mapper
/dev/mapper/vg0-home
/dev/mapper/vg0-root
/dev/mapper/vg0-swap
et sont montées dans /run/media/moi/{root,home}, quand je clique dessus dans nautilus via "Autres emplacements" home et root, ça me redemande le mot de passe de mon profil (c'est casse-pied mais bon passons), et le volume logique sélectionné s'affiche alors à gauche dans nautilus, et est navigable, lisible, inscriptible, etc. et fonctionne normalement.
via un

Code : Tout sélectionner

ls /proc/partitions
   8        0  976762584 sda
   8        1     524288 sda1
   8        2   67108864 sda2
   8        3    8388608 sda3
   8        4  900539716 sda4
 254        0  487334919 dm-0
 254        1    8388608 dm-1
 254        2   67108864 dm-2
 254        3  411836416 dm-3
à lire ainsi:
sda est le disque dur de l'ordinateur.
dm-0 est le disque /dev/sdb3 mappé en /dev/mapper/luks-a0e*********************************
C''est la partition physique 3 du disque dur /dev/sdb, crypté avec luks, contenant le volume physique vg0 (qui aurait mieux fait de s'appeler pv0 -physical volume 0, passons), contenant lui-même le groupe de volumes logiques vg0 -volume group 0-, contenant 3 volumes logiques :
dm-1 est l'ancienne /dev/mapper/swap
dm-2 est l'ancienne /dev/mapper/root
dm-3 est l'ancienne /dev/mapper/home
(l'usage de lvm -logical volume manager- serait discutable sur un laptop unique, mais eh bien si, comme éventuelle extension, passons également).

EN REVANCHE :
C'est au débranchement (intempestif ou pas, arracher une prise USB, passons),
Les volumes logiques restent faussement montés, quoi qu'on fasse via nautilus, il faut la ligne de commande, et apparaissent toujours dans
/dev/mapper
Pire, au rebranchement (sauf redémarrage) que c'est encore plus casse-pieds:
les messages de nautilus comme quoi ils sont encore utilisés, en fait inutilisables etc.
D'autres ennuis peut-être liés: le démontage par un clic droit via nautilus démonte tous les disques de /dev/sdb (donc si on démonte /dev/sdb1 en boot, ça démonte tout, etc quelque soit la partition...); ça c'est moins génant, et peut faire l'objet d'un autre sujet (pouvoir monter séparément des partitions d'un même disque, mais restons FOSS), passons.
De mémoire, les volumes logiques montés n'apparaissent pas dans mount (jamais)
D'ailleurs, dans

Code : Tout sélectionner

$ udisksctl status
MODEL                     REVISION  SERIAL               DEVICE
--------------------------------------------------------------------------
***Disk SD*************      X6*****  1827A****************         sda     
Le disque démonté en USB n'apparait pas,
alors que dans (extrait)

Code : Tout sélectionner

$ udisksctl dump
...
/org/freedesktop/UDisks2/block_devices/dm_2d0:
  org.freedesktop.UDisks2.Block:
    Configuration:              []
    CryptoBackingDevice:        '/org/freedesktop/UDisks2/block_devices/sdb3'
    Device:                     /dev/dm-0
    DeviceNumber:               65024
...
obtiennent le même type d'informations les

Code : Tout sélectionner

$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/mapper/luks-a0e18e7c-6bfe-4ca0-9a34-43b0d30ad045
  VG Name               vg0
...
idem

Code : Tout sélectionner

$ sudo lvdisplay
--- Logical volume ---
  LV Path                /dev/vg0/swap
  
  --- Logical volume ---
  LV Path                /dev/vg0/root
  --- Logical volume ---
  LV Path                /dev/vg0/home
...
LES ÉCHECS:
En ligne de commande :

Code : Tout sélectionner

sudo vgchange -an
retire
/dev/mapper/vg0-swap
/dev/mapper/vg0-home
/dev/mapper/vg0-root
de la liste, mais pas luks-a0e*********************************
là on essaye un

Code : Tout sélectionner

LANG=C sudo cryptsetup luksClose /dev/mapper/luks-a0e*********************************
Device /dev/mapper/luks-a0e********************************* is still in use.
(désolé LANG=C pour les recherches internet avec les vocables anglais)
ça, ça ne marche pas:

Code : Tout sélectionner

sudo udisksctl unmount -p /dev/mapper/vg0-home 
(udisksctl unmount:2058522): GLib-GIO-CRITICAL **: 15:48:14.110: g_dbus_object_manager_get_object: assertion 'g_variant_is_object_path (object_path)' failed
Error looking up object with path /dev/mapper/vg0-home
$ sudo udisksctl unmount -b /dev/mapper/vg0-home 
Error unmounting /dev/dm-3: GDBus.Error:org.freedesktop.UDisks2.Error.NotMounted: Device `/dev/dm-3' is not mounted
LA SOLUTION TROUVÉE:

Code : Tout sélectionner

$ sudo cryptsetup luksClose /dev/mapper/vg0-home 
$ sudo cryptsetup luksClose /dev/mapper/vg0-root
$ sudo cryptsetup luksClose /dev/mapper/vg0-swap
$ sudo cryptsetup luksClose /dev/mapper/luks-a0e18e7c-6bfe-4ca0-9a34-43b0d30ad045 
(cryptsetup semble ne pas accepter les wildcards *$ ...)
Pour pouvoir remonter tout ça, sauf reboot, le but est d'obtenir de "vider" /dev/mapper, il ne doit plus rester que "control" (qui y était au départ) pour remonter tout ça proprement (d'ailleurs démonter proprement avant débranchement ne sert à rien...):

Code : Tout sélectionner

ls /dev/mapper
/dev/mapper/control
HOURRA !

Ouf, là je peux remonter tout ça proprement et m'en servir.

LMES QUESTIONS:
Comment automatiser tout ça ?
En gros, obtenir en plus du démontage une fermeture propre des partitions cryptées ?
Donc les intégrer au démontage de nautilus ou à plus bas niveau si un crétin (moi, autre) débranche l'USB d'un coup ?
(d'ailleurs reste le problème de la synchronisation via sync ou autre, passons)
#rmv$@f29£8µ1
Ma petite paresse me perdra...
Si vous ne voulez pas vous tromper, ne faites rien!
Impossible est impossible: est venue une personne qui ne savais pas que c'était impossible, et qui l'a fait!
Avatar de l’utilisateur
rafmav
yeomen
Messages : 271
Inscription : mer. 11 mars 2009, 13:30

Re: [lvm sur usb] démonter proprement luks sur lvm en USB (début)

Message par rafmav »

Omission: mercid'avance de votre lecture et de vos réponses !
#rmv$@f29£8µ1
Ma petite paresse me perdra...
Si vous ne voulez pas vous tromper, ne faites rien!
Impossible est impossible: est venue une personne qui ne savais pas que c'était impossible, et qui l'a fait!
laurent85
Elfe
Messages : 951
Inscription : mar. 16 oct. 2018, 21:05

Re: [lvm sur usb] démonter proprement luks sur lvm en USB (début)

Message par laurent85 »

Bonjour,
Avec Nautilus je ne pense pas que ce soit faisable. Et en ligne de commande c'est la succession de ces commandes qui doit être nécessaire et suffisante, je suppose les volumes montés et le swap actif (même si c'est pas le cas pour le swap normalement) :

Code : Tout sélectionner

sudo umount /dev/mapper/vg0-home
sudo umount /dev/mapper/vg0-root
sudo swapoff /dev/mapper/vg0-swap
sudo vgchange -an vg0
sudo cryptsetup close luks-a0e18e7c-6bfe-4ca0-9a34-43b0d30ad045
Répondre