Fehlerhafter Debian-Boot beim Versuch, eine verschlüsselte Partition automatisch einzuhängen

342
Alex Malkovich

Ich habe ein ziemlich gründlich verschlüsseltes, ausbalanciertes und gut funktionierendes Dateisystem mit dm-crypt / LUKS / cryptsetup erstellt, aber ich habe den Fehler gemacht, den Home-Ordner bei der ersten Installation von Debian (jessie) unverschlüsselt zu lassen.

Da dies zu einem hoch organisierten und sehr straffen System herangewachsen ist, das mehrere Wochen in Anspruch nahm, wollte ich den Heimatordner mit einer minimalen Änderung des Systems verschlüsseln. Ich hatte bereits eine große verschlüsselte Partition auf einem separaten Laufwerk für vom Benutzer erstellte Dokumente und Projekte. Deshalb dachte ich: Warum verschieben Sie nicht einfach die Home-Ordner-Daten dorthin und weisen Debian stattdessen darauf?

Dies würde natürlich dazu führen, dass die verschlüsselte Partition automatisch gemountet wird, die ich bei jedem Start verwenden möchte. Derzeit wird es nur bei Bedarf gemountet, wobei ein Skript verwendet wird, das "cryptsetup luksOpen" und "mount" aufruft. Vor der Eingabe von "usermod -d" und der Bearbeitung von "HOME =" in "/ etc / default / useradd" bestand die erste Aufgabe darin, eine vorhandene, funktionierende verschlüsselte Partition automatisch einzuhängen. Einfach, richtig?

Nun, ich habe es irgendwie vermasselt, weil das System jetzt nicht mehr booten kann ...

Folgendes habe ich getan:

Nachdem ich das Thema sorgfältig durchgelesen hatte, um sicherzustellen, dass ich nichts übersehen habe, habe ich "/ etc / crypttab" und "/ etc / fstab" in dieser Reihenfolge bearbeitet.

Mein Crypttab war einfach: Es enthielt zwei Zeilen. Diese wurden beide vom Debian-Installationsprogramm hinzugefügt, als das System neu war, und ich hatte nie Probleme mit ihnen:

sda2_fsroot UUID = deadbeef-dead-beef-dead-beefdeadbeef keine luks

sda3_swappart UUID = beefdead-beef-dead-beef-deadbeefdead keine luks, swap

(Offensichtlich habe ich die UUIDs für diesen Beitrag geändert.)

(Ja, ich bin mir bewusst, dass ich Urandom als Schlüsseldatei für den Swap verwenden könnte. Ich möchte das zuerst beheben.)

Ich war nicht sicher, welche UUID in der zusätzlichen Zeile hinzugefügt werden sollte, die ich dort hinzufügen wollte, weil blkid sowohl eine "UUID" als auch eine "PARTUUID" für die Partition zeigte, die ich automatisch mounten wollte (es handelt sich um eine GPT-Partition). Es fiel mir schwer, konkrete Antworten zu finden, also entschied ich mich, auf Nummer sicher zu gehen und dem Handbuch zu folgen und die UUID wie folgt einzugeben:

Dokumente UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx keine Dokumente

(Hier sind die x die UUID, nicht die PARTUUID der Partition, die ich mounten wollte. Meine Quelle war blkid, und ich kopierte, um sicherzugehen, dass ich es richtig verstanden habe.)

(Dies wurde als neue Zeile direkt unter den vorhandenen zwei Zeilen in Crypttab hinzugefügt.)

Dann habe ich Crypttab gespeichert und fstab geöffnet. In fstab habe ich einfach die folgende Zeile direkt unter der untersten Zeile hinzugefügt (was das DVD-Laufwerk war):

/ dev / mapper / documents / storage / documents Ext4-Standardeinstellungen 0 2

(Hier ist "/ storage / documents" der Ordner und der Mountpoint, den ich immer für diese Partition verwendet habe.)

Die Optionen "ext4", "default", "0" und "2" sollten alle richtig sein, was ich gelesen und getan habe. Um mich vor dummen Fehlern zu schützen, wie z. B. die Verwendung von Tabulatoren anstelle von Leerzeichen, habe ich diese Optionen tatsächlich kopiert aus der bestehenden Arbeitszeile für sda2_fsroot (um es klar zu machen: sda2_fsroot ist als / gemountet).

Dann, nach etwas mehr Recherchen und Lesen, lief ich widerwillig (da sich das anfühlt, als würde ich eine Herzoperation machen) als Wurzel:

Update-Initramfs -u

Dann habe ich neu gestartet. Und es geht nicht ...

Ich werde aufgefordert, das Kennwort für die fsroot und das Swappart anzugeben. Ich gebe beide Passwörter ein und erhalte eine Nachricht, dass die Blöcke auf fsroot in Ordnung aussehen. Und dann nichts. Ich werde nie nach dem Passwort für Dokumente gefragt. Boot geht nie weiter.

Ein Neustart im Rettungsmodus hilft nicht. Es friert auch beim Bootvorgang ein.

Da ich meine Vorsichtsmaßnahmen treffen wollte, so einfach dies auch erscheinen mag, hatte ich tatsächlich eine Sicherungskopie der vier Dateien in "/ boot /" (vmlinuz, initramfs und zwei anderen) erstellt, bevor ich die Änderungen an crypttab und fstab und vorgenommen habe hat update-initramfs ausgeführt.

Nachdem ich keine Online-Antworten gefunden hatte, startete ich eine Debian-Live-DVD, bestätigte, dass alle meine verschlüsselten Laufwerke wie üblich intakt und bereitstellbar waren, und versuchte, die vier Dateien in "/ boot /" in ihrem vorherigen Zustand wiederherzustellen. wie ich vermute, dass initramfs der schuldige ist (vielleicht etwas mit Debian zu tun, der sich dehnt?).

Um besonders sicher zu sein, habe ich die vier Dateien in / boot / nicht gelöscht und ersetzt: Ich finde, dass dieser Ordner / diese Partition so besonders ist, dass die Dateien möglicherweise spezielle Sektoren auf dem Laufwerk belegen. Um sicherzugehen, habe ich alle vier aktualisierten Dateien mit der Erweiterung ".bak" umbenannt und die alten Versionen mit dem "richtigen" Dateinamen nach "/ boot /" kopiert, wobei beide Versionen im Ordner verbleiben.

Das Ergebnis?

Jetzt werde ich nicht einmal nach einem Passwort gefragt ... Beim Booten bekomme ich einen schwarzen Bildschirm mit blinkendem Unterstrich, der einfach da sitzt, als ob die CPU angehalten wurde.

Was mache ich jetzt?

Ich kenne die niedrigen Details von initramfs, fstab usw. einfach nicht gut genug, und ich bin wirklich überrascht, wie leicht dieses Zeug zerbricht, auch wenn ich versuche, mich vorzubereiten und vorsichtig zu sein!

Jede Hilfe wäre sehr dankbar!

1

1 Antwort auf die Frage

0
bixbyte

Beginnen Sie mit einem einfachen Linux wie Mint und sys Ihrer HD mit der / als Bootdiskette und weisen Sie einen Swap-Speicherplatz zu. Ich hatte noch nie Probleme mit der Vorformatierung unter Linux. Normalerweise verwende ich ext4.