LVM PE wurde auf neues PV migriert, Linux-Boot wird jetzt nach Entschlüsselung des LUKS-Geräts angehalten

264
Porcelain Mouse

Ich habe alle LV-Speicherbereiche von einer PV auf eine neue PV umgestellt. Sowohl alte als auch neue PVs waren LUKS-verschlüsselte Geräte. root ist eine der migrierten LVs.

Dies funktionierte nicht, da das Boot nach der Migration nicht einmal versuchen würde, die neue LUKS PV zu entsperren. Es wurde nach einem Kennwort für alte LUKS gefragt, das nicht mehr existiert. Diese Laufwerke wurden bereits neu zugewiesen und überschrieben.

Wenn ich jedoch die Kernelparameter rd.auto = 1 verwende und alte Kernelparameter entferne, die die UUID der alten PV angeben, kann ich Linux zum Booten bringen und nach dem richtigen Passwort fragen. Trotzdem funktioniert es immer noch nicht.

Bevor ich das Passwort gebe, heißt es

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

So findet es automatisch die neue LUKS-Partition und lässt sie mich entsperren, aber das ist alles, nachdem sie die Suche nach brauchbaren Dateisystemen aufgegeben hat. Warum sollte es das tun?

Zu diesem Zeitpunkt wartet der Startvorgang auf unbestimmte Zeit, bis die erforderlichen Jobs abgeschlossen sind. Ich habe alle ihre Namen vergessen, aber einer ist cryptsetup.target, und ich denke, einer hat die Wurzel erhöht. Das macht also Sinn.

Aber ich weiß nicht, wie man Grub und Dracut so konfiguriert, dass dies funktioniert. Es ist, als hätte die initrd eine Konfiguration, die nur sagt, dass LVM auf der alten PV gestartet werden soll. Wenn ich ein Live-Image starte, sind alle LVs vorhanden und die Daten sehen toll aus.

Welche grub2-Konfiguration (Efi-Modus) und Dracut-Konfiguration muss ich zur Behebung dieses Problems benötigen?

EDIT Seit dem Posten habe ich viele Dinge ausprobiert. Ich habe Kerel-Params gefunden, die ich für richtig halte, aber sie scheinen keinen Unterschied zu machen. Ich habe ein neues initrd-Image mit dracut erstellt, zu dem ich cryptsetup und ein neues festes / etc / crypttab hinzugefügt habe. Das schien zu helfen und alle Fehler sind jetzt weg ... aber es wird immer noch nicht gebootet! Mit den neuesten Möglichkeiten und initrd Ich habe versucht, der Boot - Prozess nicht nicht fragen, für jedes Passwort. Es sagt "Senden an plymoth für Passwortanfrage", aber das bleibt stehen.

Eine der Kernel-Optionen, die ich ausprobierte, war rd.shell. Dies gab mir eine heruntergezogene Shell, nachdem es abgelaufen war und ich konnte root nicht finden. Von der dracut-Shell aus kann ich den mdadm RAID PV mit --assemble --scan starten, luksOpen mit meiner Passphrase, und alle LVs befinden sich genau dort. Ich verstehe immer noch nicht, was es will.

1
Vollkommene Kuh, die verrückt klingt !! Konnten Sie eine Sicherungskopie der Daten erstellen, bevor sie verschlüsselt wurden, oder das gesamte Volume Bit für Bit zuvor? Sie sind nicht sicher über eine Antwort, die Ihnen persönlich helfen wird, aber lassen Sie uns wissen, ob Sie eine Sicherungskopie der Daten haben, die Sie vor der Durchführung des Vorgangs genommen haben, der die Ursache war. Pimp Juice IT vor 6 Jahren 0
Ich weiß nicht, warum das wichtig ist, aber ich habe es getan. Die Sicherung ist jedoch unbrauchbar, da ich keine Daten verloren habe. Das gesamte System, alle Dateisysteme sind in Ordnung, genau dort, wo ich sie gelassen habe. Ich sehe alles, wenn ich das Live-Image starte. Ich kann das System einfach nicht starten. Ich verstehe nicht, wie es vorher funktioniert hat und jetzt nicht. Porcelain Mouse vor 6 Jahren 0

1 Antwort auf die Frage

0
Porcelain Mouse

Wie ich gehofft hatte, gilt der "Standard" -Ansatz beim Konfigurieren von Linux-Booten, aber ich habe lange gebraucht, um ihn neu zu lernen, da sich seit der letzten Verwendung viel geändert hat.

  • boot live bild
  • MD zusammenbauen, LUKS freischalten, LVM prüfen usw.
  • Bau eines Zielsystems im Chroot-Gefängnis
    • mount / newroot ../boot ../boot/efi und ../var mindestens
    • 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
  • Reparieren Sie aus dem Gefängnis das Zeug nach Bedarf (/ etc / fstab / etc / crypttab /etc/mdadm.conf / etc / lvm / etc.).
  • und grub2 CMDLINEenv var mit neuen Kernelparametern korrigieren
    • dracut --print-cmdline unter Fedora / RHEL / CenOS gibt einen minimalen Satz von Parametern aus. Dies ist sehr hilfreich, da es schwierig ist, die Anforderungen Ihrer Distribution zu kennen und mit den neuesten Kernel-Optionen Schritt zu halten. Außerdem sparen Sie sich die Mühe, UUIDs für luks / md-Geräte aufzuspüren!
    • für Ubuntu?
    • für Arch?
  • neue grub2 config erstellen
    • grub2-mkconfig [-o]
  • Installieren Sie ggf. grub2
    • für BIOS grub2-install
    • für EFI abhängig von der Distribution
    • dnf grub-efi neu installieren grub-efi-module shim für Fedora?
    • Ubuntu?
    • Bogen?
  • regen intird / initramfs boot-image
    • Abschlag für Fedora
    • Ubuntu?
    • Bogen?