[Systemd / LUKS] Failed unit avec partition chiffré et keyfile sur un device externe (résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
hsa
Hankyu
Messages : 12
Inscription : mar. 08 nov. 2011, 11:15

[Systemd / LUKS] Failed unit avec partition chiffré et keyfile sur un device externe (résolu)

Message par hsa »

Bonjour,

J'ai récemment installé Arch sur un laptop.
Voulant sécuriser l'installation j'ai chiffré le disque avec LUKS.
J'ai chiffré la partition /root

Code : Tout sélectionner

NAME          FSTYPE      FSVER LABEL    UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda
├─sda1        vfat        FAT32          4EC6-90CE                               402M    21% /boot
└─sda2        crypto_LUKS 2              026eb853-cb06-42ae-b4c9-b544959c8fe9
  └─cryptroot ext4        1.0            5377d121-77fa-41a6-a825-3e4e0b51c4f4  191.2G     7% /
mmcblk0
└─mmcblk0p1   vfat        FAT32 noSDCard AAEC-72DB                                           /run/systemd/cryptsetup/keydev-cryptroot
Au boot la partition est déchiffrée à l'aide d'un keyfile présent sur un device externe (mmcblk0p1).

J''utilise systemd-boot avec l'entrée suivante

Code : Tout sélectionner

title    Arch Linux
linux    /vmlinuz-linux
initrd   /intel-ucode.img
initrd   /initramfs-linux.img
options  rd.luks.name=026eb853-cb06-42ae-b4c9-b544959c8fe9=cryptroot root=/dev/mapper/cryptroot rd.luks.key=026eb853-cb06-42ae-b4c9-b544959c8fe9=/veoliarchtop/keyfile:UUID=AAEC-72DB resume=UUID=5377d121-77fa-41a6-a825-3e4e0b51c4f4 resume_offset=49152 rw quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_priority=3
J'ai modifier mkinitcpio.conf afin d'avoir les MODULES et les HOOKS tel que définie dans le wiki

Code : Tout sélectionner

MODULES=(vfat)
...
HOOKS=(base systemd autodetect keyboard sd-vconsole modconf block sd-encrypt filesystems fsck)
Et pourtant aprés avoir booter correctement j'ai une unit qui est failed

Code : Tout sélectionner

  UNIT                                             LOAD   ACTIVE SUB    DESCRIPTION
● run-systemd-cryptsetup-keydev\x2dcryptroot.mount loaded failed failed /run/systemd/cryptsetup/keydev-cryptroot

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

1 loaded units listed.

Code : Tout sélectionner

Jan 21 16:10:46 veoliarchtop systemd[1]: run-systemd-cryptsetup-keydev\x2dcryptroot.mount: Unit cannot be reloaded because it is inactive.
Jan 21 16:10:54 veoliarchtop systemd[1]: run-systemd-cryptsetup-keydev\x2dcryptroot.mount: Failed to run 'mount' task: No such file or directory
Jan 21 16:10:54 veoliarchtop systemd[1]: run-systemd-cryptsetup-keydev\x2dcryptroot.mount: Failed with result 'resources'.
Jan 21 16:10:54 veoliarchtop systemd[1]: Failed to mount /run/systemd/cryptsetup/keydev-cryptroot.
Auriez vous des indices qui me permettrai de comprendre ce qu'il se passe ?

Merci d'avance.

edit: typo
Dernière modification par hsa le lun. 10 févr. 2020, 13:43, modifié 3 fois.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Systemd / LUKS] Failed unit avec partition chiffré et keyfile sur un device externe

Message par benjarobin »

Bonjour,
Quel est le contenu de ton fstab ?
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
hsa
Hankyu
Messages : 12
Inscription : mar. 08 nov. 2011, 11:15

Re: [Systemd / LUKS] Failed unit avec partition chiffré et keyfile sur un device externe

Message par hsa »

Mon fstab :

Code : Tout sélectionner

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/cryptroot
UUID=5377d121-77fa-41a6-a825-3e4e0b51c4f4 /     ext4 rw,relatime 0 1

# /dev/sda1
UUID=4EC6-90CE                            /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2

# swap
/swapfile                                 none  swap defaults    0 0

hsa
Hankyu
Messages : 12
Inscription : mar. 08 nov. 2011, 11:15

Re: [Systemd / LUKS] Failed unit avec partition chiffré et keyfile sur un device externe

Message par hsa »

EDIT : Finalement cela ne change rien au problème (voir messages ci-dessous)

@benjarobin : Au vu de ta demande j'ai supposé que mon fstab était foireux et qu'il manquait une entrée pour la carte SD.
J'ai donc essayer de régénérer le fstab ce qui m'a bien rajouté l'entrée :

Code : Tout sélectionner

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/cryptroot
UUID=5377d121-77fa-41a6-a825-3e4e0b51c4f4 /     ext4 rw,relatime 0 1

# /dev/sda1
UUID=4EC6-90CE /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2

# /dev/mmcblk0p1 LABEL=noSDCard
UUID=AAEC-72DB /run/systemd/cryptsetup/keydev-cryptroot vfat ro,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2

# swap
/swapfile none  swap defaults    0 0


Et je n'ai plus d'erreur !
Si c'est bien ce qu'il me manquais et bien je n'ai pas vu dans la documentation l'endroit ou il est dis de rajouter cette entrée dans fstab ?
Dernière modification par hsa le ven. 31 janv. 2020, 13:05, modifié 1 fois.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Systemd / LUKS] Failed unit avec partition chiffré et keyfile sur un device externe

Message par benjarobin »

