Wie installiere ich Ubuntu Server mit UEFI und RAID1 + LVM

15

Ich habe meine Server mit LVM über Software RAID1 installiert und grub auf dem MBR beider Laufwerke installiert. Jetzt habe ich einen UEFI-Server und der Kompatibilitätsmodus (BIOS) scheint nicht zu funktionieren.

Also habe ich mich für die Installation mit UEFI entschieden.

Erster Test: Die Installation eines einzelnen Laufwerks funktioniert einwandfrei.

Dann habe ich versucht, mit RAID1 + LVM zu installieren. Ich habe meine beiden Laufwerke auf die gleiche Weise partitioniert:

  • eine EFI-Systempartition, 200 MB
  • eine physische RAID-Partition

Dann habe ich eingerichtet: - ein RAID 1, das beide Festplatten-RAID-Partitionen verwendet - eine LVM-Datenträgergruppe auf dem RAID 1-Array - drei logische Datenträger: /, / home und Swap

Die Installation ging weiter, aber beim Neustart bekomme ich eine Madenschale und stecke fest.

Ist es also möglich, dass grub2-efi über RAID1 an LVM arbeitet? Was ist der Weg, um dies zu erreichen? Gibt es andere Bootloader-Alternativen (direktes Linux-Laden von EFI ??)? etc...

alci
quelle

Antworten:

11

Ok, ich habe die Lösung gefunden und kann meine eigenen Fragen beantworten.

1) Kann ich LVM über RAID1 auf einem UEFI-Computer verwenden?

Ja auf jeden Fall. Und es wird in der Lage sein zu booten, auch wenn eine der beiden Festplatten ausfällt.

2) Wie mache ich das?

Das scheint ein Fehler im Installationsprogramm zu sein, daher führt die Verwendung des Installationsprogramms dazu, dass das Booten fehlschlägt (Grub-Shell).

Hier ist eine Arbeitsweise:

1) Erstellen Sie manuell die folgenden Partitionen auf jeder der beiden Festplatten: - eine 512-MB-Partition mit dem Typ UEFI am Anfang der Festplatte - eine Partition mit dem Typ RAID danach

2) Erstellen Sie Ihr RAID 1-Array mit den beiden RAID-Partitionen, und erstellen Sie dann Ihre LVM-Volume-Gruppe mit diesem Array und Ihren logischen Volumes (eines für Root, eines für Home und eines für Swap).

3) Lassen Sie die Installation weiterlaufen und starten Sie neu. FEHLER ! Sie sollten eine Madenschale bekommen.

4) Es könnte möglich sein, von der Grub-Shell zu booten, aber ich habe mich dafür entschieden, von einer USB-Rettungsdiskette zu booten. Im Rettungsmodus habe ich eine Shell auf meinem Ziel-Root-Dateisystem geöffnet (das ist die Shell auf dem logischen Root-Lvm-Volume).

5) Holen Sie sich die UUID dieser Ziel-Root-Partition mit 'blkid'. Notieren Sie es oder machen Sie ein Foto mit Ihrem Telefon. Sie benötigen es als Nächstes.

6) Hängen Sie die EFI-Systempartition ein ('mount / boot / efi') und bearbeiten Sie die Datei grub.cfg: vi /boot/efi/EFI/ubuntu/grub.cfg Ersetzen Sie hier die fehlerhafte UUID durch diejenige, die Sie zu diesem Zeitpunkt erhalten haben 5. Speichern.

7) Um von der zweiten Festplatte booten zu können, kopieren Sie die EFI-Partition auf diese zweite Festplatte.

8) Neustart. Stellen Sie in Ihrem UEFI-Einstellungsbildschirm die beiden EFI-Partitionen als startfähig ein und legen Sie eine Startreihenfolge fest.

Sie sind fertig. Sie können den einen oder anderen Datenträger testen, ausstecken, es sollte funktionieren!

alci
quelle
Vielen Dank für das ausführliche Vorgehen. Bitte geben Sie Ihre Boot-Info an. ( help.ubuntu.com/community/Boot-Info )
LovinBuntu
@ LovinBuntu Hier ist die Ausgabe von Boot-Info, gestartet von einem USB-Schlüssel: paste.ubuntu.com/6223137
alci
Ich habe den Fehler bekommen, konnte aber die Madenschale nicht bekommen.
Peter Lawrey
4
Ich habe gerade ein paar Tage damit verbracht, ein ähnliches Verfahren zu befolgen, hauptsächlich, weil ich dumm bin, aber nur für den Fall, dass dies jemand anderem helfen könnte, das gleiche Problem zu vermeiden, erwähne ich, dass Sie sicherstellen müssen, dass Sie das System starten Live-USB mit UEFI statt Legacy-BIOS. (Mein MB mit der Einstellung "Auto" hat das Booten im Legacy-Modus vorgezogen. Ich musste es deaktivieren oder manuell die EFI-Option starten, damit die Installation funktioniert.)
Jonathan Y.
1
Unter Ubuntu 16.04.1 scheint dies kein Problem mehr zu sein. Ich habe eine 512-MB-EFI-Partition, einen SWAP und eine 490-GB-RAID-Partition für RAID1 eingerichtet und auf dem neuen md-Gerät den Ubuntu 16.04-Server ohne Probleme installiert. Nach dem Neustart startete es das neue System fehlerfrei, ohne sich mit der EFI-Partition, fstab usw.
herumschlagen zu müssen
4

