Wie erstelle ich mit LVM eine Multiboot-Umgebung für Ihre * buntu-Betriebssysteme auf einem GPT-formatierten Systemlaufwerk in einem UEFI-basierten System?

9

Mein Grund für die Verwendung von LVM ist, dass ich meine Betriebssysteminstallationen so oft neu installiere, aktualisiere und im Allgemeinen herumspiele, dass ich festgestellt habe, dass LVM mir eine fantastische Flexibilität beim Verschieben, Erweitern, Klonen und Sichern meiner Betriebssystempartitionen ohne die damit verbundenen Risiken bietet mit anderen Partitionierungsmethoden. Dies macht das Multibooting Ihrer Betriebssysteme jedoch manchmal etwas kompliziert und unvorhersehbar, insbesondere auf neuerer Hardware, wo der Prozess ein weiteres Maß an Komplexität gewinnt.

Ich spreche von den neuen UEFI-Motherboards (im Gegensatz zum BIOS), mit denen Sie das volle Potenzial von 3 TB + -Festplatten nutzen und von diesen booten können (wenn diese im Gegensatz zu MBR in GPT formatiert sind). Die Dinge können unglaublich kompliziert und durcheinander geraten, da jedes Mal, wenn Sie ein neues Betriebssystem auf Ihrem Computer installieren, die EFI-Bootloader-Dateien (.efi) Ihrer vorherigen Installation überschrieben werden und Sie eine Reihe fehlerhafter Einträge in Ihrem EFI erhalten "BIOS" -Startliste und eine Menge redundanter Grub-Bootloader, die über Ihre Partitionen verstreut sind. Das beleidigt mich auf so vielen Ebenen, nicht zuletzt ästhetisch.

Rich.T.
quelle

Antworten:

6

HINWEIS: Dies war die Antwort des OP. Ich habe es als CW hierher gebracht, damit es nicht geschlossen wurde. Wenn ein Mod dies sieht, bitte das Eigentum als Selbstantwort an das OP zurückgeben.

Im Folgenden werde ich detailliert beschreiben, wie dies alles etwas harmonisch funktioniert und das Durcheinander bis zu einem gewissen Grad beseitigt.

Erster Teil: Installieren.

Beachten Sie, dass Sie Windows 7 (oder 8?) Wenn Sie Windows 7 (oder 8?) Auf Ihrem Computer installieren möchten, wahrscheinlich zuerst installieren müssen , vorzugsweise auf der eigenen Festplatte, und Sie können es nicht auf Ihrer Festplatte installieren logische Datenträgergruppe. Dies liegt daran, dass das Windows 7 GPT / EFI-Installationsprogramm sehr einfach ist und Sie nicht die Dinge tun können, die Sie hier tun werden. Nach der Windows-Installation können Sie die Größe ändern und neu partitionieren und die Partitionen hinzufügen, die Sie für eine Multi-Boot-Installation benötigen. Die von Windows erstellte EFI-Systempartition kann mit einer Variation der unten beschriebenen Methode jederzeit für die Linux-Installationen wiederverwendet werden.

Erstens ist es hilfreich, das beabsichtigte Systemlaufwerk mit gparted (oder ähnlichem) zu löschen und es als GPT-Festplatte zu initialisieren, bevor Sie etwas anderes tun. Wenn Sie etwas nervös sind, wenn Sie einen nicht grafischen Partitionierer verwenden, um Ihre Festplatte von Grund auf neu einzurichten, lohnt sich dies auf jeden Fall und wird einfach von einem Standard-Desktop-USB- oder -CD-Installationsprogramm für Desktop-Computer aus durchgeführt. Mach es nicht in Windows. Ich bin mir nicht sicher, ob dies absolut notwendig ist, aber ich habe es getan. Sie können auch in dieser Phase die grundlegende Partitionierung für die Nicht-LVM-Partitionen durchführen, da dies nicht schaden würde und Ihnen einen Rahmen für die eigentliche Installation bietet.