Je ne pensais pas à cela... Je ne pense pas que cela devrait être nécessaire (Bug quelques part ?).
Par contre, pour des raisons techniques, il faudrait remplacer UUID=5377d121-77fa-41a6-a825-3e4e0b51c4f4 par /dev/mapper/cryptroot
Cela aide systemd à gérer les dépendances. Ce n'est pas un problème de ne pas utiliser d'UUID ici, car il n'y a qu'un seul /dev/mapper/cryptroot sur ton système.
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
hsa
Hankyu
Messages : 12
Inscription : mar. 08 nov. 2011, 11:15

Re: [Systemd / LUKS] Failed unit avec partition chiffré et keyfile sur un device externe

Message par hsa »

Deux choses :
  • Le fait de rajouter dans le fstab la carte SD ne corrige absolument pas le probléme.
    Je ne sais pas ce que j'ai merdé hier dans mes tests mais au reboot, je tombe en ermergency mode.
    (et en même temps , je ne sais pas pourquoi mais cela me parrait plus cohérent)
  • J'ai modifier le fstab pour utiliser /dev/mapper/cryptroot.

    Code : Tout sélectionner

    # <file system> <dir> <type> <options> <dump> <pass>
    # /dev/mapper/cryptroot
    #UUID=5377d121-77fa-41a6-a825-3e4e0b51c4f4 /     ext4 rw,relatime 0 1
    /dev/mapper/cryptroot /     ext4 rw,relatime 0 1
    
    # /dev/sda1
    UUID=4EC6-90CE        /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
    
    # swap
    /swapfile             none  swap defaults    0 0
    
    Et cela abouti au même erreur. A savoir un status systemd degradé avec en unit failed :

    Code : Tout sélectionner

    ● run-systemd-cryptsetup-keydev\x2dcryptroot.mount - /run/systemd/cryptsetup/keydev-cryptroot
         Loaded: loaded (/proc/self/mountinfo)
         Active: failed (Result: protocol) since Fri 2020-01-31 12:33:18 CET; 6min ago
          Where: /run/systemd/cryptsetup/keydev-cryptroot
           What: /dev/mmcblk0p1
    
    Jan 31 12:33:18 archlinux systemd[1]: Mounting /run/systemd/cryptsetup/keydev-cryptroot...
    
    
Avatar de l’utilisateur
RoyalPanda
yeomen
Messages : 239
Inscription : lun. 19 mai 2014, 09:08

Re: [Systemd / LUKS] Failed unit avec partition chiffré et keyfile sur un device externe

Message par RoyalPanda »

Bonjour,

L'erreur de départ ne semblait pas particulièrement liée à la partition chiffré si tu arrivais a booter.
Je dirais plutôt, comme l'indique le message d'erreur :

Code : Tout sélectionner

Jan 21 16:10:54 veoliarchtop systemd[1]: run-systemd-cryptsetup-keydev\x2dcryptroot.mount: Failed to run 'mount' task: No such file or directory
Que le point de montage n'existe pas lorsque systemd essaye de le monter, ce qui ne semblerait pas étonnant vu que /run est un dossier « volatile » (tmpfs ou ramfs)

Panda
hsa
Hankyu
Messages : 12
Inscription : mar. 08 nov. 2011, 11:15

Re: [Systemd / LUKS] Failed unit avec partition chiffré et keyfile sur un device externe

Message par hsa »

Bonjour
RoyalPanda a écrit : dim. 02 févr. 2020, 00:13 L'erreur de départ ne semblait pas particulièrement liée à la partition chiffré si tu arrivais a booter.
Effectivement le problème semble être sur le montage de la carte SD qui contient le keyfile.

Code : Tout sélectionner

$ systemctl --failed
  UNIT                                             LOAD   ACTIVE SUB    DESCRIPTION
● run-systemd-cryptsetup-keydev\x2dcryptroot.mount loaded failed failed /run/systemd/cryptsetup/keydev-cryptroot

$ lsblk -f
NAME          FSTYPE      FSVER LABEL    UUID                                 FSAVAIL FSUSE% MOUNTPOINT
sda
├─sda1        vfat        FAT32          4EC6-90CE                             401.8M    21% /boot
└─sda2        crypto_LUKS 2              026eb853-cb06-42ae-b4c9-b544959c8fe9
  └─cryptroot ext4        1.0            5377d121-77fa-41a6-a825-3e4e0b51c4f4  189.4G     8% /
mmcblk0
└─mmcblk0p1   vfat        FAT32 noSDCard AAEC-72DB                                           /run/systemd/cryptsetup/keydev-cryptroot

On voit bien que le point de montage correspond à la carte SD.

Et avec le user root j’accède bien à /run/systemd/cryptsetup/keydev-cryptroot

Code : Tout sélectionner

# ls -l /run/systemd/cryptsetup/keydev-cryptroot/
total 32
drwxr-xr-x 3 root root 32768 Jan 24 21:16 veoliarchtop

J'avoue ne pas trop comprendre le mount échoue alors qu'il est bien present o_O
hsa
Hankyu
Messages : 12
Inscription : mar. 08 nov. 2011, 11:15

Re: [Systemd / LUKS] Failed unit avec partition chiffré et keyfile sur un device externe

Message par hsa »

Visiblement cela à l'air de s'être résolu grâce à une mise à jour.
Je ne sais pas quel paquet est responsable de la correction.
Mais, comme j'ai pris des maj pour
  • cryptsetup
  • linux
  • systemd
  • ...
Je me dis que dans le tas il dois bien y avoir un lien de cause à effet.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Systemd / LUKS] Failed unit avec partition chiffré et keyfile sur un device externe (résolu)

Message par benjarobin »

Je mise sur un bug (qui a donc été corrigé) dans systemd...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Répondre