Ich habe das vor etwas mehr als einem Jahr selbst gemacht und hatte, obwohl ich Probleme hatte, nicht die hier aufgeführten Probleme. Ich bin mir nicht sicher, wo ich die Ratschläge gefunden habe, die ich damals gemacht habe, also werde ich hier posten, was ich getan habe.

1) Erstellen Sie zu Beginn 128MB efi-Partitionen (von denen nur eine unter / boot / efi bereitgestellt wird)

2) Erstellen Sie ein RAID1-Array mit 1 GB / Boot, kein LVM

3) Erstellen Sie mit LVM ein großes RAID1-Array

Wenn sich / boot auf einer separaten Partition / einem RAID1-Array befindet, wird das Problem behoben, dass die efi-Partition nicht die richtigen Elemente finden kann.

Und für diejenigen, die nach mehr Details suchen, wie ich es damals war, ist dies genauer, wie ich mein Setup gemacht habe:

6x 3TB Drives

Have 4 RAID arrays:
/dev/md0 = 1GB RAID1 across 3 drives
   --> /boot (no LVM)
/dev/md1 = 500GB RAID1 across 3 drives
   LVM:
      --> /     =  40GB
      --> /var  = 100GB
      --> /home = 335GB
      --> /tmp  =  10GB

/dev/md2 = 500GB RAID1 across 3 drives (for VM's/linux containers)
   LVM:
      --> /lxc/container1 =  50GB
      --> /lxc/container2 =  50GB
      --> /lxc/container3 =  50GB
      --> /lxc/container4 =  50GB
      --> /lxc/extra      = 300GB (for more LXC's later)

/dev/md3 = 10TB RAID6 across 6 drives (for media and such)
   --> /mnt/raid6 (no LVM)


Disks are setup thus:

/sda => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdb => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdc => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdd => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sde => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sdf => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)

Beachten Sie, dass nur eines der Verzeichnisse / boot / efi bereitgestellt wird, und die zweiten beiden sind Klone. Ich tat dies, weil ich wollte, dass die Maschine immer noch bootet, wenn eine der 3 Festplatten im RAID1 verloren geht. Es macht mir nichts aus, im herabgesetzten Modus zu arbeiten, wenn ich noch über vollständige Redundanz verfüge, und das gibt mir Zeit, das Laufwerk zu ersetzen, während die Maschine noch läuft.

Wenn ich nicht das zweite RAID1-Array zum Platzieren der LXC-Container und im Grunde aller Datenbanken und dergleichen hätte, müsste / var VIEL größer sein. Es war jedoch eine gute Lösung, jeden LXC als eigenen logischen Datenträger zu haben, um zu verhindern, dass eine VM / Website die anderen aufgrund von außer Kontrolle geratenen Fehlerprotokollen stört.

Und der letzte Hinweis: Ich habe Ubuntu Alternate Install USB mit dem 12.04.01 (vor dem 12.04.02) installiert und alles hat ganz gut funktioniert. Nachdem ich 72 Stunden lang meinen Kopf dagegen geschlagen hatte.

Hoffe das hilft jemandem!

jhaagsma
quelle
1
grub2 kann lvm auf md direkt ohne / boot-Partition booten, und das schon seit ein paar Jahren.
Psusi
@psusi Ich wünschte, Sie hätten Recht, meine Neuinstallation startet nicht von der zweiten Festplatte. Alles LVM, im Gegensatz zu jhaagsmas Setup.
So
2

Ich hatte das selbe probem, efi boot mit zwei festplatten und software raid

/ dev / sda

  • / dev / sda1 - 200 MB EFI-Partition
  • / dev / sda2 - 20G physisch für den Überfall
  • / dev / sda3 - 980G physisch für den Überfall

/ dev / sdb

  • / dev / sdb1 - 200 MB EFI-Partition
  • / dev / sdb2 - 20G physisch für den Überfall
  • / dev / sdb3 - 980G physisch für den Überfall

Swap on / dev / md0 (sda2 & sdb2) Root on / dev / md1 (sda3 & sdb3)

Wenn Sie die Grub-Rescue-Shell aufrufen, booten Sie mit:

set root=(md/1)
linux /boot/vmlinuz-3.8.0-29-generic root=/dev/md1
initrd /boot/initrd.img-3.8.0-29-generic
boot

Laden Sie anschließend diese Patch-Datei herunter - https://launchpadlibrarian.net/151342031/grub-install.diff (wie unter https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1229738 erläutert ).

cp /usr/sbi/grub-install /usr/sbi/grub-install.backup
patch /usr/sbin/grub-install patch
mount /dev/sda1 /boot/efi
grub-install /dev/sda1
umount /dev/sda1
mount /dev/sdb1 /boot/efi
grub-install /dev/sdb1
reboot
Ljupco
quelle