%3A%20Die%20Installation%20eines%20Software-RAID%201%20schl%C3%A4gt%20mit%20einem%20Grub-Fehler%20fehl.png)
Ich versuche schon seit einiger Zeit, ein neues Serversystem mit einem RAID 1 als Bootquelle aufzusetzen. Dieses RAID besteht aus zwei 4TB Festplatten. Ich boote also von einem USB-Stick, den ich mit dem Installationsimage von Debian 12 vorbereitet habe. Zunächst läuft alles normal. Ich konfiguriere das Netzwerk und lege die ersten beiden Benutzer an. Beim Partitionieren wähle ich den manuellen Weg
In der nächsten Tabelle sehe ich meine beiden 4TB Laufwerke und das USB-Boot-Device. Die Festplatte SCSI9 ist ein Notfall-Ersatzteil, ich werde sie hier nicht verwenden. Ich wähle die Software-RAID-Konfiguration
Ich wähle „MD-Gerät erstellen“
Ich wähle RAID 1
2 RAID-Geräte
0 Ersatzgeräte
Ich wähle meine 2 freien Festplatten
Noch einmal zurück zur Partitionierung. Dieses Mal wähle ich den geführten Modus
Alle Dateien in einer Partition
Ich wähle mein neues RAID-Gerät aus
Nach ein bis zwei Minuten ist das neu partitionierte RAID verfügbar. Sieht vielversprechend aus...
Ich bestätige die Änderungen und das System beginnt, den Rest des Betriebssystems und alle Dienstprogramme abzurufen und zu installieren. Dieser Vorgang ist gut gestaltet und bisher recht unkompliziert. Das einzige Problem: Er wird nicht abgeschlossen. :-( Bei der Installation von GRUB (2 Stunden später) stürzt es ab ... Ich habe keinen Weg gefunden, über diesen Punkt hinauszukommen.Was ist mein Fehler und wie kann ich ihn beheben?
Ich habe viele Variationen der Ergebnisse umfangreicher Internetrecherchen ausprobiert, alle mit dem gleichen Ergebnis. Dies war die vielversprechendste Lösung: Einen Teil des Installationsprozesses überspringen und das Array manuell mit mdadm generieren: https://www.server-world.info/en/note?os=Debian_12&p=raid1
Hinzufügen
Antwort1
4T erfordert die Verwendung von GPT, und Sie können nicht gleichzeitig ein partitionierbares RAID für die gesamte Festplatte habenUndSorgen Sie dafür, dass die Datenträger vom BIOS erkennbar sind und von ihnen gebootet werden können (mit EFI streng genommen unmöglich, mit älteren Versionen nicht ganz so streng, aber dazu wäre schwarze Magie erforderlich, die Sie nicht kennen möchten).
(Es ist eine Schande, dass das Debian-Installationsprogramm dieses Schema überhaupt akzeptiert hat. Das sollte es nicht, es ist schlichtweg ungültig und könnte unmöglich funktionieren.)
Dies liegt daran, dass die GPT-Partitionstabelle tatsächlich sowohl am Anfang als auch am Ende des Geräts gespeichert wird. Wenn RAID auf der gesamten Festplatte verwendet wird und ohne ordnungsgemäße MD-Metadateninterpretation betrachtet wird, werden beide GPT-Kopien nie gleichzeitig an Ort und Stelle gespeichert:
- beim MD-Superblock v1.0 fehlt der zweite GPT (am Ende) (wurde früher verschoben, an eine Stelle, die das BIOS nicht erwartet);
- Bei MD-Superblöcken v1.1 und v1.2 wird das erste GPT (am Anfang) verschoben, sodass die Firmware es nicht findet.
In beiden Fällen erkennt das System nicht, dass die Datenträger über eine gültige Partitionstabelle verfügen, und weigert sich, von ihnen zu booten.
Wenn Sie außerdem mit UEFI booten möchten, müssen Sie wissen, dass die EFI-Firmware keine Ahnung davon hat, dass ESP ein Software-RAID sein könnte (in der Spezifikation steht nichts darüber). Das darf es also nicht. ESP muss immer eine einfache GPT-Partition sein.
Um dieses Problem zu lösen, können Sie, anstatt ein RAID zu erstellen und dann zu partitionieren, zuerst die Festplatten partitionieren und dann einige Partitionen in RAIDs zusammenfassen. Obwohl dies umstritten ist, schlage ich das folgende Schema vor:
- für die EFI-Installation: ein ESP (Typ 1) von 511 MiB (Standard-Offset 1 MiB), dann 512 MiB für /boot vom Typ Linux RAID, dann der Rest für den Rest vom Typ Linux RAID (das ist Typ 29 in fdisk, wenn ich mich nicht irre).
- für Legacy-Installation: 1 MiB (Typ 4 – Biosgrub), 510 MiB Boot (RAID) und der Rest RAID.
Anschließend erstellen Sie zwei RAIDs (/boot und den Rest) und wählen einen der ESPs als „ESP“ aus. Nach der Installation aktivieren Sie den Start von der zweiten Festplatte. Anschließend erstellen Sie LVM auf dem großen RAID, um Dateisysteme zu speichern. Dort können Sie ein Swap-Volume und ein Root-FS-Volume erstellen (30 GiB reichen für Debian aus und lassen sich problemlos im laufenden Betrieb vergrößern. Beachten Sie, dass Sie alle Daten auf anderen bereitgestellten dedizierten Volumes ablegen – es ist nicht sinnvoll, Anwendungsdaten im Root-Volume zu speichern). Der Rest kann während der Systemlebensdauer nach Bedarf erstellt werden.
Dann installieren Sie das System wie üblich. Es muss FAT32 auf der ESP-Partition erstellen; das Debian 11-Installationsprogramm hatte damit Probleme, also musste ich es manuell erstellen; bei 12 weiß ich es nicht, da ich keine solche Installation durchgeführt habe, nur Upgrades. Wenn es um die Installation des Bootloaders geht, tun Sie einfach, was für EFI vorgeschlagen wird, während Sie für Legacy diesen Schritt einfach wiederholen und zweimal installieren können, wobei Sie beim zweiten Mal die zweite Festplatte auswählen, damit es sofort redundant bootfähig ist.
Für EFI müssen Sie nach dem ersten Systemstart manuell ein FAT32-Dateisystem auf der zweiten „ESP“-Partition erstellen, es irgendwo mounten (ich verwende /boot/efi2) und alles von /boot/efi kopieren, wobei die Struktur erhalten bleibt. Dann erstellen Sie einen zweiten Firmware-Booteintrag mit efibootmgr
,Hiersind die Anweisungen.
Antwort2
Fertig... Danke, Nikita, für den Hinweis in die richtige Richtung! Hier ist ein schnelles Rezept, wie es bei mir funktioniert hat (ich habe ein paar „Möchten Sie Ihre Festplatten wirklich neu partitionieren“-Bestätigungen weggelassen):
- Gehen Sie zur BIOS-Konfiguration des Mainboards und deaktivieren Sie alle UEFI-Sachen.
- Booten Sie vom USB-Stick mit dem Debian 12-Installationsimage.
- Starten Sie die „Grafische Installation“.
- Führen Sie die ersten Schritte (Netzwerkinstallation etc.) wie gewohnt durch.
- Wenn das Installationsprogramm bei „Datenträger partitionieren“ ankommt, wählen Sie „Manuell“.
- Löschen Sie alle alten Partitionen von Ihren beiden Ziellaufwerken.
- Erstellen Sie eine neue Partition auf dem ersten Ziellaufwerk. Wenn Sie nach der Größe gefragt werden, geben Sie „1 MB“ ein. Legen Sie die Partition an den „Anfang“ des verfügbaren Speicherplatzes. Ändern Sie die Einstellung „Verwenden als“ in „Reservierter BIOS-Startbereich“.
- Erstellen Sie eine neue Partition auf dem ersten Ziellaufwerk. Wenn Sie nach der Größe gefragt werden, geben Sie „max“ ein. Ändern Sie die Einstellung „Verwenden als“ in „physisches Volume für RAID“.
- Wiederholen Sie die letzten beiden Schritte für das zweite Ziellaufwerk.
- Zurück im Partitionierungsmenü wählen Sie "Software-RAID konfigurieren". Wählen Sie "MD-Gerät erstellen". Wählen Sie "RAID1". Aktive Geräte sind "2". Ersatzgeräte sind "0". Wählen Sie dann die beiden RAID-Partitionen aus, die Sie zuvor vorbereitet haben. Verlassen Sie das RAID-Setup mit "Fertig stellen".
- Zurück im Partitionierungsmenü wählen Sie „Geführte Partitionierung“. Wählen Sie „Geführt – gesamte Festplatte verwenden und LVM einrichten“. Wählen Sie das RAID-Gerät aus, das Sie zuvor vorbereitet haben. Wählen Sie „Alle Dateien in einer Partition“. Bei der Frage nach der Größe des LVM antworten Sie mit „max“.
Ihre Partitionsliste sollte jetzt ungefähr so aussehen. Wählen Sie „Partitionierung beenden und Änderungen auf die Festplatte schreiben“.
- Wenn alles gut gegangen ist, wird Ihr System jetzt mit dem Standardinstallationsprozess von Debian beginnen (der eine Weile dauern kann). Sie beantworten die Fragen genau so, wie Sie es bei einem normalen Installationsprozess tun würden.
- Wachen Sie noch einmal auf, wenn es darum geht, das GRUB-Ding auf Ihre Discs zu schreiben: Schreiben Sie es einmal auf die erste Zieldiskette, gehen Sie dann zurück und machen Sie dasselbe für die zweite Zieldiskette.
- Der Rest der Prozedur ist Standard...
- Sie können den Status Ihres RAID (einschließlich des Fortschritts des Synchronisierungsvorgangs) überprüfen, indem Sie es
watch cat /proc/mdstat
von der Befehlszeile aus starten.