Ich habe kürzlich eine SSD als Ersatz für die Festplatte meines Laptops erhalten und mich entschieden, die "Vollfestplatten" -Verschlüsselung zu ändern und zu verwenden.
Ich habe eine kleine unverschlüsselte Partition für /boot
und eine große verschlüsselte LUKS-Partition erstellt, auf der ich mit LVM 5 logische Volumes in einer Volume-Gruppe erstellt habe:
- Eine, um Fedora (
lv_fedora
) zu installieren . - Eine für Swap (
lv_swap
). - Eines für ein anderes Linux-Betriebssystem (
lv_os2
). - Und zwei für Daten (
lv_data1
undlv_data2
).
Ich habe Fedora lv_fedora
ohne Probleme als mein erstes Betriebssystem installiert und kann es über das GRUB-Menü starten, aber jetzt weiß ich nicht, wie ich ein anderes Linux-basiertes Betriebssystem (Linux Mint 17) auf der verschlüsselten Festplatte installieren und Fedoras GRUB2 erstellen kann Erkennen Sie es und starten Sie auch dieses Betriebssystem.
Ich habe zwei verschiedene Ansätze ausprobiert. In beiden Fällen habe ich ubiquity
das Linux Mint-Installationsprogramm mit der --no-bootloader
Option gestartet , um zu verhindern, dass Mint den Bootloader installiert. In beiden Fällen habe ich zum Starten der Installation zuvor die LUKS-Partition vom Dateimanager des LinuxMint Live-Images entsperrt, um das entsprechende lv_os2
Logik-Volume als Installationsziel auswählen zu können . Jetzt:
- Zuerst habe ich versucht Linux Mint in einer einzigen Partition zugewiesen installieren
/
inlv_os2
. Die Installation war erfolgreich. Von Fedora aus habe ich ausgeführtgrub2-mkconfig -o /boot/grub/grub.cfg
, um die GRUB-Einträge zu aktualisieren (das habe ich mein ganzes Leben lang getan, wenn ich eine unverschlüsselte Festplatte verwendet habe). GRUB hat festgestellt, dass Linux Mint vorhanden ist, und die entsprechenden Einträge zum Startmenü hinzugefügt. Das Problem war, dass ich danach nicht mehr von diesen Einträgen booten konnte. - Dann dachte ich, vielleicht [1] lag es daran, dass die Kernel-Images im
boot
Ordner in der Linux Mint-Partition verschlüsselt wurden . Vielleicht brauchte GRUB 2 diese Dateien in einer unverschlüsselten Partition, genau wie bei der ersten Installation von Fedora (ich habe eine/boot
unverschlüsselte Partition verwendet, nur weil dies das empfohlene Setup war). Diesmal habe ich also Fedoras/boot
Partition gesichert (nur für den Fall) und Linux Mint neu installiert, aber auch die unverschlüsselte Partition verwendet/boot
, damit die Kernel-Images in dieses Verzeichnis kopiert und möglicherweise nach der Installation gestartet werden können. Die Installation war erfolgreich und die/boot
von Linux Mint hinzugefügten "zusätzlichen" Dateien haben keine der Fedora-Dateien überschrieben, sodass zumindest Fedora funktionierte und ich die nicht verwenden musste/boot
Bakcup. Ich habe dann Fedora gestartet undgrub2-mkconfig -o /boot/grub/grub.cfg
erneut ausgeführt . Diesmal war es noch schlimmer. GRUB hat Einträge verwechselt und beispielsweise einen Eintrag für Fedora (Targetinglv_fedora
) erstellt, der das Kernel-Image eines Linux Mint lädt. Ich habe versucht, diese Einträge manuell zu ändern, aber erfolglos.
Ich wette, ich mache etwas falsch. Gibt es eine bessere Möglichkeit, ein sekundäres Linux-Betriebssystem auf einem bereits verschlüsselten Volume zu installieren und das primäre Linux-Betriebssystem den Bootloader verwalten zu lassen? (Aktualisieren der GRUB-Einträge, um auch das Booten vom sekundären Betriebssystem zu ermöglichen)
[1] : Wie Sie sehen, versuche und lerne ich nur, aber ich habe kein tiefes Verständnis für dieses Thema.
/boot/grub/grub.cfg
Einträge manuell zu ändern, nachdem GRUB alle Fedora- und LinuxMint-Einträge dort verwechselt hat, aber ohne Erfolg./etc/crypttab
anstelle von verwendet/etc/mkinitcpio.conf
.update-initramfs
wird verwendet, um das Boot-Image zu generieren. Siehe diese accit.us/?p=4 (obwohl Sie möglicherweise die Mint-Kernel-Version angeben möchten, anstatt diese-k all
Option zu verwenden)Antworten:
Nach allem, was ich gelesen habe, scheint es darauf zurückzuführen zu sein, dass initramfs "in den Kernel eingebettet und in einem frühen Stadium des Startvorgangs geladen wird". 1
Für Mint müssen Sie konfigurieren
/etc/crypttab
und dann verwendenupdate-initramfs
. 2Soweit ich weiß, sollte dies als Leitfaden für die Erstellung des initramfs-Images nach der Installation von Mint dienen, das Sie anscheinend bereits installiert haben. Hoffentlich deckt dies alles ab, aber stellen Sie sicher, dass Sie jedes Teil selbst recherchieren.
Live Boot Mint
mount
undchroot
auf der Partition , auf der Sie Mint installiert haben. 3Erstellen und konfigurieren
/etc/crypttab
, um beim Booten zu entsperren. 4 Hier fügen Sie den Pfad zu Ihrem lvm hinzu, in dem Mint installiert ist. Dieser sollte sich basierend auf Ihrer Frage in/dev/mapper/lv_os2
oder/dev/<big encrypted LUKS>/lv_os2
5 befindenDie meisten Beispiele, die ich gesehen habe, sehen
/etc/crypttab
wie folgt aus :root /dev/mapper/lv_os2 none luks
. Die vier Felder sind: Ihrer Wahl, Pfad zu dem lvm, auf dem Sie Mint installiert haben,none
Festlegen des Kennworts, das beim Systemstart manuell eingegeben werden soll, undluks
Erzwingen des LUKS-Modus, dies scheint jedoch nicht erforderlich zu sein.Konfigurieren Sie
/etc/fstab
das Mounten, das/dev/mapper/<name>
Sie gerade erstellt haben,/etc/crypttab
als Stammverzeichnis/
. So etwas wie:/dev/mapper/<name> / <fs_vfstype> <fs_mntops>
Sehen Sie
man fstab
.Sobald Sie
/etc/crypttab
und/etc/fstab
nach Ihren Wünschen konfiguriert haben , können Sie verwenden ,update-initramfs
um build / das Boot - Image aktualisieren.Siehe
man update-initramfs
. Es ist möglicherweise am besten, die spezifische Kernel-Version zu verwenden, dieuname -r
in Mint angezeigt wird . Der Befehl sollte ungefähr so aussehen,update-initramfs -u -k 3.11.0-26-generic
außer dass die Kernel-Version durch Ihre eigene ersetzt wird.Zu diesem Zeitpunkt können Sie Fedora möglicherweise erneut starten und die
grub2-mkconfig -o /boot/grub/grub.cfg
Option ausprobieren, mit der Mint zuvor erkannt wurde. Wenn dies nicht funktioniert, befolgen Sie die Konfiguration des Multi-Boot-Handbuchs im GRUB-Handbuch. 6Insbesondere dieser Teil:
Hoffentlich deckt dies den Großteil dessen ab, was Sie benötigen, um Mint zum Booten zu bringen.
quelle
/boot
Partitionen verschlüsseln lassen und GRUB in der unverschlüsselten Partition installieren (theoretisch kann es heutzutage von verschlüsselten Partitionen lesen). Dann lade ich den Bootloader/boot
abhängig vom ausgewählten Betriebssystem auf die entsprechende verschlüsselte Partition. Oder vielleicht ist ein Kettenladen nicht notwendig, ich muss es versuchen, aber leider gibt es nicht viel Dokumentation über die Verwendung von GRUB mit verschlüsselten/boot
Partitionen ... :-PEs beantwortet Ihre Frage nicht wirklich "wie", sollte Ihnen aber ein wenig Einblick geben - und es ist zu lang für einen Kommentar.
Erstens können Sie keine verschlüsselte Partition starten. Einfach, weil die Boot-Kette die Verschlüsselung erst ziemlich spät im Prozess versteht:
Hardware lädt Firmware - normalerweise BIOS von UEFI (auf x86-Plattform). Die Hardware als solche ist vollständig datenunabhängig - sie lädt nur alles, was sie in einem dauerhaften Speicher findet (auf einer vordefinierten Adresse).
Die Firmware lädt den Bootloader oder direkt den Kernel. Wie bei der CPU hat sie keine Ahnung von möglichen Verschlüsselungsmodi (nicht, dass dies nicht möglich wäre, aber normalerweise nicht).
Wenn ein Bootloader beteiligt ist, lädt er den Kernel (oder einen verketteten Bootloader, wie zum Beispiel beim Booten von Windows) und meistens auch eine anfängliche Ramdisk (die entweder in einer eigenständigen Datei oder in das Kernel-Image eingebettet sein kann). Hier wird es interessanter, da beispielsweise GRUB2 von einem LUKS-Gerät booten kann, die Dokumentation jedoch eher knapp zu sein scheint .
Die Kernel - Mounts das Root - Dateisystem und läuft
init
(System V init,systemd
,OpenRC
,upstart
... Entscheidungen sind reichlich vorhanden).Beim Booten mit der ersten Ramdisk wird diese zuerst in den Speicher erweitert, dann gemountet und das Init-System von dort aus ausgeführt. Das initramfs-Shuold enthält alles, was zum Mounten des richtigen Root-Dateisystems erforderlich ist. In der Regel enthält es alle verfügbaren Treiber (z. B. RAID-Treiber, die erforderlich sind, wenn sich das endgültige Rootfs auf einem RAID-Gerät befindet) sowie eine grafische Boot-Infrastruktur. Dies bedeutet häufig ein Minimum (oder nicht ganz so minimal) X11-Stack - und oft auch Tools zum Mounten verschlüsselter Partitionen. Nachdem alles eingerichtet ist und montierten die letzten rootfs des Init - System läuft von Initramfs tut
pivot_root()
(die sehenpivot_root(8)
undpivot_root(2)
man - Seiten für weitere Details), so dass das Umschalten/
auf das richtige Dateisystem.Der einfachste Weg, ein verschlüsseltes Volume zu booten, ist normalerweise das Kryptografie-Setup in Schritt 5 - hauptsächlich, weil es vom Kernel ausgeführt wird, der ausgeführt werden soll, und die Infrastruktur nutzen kann, die von jeder anständigen aktuellen Distribution angeboten wird.
Daher möchten Sie wahrscheinlich untersuchen, wie genau Fedora und Mint von einem verschlüsselten Volume booten. Die Lösung für Ihr Problem könnte beispielsweise darin bestehen, ein geeignetes initramfs-Image für den Mint-Kernel zu erstellen. Möglicherweise können Sie sogar ein Initramfs für beide Kernel verwenden, vorausgesetzt, Sie stellen sicher, dass die richtigen Rootfs abhängig vom gestarteten Kernel bedingt bereitgestellt werden, obwohl ich dies nicht empfehlen würde, insbesondere wenn Sie sich für die Verwendung eines anderen (z. B. stock) entschieden haben ) Kernel für jede Distribution.
Das heißt, Sie möchten möglicherweise auch überlegen, ob Sie wirklich zwei Installationen nebeneinander haben möchten - es ist möglicherweise bequemer, eine virtualisierte auszuführen.
quelle
root=
. Somit ist es durchaus möglich, dass ein Initramfs für zwei verschiedene Betriebssysteme (mit verschiedenen Kerneln und Root-Partitionen) funktioniert. Sie müssten einfach darauf achten, dass die Komponenten in den initramfs mit beiden kompatibel sind, oder dass Komponenten für beide enthalten und korrekt ausgewählt wurden. Es ist wahrscheinlich einfacher, zwei Initramfs zu erstellen und die Grub-Einträge anzuweisen, das richtige zu laden.