Brennen Sie nun Ihre Installations-CDs / USBs. Wenn Sie die Ubuntu Alternate Desktop ISO (empfohlen) verwenden, müssen Sie diese auf eine CD brennen, da sie von einem USB-Stick einfach nicht funktioniert. Wenn es für eine LVM-Installation verwendet wird, wird es mit einem kritischen Fehler beendet, wenn versucht wird, Software mit aptitude / tasksel zu laden und zu installieren. Verwenden Sie also eine CD, wenn Sie wissen, was für Sie gut ist!

  • Ubuntu Server lässt sich in allen Fällen einwandfrei von einem USB-Stick (AFAIK) installieren. Wenn ich jedoch ein Ubuntu / Mythbuntu-Desktopsystem auf Server aufbauen möchte, werden alle möglichen unbeabsichtigten Macken eingeführt, die dann einige Zeit in Anspruch nehmen müssen. Bleiben Sie also bei Desktop, wenn Sie danach suchen.

  • Quantal (12.10) hat LVM als Option im grafischen Installationsprogramm (was großartig ist!) Und daher wurde die alternative ISO abgeschafft. Ich fand die manuelle Partitionierungsschnittstelle jedoch unflexibel, da es an LVM-Optionen mangelte, und funktionierte einfach nicht für Multi-Boot. Dies mag an dem zuvor erwähnten USB-Problem liegen, aber um ehrlich zu sein, hatte ich so viele Probleme mit einem Quantal-System, dass ich es ziemlich schnell aufgab und zu Precise (12.04.1) zurückkehrte.

  • Die andere Hauptoption ist die Verwendung des Net-Boot-Installationsprogramms, mit dem ich keine wirkliche Erfahrung habe (außer auf meinem Raspberry Pi), aber ich glaube, dass es Mini-ISOs mit textbasierten und GUI-Installationsprogrammen (GTK) gibt. die verbrannt und gebootet werden kann. Diese ziehen die meisten Installationsdateien direkt aus einem Repository und sind in hohem Maße anpassbar.

Als nächstes sollten Sie Ihr System von CD oder USB über den UEFI-Starteintrag im "BIOS" oder im Startmenü (normalerweise eines von [F8] - [F12] auf der Tastatur) starten.

Ich überlasse es Ihnen, die Vorbereitungen für den Installationsprozess zu durchlaufen. Wenn Sie jedoch zum Partitionierungsteil gelangen, wählen Sie Manuelle Partitionierung und erstellen Sie diese Partitionen (oder ändern Sie sie, wenn Sie bereits einige davon erstellt haben):

  1. Eine einzelne Partition der Größe 200 MB, FAT32, EFI-Systempartition mit dem Namen / der Bezeichnung "EFI", bootfähig, Format.

  2. Mehrere Partitionen: Größe 256 MB, EXT2, bootfähig, Format;

    • Sie sollten sie jeweils für das Betriebssystem benennen / beschriften, das sie darstellen, dh "OS_01_Boot" ... "OS_03_Boot" ... usw.

    • Beginnen Sie, indem Sie die erste als "/ boot" und alle anderen als "nicht verwenden" mounten.

    • Erstellen Sie eine Partition für jedes Betriebssystem, das Sie installieren möchten.

  3. Eine Partition, die den Rest des Speicherplatzes des Laufwerks als Volume für LVM einnimmt.

    • Konfigurieren Sie LVM auf dem Volume, das Sie gerade partitioniert haben, und erstellen Sie eine Volume-Gruppe für alle Ihre Betriebssysteme. Geben Sie ihm einen geeigneten Namen und viel Speicherplatz für alle. Ich würde empfehlen, jeweils mindestens 40 GB zu berücksichtigen, abhängig von der Art der Installation, die Sie für jede Installation planen.
  4. Erstellen Sie ein logisches Volume mit der gleichen Größe wie das physische RAM in Ihrem System, dh 8 GB, nennen Sie es "Swap", verwenden Sie es als Swap, Format.

  5. Erstellen Sie ein logisches Volume für jedes Betriebssystem innerhalb der Volume-Gruppe, dimensionieren Sie es wie oben vorgeschlagen und geben Sie jedem einen Namen, z. B. "Ubuntu_12.04" usw.

    • Formatieren Sie jedes nach EXT4 und benennen / beschriften Sie die Partitionen, während Sie fortfahren.

    • Beginnen Sie, indem Sie das erste als "/" (root) und alle anderen als "nicht verwenden" mounten.

