LVM PE migré vers un nouveau PV, le démarrage de Linux s'arrête maintenant après le déchiffrement du périphérique LUKS

1

J'ai migré toutes les étendues LV d'un PV à un nouveau PV. Les anciens et les nouveaux PV étaient des périphériques chiffrés par LUKS. root est l'un des LV migrés.

Cela ne fonctionnait pas car, après la migration, boot n'essayait même pas de déverrouiller le nouveau PV de LUKS. Il demandait un mot de passe pour les anciens LUKS, qui n'existent plus, ces lecteurs ont déjà été réaffectés et remplacés.

Cependant, si j'utilise les paramètres du noyau rd.auto = 1 et supprime les anciens paramètres du noyau qui spécifient l'UUID de l'ancien PV, je peux obtenir Linux pour démarrer et demander le bon mot de passe. Pourtant, cela ne fonctionne toujours pas.

Avant de donner le mot de passe, il est dit

dracut-initqueue /usr/bin/crypt-run-generator: line 14: cryptsetup: command not found Unnecessary job for dev-mapper-luks-<UUID of new PV LUKS> was removed

Donc, il trouve automatiquement la nouvelle partition LUKS et je vais le déverrouiller, mais ce n’est que après avoir renoncé à trouver des systèmes de fichiers utilisables. Pourquoi ferait-il cela?

À ce stade, le processus de démarrage s'arrête en attendant indéfiniment la fin des travaux requis. J'ai oublié tous leurs noms, mais l'un d'entre eux est cryptsetup.target et je pense que l'un d'eux était en train de monter racine. Donc, cela a du sens.

Mais, je ne sais pas comment configurer grub et dracut pour que cela fonctionne. C'est comme si initrd avait une configuration lui indiquant de ne démarrer LVM que sur l'ancien PV. Lorsque je lance une image en direct, tous les volumes logiques sont présents et les données sont superbes.

De quelle configuration grub2 (mode efi) et configuration dracut ai-je besoin pour résoudre ce problème?

EDIT Depuis que j'ai posté, j'ai essayé beaucoup de choses. J'ai trouvé des paramètres de kerel que je pense avoir raison, mais ils ne semblent pas faire de différence. J'ai créé une nouvelle image initrd avec dracut, à laquelle j'ai fermement ajouté cryptsetup et un nouveau fichier / etc / crypttab corrigé. Cela a semblé aider et toutes les erreurs ont maintenant disparu ... mais cela ne démarre toujours pas! En utilisant les dernières options et initrd je l' ai essayé, le processus de démarrage ne pas demander une passphrase. Il dit "Envoi à plymoth pour la demande de mot de passe" mais cela ne fonctionne plus.

Maintenant, l’une des options du noyau que j’ai essayée était rd.shell. Cela m'a donné un obus dracut après son expiration, incapable de trouver la racine. Depuis le shell dracut, je peux démarrer le PV mdadm RAID avec --assemble --scan, luksOpen avec mon mot de passe, et tous les LV sont là. Donc, je ne comprends toujours pas ce que ça veut dire.

Souris en porcelaine
la source
Une vache qui sonne folle !! Avez-vous pu effectuer une sauvegarde des données avant leur cryptage ou de tout le volume, bit par bit? Pas sûr d'une réponse qui vous aidera personnellement, mais laissez-nous savoir si vous avez une sauvegarde des données que vous avez prise avant d'effectuer l'opération qui a provoqué cela.
Pimp Juice IT
Je ne sais pas pourquoi c'est important, mais oui, je l'ai fait. Cependant, la sauvegarde est inutile puisque je n'ai perdu aucune donnée. Tout le système, tous les systèmes de fichiers sont bons, là où je les ai laissés. Je vois tout quand je démarre l'image en direct. Je ne peux tout simplement pas démarrer le système lui-même. Je ne comprends pas comment cela fonctionnait avant et pas maintenant.
Porcelain Mouse

Réponses:

0

Comme je l'espérais, l'approche "standard" de la configuration du démarrage sous Linux s'applique, mais il m'a fallu beaucoup de temps pour le réapprendre, car beaucoup de choses ont changé depuis ma dernière utilisation.

  • démarrer l'image en direct
  • assembler le MD, déverrouiller LUKS, vérification LVM, etc.
  • construire un système cible dans la prison chroot
    • mount / newroot ../boot ../boot/efi et ../var, au moins
    • mount -t sysfs sysfs / newroot / sys
    • mount -t proc none / newroot / proc
    • mount -t bind / dev / newroot / dev
    • mount -t bind / run / rnewroot / run
  • chroot / newroot
  • depuis la prison, corrigez les choses si nécessaire (/ etc / fstab / etc / crypttab /etc/mdadm.conf / etc / lvm / etc.)
  • et, corrigez grub2 CMDLINEenv var avec les nouveaux paramètres du noyau
    • dracut --print-cmdline sur Fedora / RHEL / CenOS générera un ensemble minimal de paramètres. C'est super utile car il est difficile de savoir ce dont votre distribution a besoin et de suivre les dernières options du noyau. En outre, vous évite de rechercher des UUID pour les appareils luks / md!
    • pour Ubuntu?
    • pour Arch?
  • construire une nouvelle configuration grub2
    • grub2-mkconfig [-o]
  • installer grub2, si nécessaire
    • pour le BIOS grub2-install
    • pour EFI, dépend de la distribution
    • dnf réinstaller grub-efi grub-efi-modules shim pour Fedora?
    • Ubuntu?
    • Cambre?
  • image de démarrage regen intird / initramfs
    • dracut pour Fedora
    • Ubuntu?
    • Cambre?
Souris en porcelaine
la source