Ich habe zwei Vorschläge ...
Option 1: Separate ESPs
Unter EFI befindet sich der Bootloader auf "der" EFI-Systempartition (ESP). Ich habe das Wort "the" in Anführungszeichen gesetzt, weil es keine Regel gibt, die besagt, dass Sie auf ein ESP beschränkt sind. Wenn Sie zwei ESPs auf Ihrer Festplatte erstellen, können Sie eines davon für Ihre erste Installation und das zweite ESP für die zweite Installation verwenden. Dies sollte ziemlich nahtlos funktionieren, obwohl Sie Ihre Partitionen manuell erstellen müssen (mit der Option "Etwas anderes" während der Installation), zumindest für Ihre zweite Ubuntu-Installation.
Ein Problem bei diesem Ansatz besteht darin, dass, obwohl in der EFI-Spezifikation ausdrücklich angegeben ist, dass Sie so viele ESPs erstellen können, wie Sie möchten, einige Softwareprodukte dadurch verwirrt werden können. Ein prominentes Beispiel hierfür ist das Windows-Installationsprogramm, zumindest über Windows 7 (ich weiß nichts über Windows 8 oder höher). Wenn das Windows 7-Installationsprogramm eine Festplatte mit zwei ESP-Dateien sieht, wird sie ausgeblendet und führt seltsame Aktionen aus. IIRC führt die eigene Installation nicht ordnungsgemäß durch. Es ist denkbar, dass Windows-Reparaturtools unter demselben Problem leiden. Wenn Sie Windows auf diesem System nicht booten, sollte dies keine große Sache sein. Wenn du bistWenn Sie mit Windows booten, sollten Sie sich des Problems einfach bewusst sein, da Sie es leicht beheben können, indem Sie den Typcode der Nicht-Windows-ESPs vorübergehend ändern, wenn Probleme auftreten. Beachten Sie, dass Windows auf einer Festplatte mit mehreren ESPs einwandfrei startet. Es ist nur das Installationsprogramm, das an solchen Festplatten erstickt.
Ein weiteres Problem ist, wie Sie zwischen Ihren beiden Distributionen wechseln würden. Möglicherweise müssen Sie eines oder beide GRUB-Setups Ihrer Installation mit einem Tool wie GRUB Customizer anpassen . Eine andere (aber nicht inkompatible) Option wäre, den Boot-Manager Ihrer Firmware zu verwenden, um zwischen Ihren beiden GRUB-Installationen zu wechseln, und jeweils nur eine eigene Version von Ubuntu zu booten.
Option 2: GRUB (oder zumindest die GRUB-Tools von Ubuntu) aufgeben
Das Problem mit GRUB für Ihre Situation ist, dass Sie zwei Installationen haben und die GRUB-Wartungstools durch diese Konfiguration wahrscheinlich verwirrt werden. Diese Beobachtung führt zu der offensichtlichen Lösung, dass Sie diese Werkzeuge einfach nicht verwenden sollten. Es gibt mehrere andere EFI-Bootloader für Linux, von denen die meisten einfacher manuell zu warten sind als GRUB. Sie können ELILO, SYSLINUX, Fedoras gepatchtes GRUB Legacy, gummiboot oder rEFInd einrichten und beide Installationen manuell verwalten. Da rEFInd Kernel beim Booten erkennt, sollte rEFInd nach seiner Einrichtung nahezu wartungsfrei sein. Alternativ, aber in ähnlicher Weise, können Sie Ihre grub.cfg
Datei von Hand bearbeiten, um das zu tun, was Sie möchten, anstatt sich auf die GRUB-Setup-Skripte zu verlassen.
Abgesehen von rEFInd müssen Sie für alle diese Tools Konfigurationsänderungen vornehmen, wenn Sie einen Kernel aktualisieren. Dies ist ein Problem. Es stellt sich auch die Frage, wann und wie das zusätzliche Startprogramm installiert werden soll. Ich würde es wahrscheinlich erst nach Ihrer zweiten Ubuntu-Installation verschieben, da jede Installation ihre eigene Kopie von GRUB als Standard-Bootloader registriert und Sie diesen Standard überschreiben möchten.
Beachten Sie auch, dass keines dieser Tools einen Kernel aus einem verschlüsselten Dateisystem oder einem LVM lesen kann. Daher benötigen Sie /boot
für jede Ihrer Ubuntu-Installationen eine separate unverschlüsselte Partition. Dies ist die Art und Weise, wie die meisten Anweisungen, die ich gesehen habe, sagen, dass sie sowieso eine verschlüsselte Ubuntu-Installation einrichten sollen. Es ist also wahrscheinlich keine große Sache, es sei denn, Sie möchten auf dem neuesten Stand der Festplattenverschlüsselung spielen.
Einige EFI-Bootloader haben zusätzliche spezifische Partitionierungs- oder Dateisystemanforderungen. Vor allem für ELILO, SYSLINUX und gummiboot muss sich der Kernel auf einer FAT-Partition befinden, und das ESP funktioniert hierfür am besten. Sie können dies tun, indem Sie das ESP unter /boot
mounten. Dies ist jedoch eine zweifelhafte Lösung in Ubuntu, da für einige Paketaktualisierungen symbolische Links erforderlich sind. Sie hätten auch Probleme mit zwei separaten Ubuntu-Installationen, da beide versuchen würden, dieselben Dateien zu beanspruchen. (In diesem Fall bedeutet "das ESP" wirklich "die Partition, von der aus der Bootloader ausgeführt wurde", sodass Sie in diesem Fall nur ein ESP haben können.) GRUB Legacy und rEFInd sind diesbezüglich flexibler.
Meine Empfehlung
Persönlich würde ich rEFInd dafür verwenden - aber da ich rEFInd pflege, bin ich nicht gerade unvoreingenommen. Tatsächlich habe ich einen Computer, der zwischen drei Ubuntu-Installationen mehrfach bootet, und rEFInd wechselt problemlos zwischen ihnen. Dieses spezielle System verwendet keine Verschlüsselung, aber ich bezweifle, dass dies aus Sicht von rEFInd neue Probleme verursachen wird.
Allerdings sollten auch separate ESPs einwandfrei funktionieren, mit der Einschränkung, dass Sie möglicherweise GRUB Customizer verwenden müssen, um die Einstellungen von mindestens einer dieser GRUB-Kopien zu optimieren.
Hier sind die Schritte, die ich zum Dual-Boot mit zwei LUKS-verschlüsselten Ubuntu-Systemen auf einer einzelnen Festplatte mit UEFI unter Verwendung der von Rod Smith zuvor empfohlenen Option 2 verwendet habe. Dies war speziell mit Ubuntu 18.04.1-Desktop. Die Verschlüsselung des Home-Verzeichnisses wird während der Installation nicht mehr als Option angeboten, da Bedenken hinsichtlich der Zuverlässigkeit und Wartung von eCryptfs bestehen. Es wird empfohlen, stattdessen LUKS zu verwenden. Ich denke, dies ist die beste Option, um mehrere Benutzer mit verschlüsselten Home-Partitionen zu haben.
quelle
Ich verwende den folgenden Ansatz mit einem einzelnen ESP:
Ich habe zusätzliche Bootloader für jedes Betriebssystem mit erstellt
Verwenden eines anderen
ID
für jedes Betriebssystem.Beispiel:
Ich habe Ubuntu 16.04 und Ubuntu 18.04 installiert. Ich starte Ubuntu 16.04 und starte
Dann von gebootet in Ubuntu 18.04 laufe ich
In den UEFI-Einstellungen sehe ich die neuen Starteinträge mit den Namen
Ubuntu1604
undUbuntu1804
ordne die Startreihenfolge neu, um einen der neuen Einträge an die erste Stelle zu setzen.Ich kann auch die Ordner mit diesen Namen im ESP sehen.
Wenn ein System-Upgrade mit einer neuen Version von grub ausgeliefert wird, wird eine neue Instanz von grub im
ubuntu
Ordner-auf dem ESP neu installiert. Dies hat keine Auswirkungen auf die von mir selbst erstellten Bootloader, aber ich muss die Boot-Reihenfolge erneut ändern da derubuntu
-entry in der Boot-Reihenfolge an die erste Stelle geschoben wird.Folgendes
efibootmgr -v
zeigt sich in meiner Konfiguration:quelle
GRUB_DISTRIBUTOR="Bionic_18_04"
und installiere die Neuinstallation von grub als UEFI-Standard-ID. Aber jedes Mal wird nur /EFI/ubuntu/grub.cfg als Standardspeicherort verwendet, um nicht von meinem neuen /EFI/bionic_18_04/grub.cfg zu booten.efibootmgr -v
die ich meiner Antwort hinzugefügt habe. Es klappt. Möglicherweise haben Sie zusätzliche Änderungen, die Sie daran hindern. Was ich beschrieben habe, ist das einzige, was ich tue, damit es funktioniert.