Das ist es! Jetzt haben Sie eine Swap-, "/ boot" - und "/" (root) -Partition für Ihr System und Ersatzteile für Ihre nachfolgenden Installationen. Sie können jetzt die Änderungen in die Partitionstabelle übernehmen und mit dem Rest der Installation fortfahren.

Stellen Sie bei der Installation Ihres nächsten Betriebssystems sicher, dass Sie die nächste "/ boot" - bzw. "/" (Root) -Partition bereitstellen. Bitte stellen Sie sicher, dass Sie alle anderen als "nicht verwenden" markieren, einschließlich derjenigen, die Sie zuletzt verwendet haben.

Teil 2: Sichern von UEFI-Startdateien.

Sobald Sie Ihr neues Betriebssystem gestartet haben, müssen Sie Ihren UEFI-Bootloader für die spätere Verwendung sichern und sicherstellen, dass er bei der nächsten Installation nicht überschrieben wird. Dies befindet sich in "/ boot / efi / EFI" in einem eigenen Ordner mit dem Namen "ubuntu". Die betreffende Datei hat je nach Architektur Ihres PCs einen ähnlichen Namen wie "grubx64.efi". also "/boot/efi/EFI/ubuntu/grubx64.efi" für meinen Computer.

In meinem Fall habe ich es zum Sichern über die Konsole wie folgt kopiert:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Ubuntu_12.04.1

Es würde sich auf jeden Fall lohnen, eine weitere Kopie in Ihrem Home-Ordner oder an einem anderen sicheren Ort zu erstellen, nur für den Fall:

cp -r /boot/efi/EFI/ubuntu /home/user/Ubuntu_12.04.1

Sobald dies erledigt ist, können Sie sicher Ihr nächstes Betriebssystem installieren (gemäß den obigen Hinweisen), das höchstwahrscheinlich die ursprüngliche Datei und den ursprünglichen Ordner überschreibt und sich selbst zum Standard-UEFI-Starteintrag im "BIOS" macht. Wiederholen Sie den Vorgang erneut und so oft wie nötig, und geben Sie jedem Ordner einen anderen, aber repräsentativen Namen:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Server_12.04.1
cp -r /boot/efi/EFI/ubuntu /home/user/Server_12.04.1

Dritter Teil: Ändern der UEFI-Einträge in Ihrem UEFI "BIOS".

Geben Sie am Terminal Folgendes ein:

sudo efibootmgr

Sie sollten eine Ausgabe wie folgt erhalten:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0000* ubuntu
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Es ist wirklich ziemlich selbsterklärend. Es sollte das widerspiegeln, was Sie in Ihrer BIOS-Startliste sehen.

Lesen Sie:

man efibootmgr

Um zu sehen, was die Befehle tun, ändern Sie die folgenden Beispielbefehle, um Starteinträge hinzuzufügen und zu entfernen.

Erstens , zu entfernen , die „Boot0000 * ubuntu“ -Linie mit:

sudo efibootmgr -b 0000 -B

Ausgabe:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Dann werden wir einige Einträge für drei Betriebssysteme hinzufügen.

Betriebssystem Nr. 1:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu 12.04.1" -l \\EFI\\Ubuntu_12.04.1\\grubx64.efi

Ausgabe:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0000* Ubuntu 12.04.1

OS # 2:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu Server 12.04.1" -l \\EFI\\Server_12.04.1\\grubx64.efi

Ausgabe:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0001* Ubuntu Server 12.04.1

OS # 3:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Mythbuntu 12.04.1" -l \\EFI\\Mythbuntu_12.04.1\\grubx64.efi

Ausgabe:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0002,0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0002* Mythbuntu 12.04.1

So ändern Sie die Startreihenfolge:

sudo efibootmgr -o 0000,0001,0002,0006,0007,0005

Ausgabe:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0001,0002,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0002* Mythbuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Erledigt!

Es gibt einige ziemlich seltsame Syntax, insbesondere in Bezug auf die Dateipfade, aber es ist ziemlich einfach, wenn Sie eine gute Anleitung haben (was ich hoffe, dass dies so ist).

Danke fürs Lesen. :) :)

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#efibootmgr

Rufen Sie mich an V.
quelle
Danke, AbrahamVanHelpsing. Ich habe versucht, mich selbst zu beantworten, aber ich bin hier zu sehr ein Noob, denke ich. Ich werde versuchen, das später aufzuräumen; Die Formatierung ist schrecklich! Es ist 1:30 Uhr hier, also werde ich für den Moment aufgeben!
Rich.T.
2

Jedes Betriebssystem-Installationsprogramm, das die EFI-Bootloader-Dateien früherer oder anderer Betriebssysteme löscht, ist fehlerhaft. Ubuntu hatte dieses Problem in der Vergangenheit, aber es wurde angeblich mit Version 12.04 behoben. (Ich sage "angeblich", weil ich einige Berichte über Probleme in dieser Richtung gesehen habe, die mich glauben lassen, dass der Fehler für eine Minderheit von Systemen immer noch besteht.) Das heißt, Sie sichern Ihre EFI-Systempartition (ESP) vor einem Die Installation eines neuen Betriebssystems ist eine nützliche Versicherungspolice. Eine Sicherung auf Dateiebene sollte ausreichen, da EFI nicht auf Code angewiesen ist, der in Bootsektoren entfernt wird. (Es hängt jedoch von der GUID der Partition ab. Wenn also etwas das ESP löscht und ein neues erstellt, funktionieren die Bootloader-Einträge des EFI möglicherweise nicht mehr.)

Im Allgemeinen empfehle ich für Ihre Art der Konfiguration die Erstellung eines ESP, so vieler /bootPartitionen, wie Sie für erforderlich halten, und einer großen LVM-Partition. Wenn Sie erwarten, Linux-Distributionen zusammen mit anderen Betriebssystemen zu installieren, erstellen Sie diese drei oder vier LVM-Partitionen unterschiedlicher Größe, die Sie dann zu einer Volume-Gruppe zusammenführen. Auf diese Weise können Sie eine Partition (logisches Volume) aus Ihrer Volume-Gruppe ziehen und sie einem Nicht-Linux-Betriebssystem zuweisen. Die Nicht-LVM- /bootPartitionen bieten Ihnen die Möglichkeit, Bootloader zu verwenden, die LVM nicht verstehen (dh Nicht-GRUB2-Bootloader).

Wenn Sie ein neues Betriebssystem installieren, wird wahrscheinlich standardmäßig ein eigener Bootloader installiert. In einem komplexen Setup wie Ihrem ist dies wahrscheinlich die meiste Zeit falsch. Zur Korrektur ist es hilfreich, ein USB-Flash-Laufwerk oder eine CD-R mit Ihrem bevorzugten Bootloader zu installieren. Etwas, das andere Bootloader wie rEFIt oder sein abgeleitetes rEFInd automatisch erkennen kann , funktioniert in diesem Zusammenhang wahrscheinlich gut. (Beachten Sie, dass die Binärdateien auf der rEFIt-Website nur auf Macs funktionieren. REFInd ist eine sicherere Wahl für UEFI-basierte PCs.) Alternativ oder zusätzlich kann eine Möglichkeit zum Starten einer EFI-Shell hilfreich sein, da Sie Dateien verschieben können. Passen Sie die Startoptionen an und beheben Sie eine Reihe von Problemen über eine EFI-Shell. Viele EFI-Bootloader und Bootmanager können EFI-Shells starten. (SehenDieses Arch Linux-Wiki zum Herunterladen enthält Links zu einigen EFI-Shells.) Sowohl die rEFIt- als auch die rEFInd-CD-Images enthalten EFI-Shells.

Rod Smith
quelle
2

Sie müssen EFI nicht verwenden, um eine 2 + TB-Festplatte zu starten. Sie müssen nur GPT verwenden und eine 1 MB bios_grub-Partition unterhalb der 2 TB-Marke erstellen. Wenn Sie feststellen, dass EFI problematisch ist, funktioniert dies möglicherweise besser für Sie.

psusi
quelle