UPDATE: Ich habe überprüft, dass die folgende Beschreibung auch für Ubuntu 16.04 funktioniert. Andere Benutzer haben gemeldet, dass sie am 17.10 und 18.04.1 arbeiten.
HINWEIS: In diesem HOWTO erhalten Sie keine LVM. Wenn Sie auch LVM möchten, versuchen Sie, Ubuntu 18.04 Desktop mit RAID 1 und LVM stattdessen auf einem Computer mit UEFI BIOS zu installieren .
Nach Tagen des Versuchs habe ich jetzt ein funktionierendes System! Kurz gesagt bestand die Lösung aus den folgenden Schritten:
- Booten Sie mit einer Ubuntu Live CD / USB.
- Partitioniert die SSDs nach Bedarf.
- Installieren Sie fehlende Pakete (mdadm und grub-efi).
- Erstellen Sie die RAID-Partitionen.
- Führen Sie das Ubiquity-Installationsprogramm aus (aber booten Sie nicht in das neue System).
- Patchen Sie das installierte System (initramfs), um das Booten von einem RAID-Root zu ermöglichen.
- Füllen Sie die EFI-Partition der ersten SSD mit GRUB und installieren Sie sie in der EFI-Startkette.
- Klonen Sie die EFI-Partition auf die andere SSD und installieren Sie sie in der Startkette.
- Getan! Ihr System verfügt nun über RAID 1-Redundanz. Beachten Sie, dass nach einem Kernel-Update nichts Besonderes getan werden muss, da die UEFI-Partitionen unberührt bleiben.
Eine Schlüsselkomponente von Schritt 6 der Lösung war eine Verzögerung in der Startsequenz, die mich ansonsten direkt zur GRUB-Eingabeaufforderung führte (ohne Tastatur!), Wenn eine der SSDs fehlte.
Ausführliches HOWTO
1. Booten
Booten Sie mit EFI vom USB-Stick. Wie genau, hängt von Ihrem System ab. Wählen Sie Ubuntu ohne Installation testen .
Starten Sie einen Terminal-Emulator, um z. B. xterm
die folgenden Befehle auszuführen.
1.1 Login von einem anderen Computer
Beim Ausprobieren fiel es mir oft leichter, mich von einem anderen, bereits vollständig konfigurierten Computer aus anzumelden. Dieses vereinfachte Ausschneiden und Einfügen von Befehlen usw. Wenn Sie dasselbe tun möchten, können Sie sich über ssh anmelden, indem Sie die folgenden Schritte ausführen:
Installieren Sie auf dem zu konfigurierenden Computer den openssh-Server:
sudo apt-get install openssh-server
Passwort ändern. Das Standardkennwort für den Benutzer ubuntu
ist leer. Sie können wahrscheinlich ein Passwort mittlerer Stärke auswählen. Es wird vergessen, sobald Sie Ihren neuen Computer neu starten.
passwd
Jetzt können Sie sich von einem anderen Computer aus in die Ubuntu-Live-Sitzung einloggen. Die folgenden Anweisungen gelten für Linux:
ssh -l ubuntu <your-new-computer>
Wenn Sie eine Warnung über einen mutmaßlichen Man-in-the-Middle-Angriff erhalten, müssen Sie die SSH-Schlüssel löschen, die zur Identifizierung des neuen Computers verwendet werden. Dies liegt daran openssh-server
, dass bei jeder Installation neue Serverschlüssel generiert werden. Der zu verwendende Befehl wird normalerweise gedruckt und sollte so aussehen
ssh-keygen -f <path-to-.ssh/known_hosts> -R <your-new-computer>
Nachdem Sie diesen Befehl ausgeführt haben, sollten Sie sich bei der Ubuntu Live-Sitzung anmelden können.
2. Partitionsdatenträger
Löschen Sie alle alten Partitionen und Startblöcke. Warnung! Dadurch werden Daten auf Ihren Datenträgern zerstört!
sudo sgdisk -z /dev/sda
sudo sgdisk -z /dev/sdb
Erstellen Sie neue Partitionen auf der kleinsten Festplatte: 100 MB für ESP, 32 GB für RAID-SWAP, Rest für RAID-Root. Wenn Ihr SDA-Laufwerk am kleinsten ist, befolgen Sie Abschnitt 2.1, ansonsten Abschnitt 2.2.
2.1 Partitionstabellen erstellen (/ dev / sda ist kleiner)
Führen Sie die folgenden Schritte aus:
sudo sgdisk -n 1:0:+100M -t 1:ef00 -c 1:"EFI System" /dev/sda
sudo sgdisk -n 2:0:+32G -t 2:fd00 -c 2:"Linux RAID" /dev/sda
sudo sgdisk -n 3:0:0 -t 3:fd00 -c 3:"Linux RAID" /dev/sda
Kopieren Sie die Partitionstabelle auf einen anderen Datenträger und generieren Sie eindeutige UUIDs neu (generiert tatsächlich UUIDs für sda neu).
sudo sgdisk /dev/sda -R /dev/sdb -G
2.2 Partitionstabellen erstellen (/ dev / sdb ist kleiner)
Führen Sie die folgenden Schritte aus:
sudo sgdisk -n 1:0:+100M -t 1:ef00 -c 1:"EFI System" /dev/sdb
sudo sgdisk -n 2:0:+32G -t 2:fd00 -c 2:"Linux RAID" /dev/sdb
sudo sgdisk -n 3:0:0 -t 3:fd00 -c 3:"Linux RAID" /dev/sdb
Kopieren Sie die Partitionstabelle auf einen anderen Datenträger und generieren Sie eindeutige UUIDs neu (generiert tatsächlich UUIDs für sdb neu).
sudo sgdisk /dev/sdb -R /dev/sda -G
2.3 Erstellen Sie ein FAT32-Dateisystem unter / dev / sda
Erstellen Sie ein FAT32-Dateisystem für die EFI-Partition.
sudo mkfs.fat -F 32 /dev/sda1
mkdir /tmp/sda1
sudo mount /dev/sda1 /tmp/sda1
sudo mkdir /tmp/sda1/EFI
sudo umount /dev/sda1
3. Installieren Sie fehlende Pakete
Die Ubuntu Live-CD wird ohne zwei Schlüsselpakete geliefert. grub-efi und mdadm. Installieren Sie sie. (Ich bin mir nicht 100% sicher, ob grub-efi hier benötigt wird, aber um die Symmetrie mit der kommenden Installation aufrechtzuerhalten, bringen Sie es ebenfalls ein.)
sudo apt-get update
sudo apt-get -y install grub-efi-amd64 # (or grub-efi-amd64-signed)
sudo apt-get -y install mdadm
Möglicherweise müssen Sie grub-efi-amd64-signed
anstelle von, grub-efi-amd64
wenn Sie den sicheren Start aktiviert haben. (Siehe Kommentar von Alecz.)
4. Erstellen Sie die RAID-Partitionen
Erstellen Sie die RAID-Geräte im herabgesetzten Modus. Die Geräte werden später fertiggestellt. Das Erstellen eines vollständigen RAID1 hat mir manchmal Probleme bei der folgenden ubiquity
Installation bereitet , nicht sicher warum. (Mount / Unmount? Format?)
sudo mdadm --create /dev/md0 --bitmap=internal --level=1 --raid-disks=2 /dev/sda2 missing
sudo mdadm --create /dev/md1 --bitmap=internal --level=1 --raid-disks=2 /dev/sda3 missing
Überprüfen Sie den RAID-Status.
cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda3[0]
216269952 blocks super 1.2 [2/1] [U_]
bitmap: 0/2 pages [0KB], 65536KB chunk
md0 : active raid1 sda2[0]
33537920 blocks super 1.2 [2/1] [U_]
bitmap: 0/1 pages [0KB], 65536KB chunk
unused devices: <none>
Partitionieren Sie die md-Geräte.
sudo sgdisk -z /dev/md0
sudo sgdisk -z /dev/md1
sudo sgdisk -N 1 -t 1:8200 -c 1:"Linux swap" /dev/md0
sudo sgdisk -N 1 -t 1:8300 -c 1:"Linux filesystem" /dev/md1
5. Führen Sie das Installationsprogramm aus
Führen Sie das Ubiquity-Installationsprogramm aus, mit Ausnahme des ohnehin fehlgeschlagenen Bootloaders . ( Hinweis : Wenn Sie sich über ssh angemeldet haben, möchten Sie dies wahrscheinlich stattdessen auf Ihrem neuen Computer ausführen.)
sudo ubiquity -b
Wählen Sie als Installationstyp " Etwas anderes" aus und ändern Sie den md1p1
Typ in " ext4
Format: Ja" und "Einhängepunkt" /
. Die md0p1
Partition wird automatisch als Swap ausgewählt.
Holen Sie sich eine Tasse Kaffee, während die Installation abgeschlossen ist.
Wichtig: Wählen Sie nach Abschluss der Installation Test fortsetzen aus, da das System noch nicht startbereit ist.
Vervollständigen Sie die RAID-Geräte
Verbinden Sie die wartenden SDB-Partitionen mit dem RAID.
sudo mdadm --add /dev/md0 /dev/sdb2
sudo mdadm --add /dev/md1 /dev/sdb3
Stellen Sie sicher, dass alle RAID-Geräte in Ordnung sind (und optional synchronisiert werden).
cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb3[1] sda3[0]
216269952 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.2% (465536/216269952) finish=17.9min speed=200000K/sec
bitmap: 2/2 pages [8KB], 65536KB chunk
md0 : active raid1 sdb2[1] sda2[0]
33537920 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
unused devices: <none>
Der folgende Prozess kann während der Synchronisierung fortgesetzt werden, einschließlich der Neustarts.
6. Konfigurieren Sie das installierte System
Richten Sie ein, um Chroot für das Installationssystem zu aktivieren.
sudo -s
mount /dev/md1p1 /mnt
mount -o bind /dev /mnt/dev
mount -o bind /dev/pts /mnt/dev/pts
mount -o bind /sys /mnt/sys
mount -o bind /proc /mnt/proc
cat /etc/resolv.conf >> /mnt/etc/resolv.conf
chroot /mnt
Pakete konfigurieren und installieren.
apt-get install -y grub-efi-amd64 # (or grub-efi-amd64-signed; same as in step 3)
apt-get install -y mdadm
Wenn Sie md-Geräte noch synchronisieren, werden möglicherweise gelegentliche Warnungen angezeigt:
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Dies ist normal und kann ignoriert werden (siehe Antwort unten in
dieser Frage ).
nano /etc/grub.d/10_linux
# change quick_boot and quiet_boot to 0
Durch das Deaktivieren quick_boot
wird vermieden, dass die Diskfilter-Schreibvorgänge keine Fehler unterstützen . Das Deaktivieren quiet_boot
ist nur eine persönliche Angelegenheit.
Ändern Sie /etc/mdadm/mdadm.conf, um Beschriftungsreferenzen zu entfernen, dh zu ändern
ARRAY /dev/md/0 metadata=1.2 name=ubuntu:0 UUID=f0e36215:7232c9e1:2800002e:e80a5599
ARRAY /dev/md/1 metadata=1.2 name=ubuntu:1 UUID=4b42f85c:46b93d8e:f7ed9920:42ea4623
zu
ARRAY /dev/md/0 UUID=f0e36215:7232c9e1:2800002e:e80a5599
ARRAY /dev/md/1 UUID=4b42f85c:46b93d8e:f7ed9920:42ea4623
Dieser Schritt ist möglicherweise nicht erforderlich. Auf einigen Seiten wurde jedoch darauf hingewiesen, dass die Benennungsschemata möglicherweise instabil sind (name = ubuntu: 0/1). Dadurch wird möglicherweise verhindert, dass sich ein einwandfreies RAID-Gerät während des Startvorgangs zusammensetzt.
Ändern Sie die /etc/default/grub
zu lesenden Zeilen
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
Auch dieser Schritt mag unnötig sein, aber ich ziehe es vor, mit offenen Augen zu booten ...
6.1. Schlaf-Skript hinzufügen
(Es wird von der Gemeinschaft vorgeschlagen, dass dieser Schritt nicht erforderlich sein könnte und ersetzt werden kann unter Verwendung von GRUB_CMDLINE_LINUX="rootdelay=30"
in /etc/default/grub
. Aus Gründen am unteren Rande dieser HOWTO erklärten, schlage ich vor, um Stick mit der Schlaf - Skript , obwohl es ist hässlicher als rootdelay verwendet wird . Somit wir machen mit unserem regulären programm weiter ... )
Erstellen Sie ein Skript, das darauf wartet, dass sich die RAID-Geräte einrichten. Ohne diese Verzögerung kann das Mounten von Root fehlschlagen, da die RAID-Assembly nicht rechtzeitig fertiggestellt wird . Ich habe das auf die harte Tour herausgefunden - das Problem trat erst auf, als ich eine der SSDs zur Simulation eines Festplattenausfalls getrennt hatte! Das Timing muss möglicherweise abhängig von der verfügbaren Hardware angepasst werden, z. B. langsame externe USB-Festplatten usw.
Geben Sie den folgenden Code ein in /usr/share/initramfs-tools/scripts/local-premount/sleepAwhile
:
#!/bin/sh
echo
echo "sleeping for 30 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 25 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 20 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 15 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 10 seconds while udevd and mdadm settle down"
sleep 5
echo "sleeping for 5 seconds while udevd and mdadm settle down"
sleep 5
echo "done sleeping"
Machen Sie das Skript ausführbar und installieren Sie es.
chmod a+x /usr/share/initramfs-tools/scripts/local-premount/sleepAwhile
update-grub
update-initramfs -u
7. Aktivieren Sie den Start von der ersten SSD
Jetzt ist das System fast fertig, nur die UEFI-Boot-Parameter müssen installiert werden.
mount /dev/sda1 /boot/efi
grub-install --boot-directory=/boot --bootloader-id=Ubuntu --target=x86_64-efi --efi-directory=/boot/efi --recheck
update-grub
umount /dev/sda1
Dadurch wird der Bootloader in /boot/efi/EFI/Ubuntu
(aka EFI/Ubuntu
on /dev/sda1
) installiert und zuerst in der UEFI-Bootkette auf dem Computer installiert.
8. Aktivieren Sie den Start von der zweiten SSD
Wir sind fast fertig. Zu diesem Zeitpunkt sollten wir in der Lage sein, das sda
Laufwerk neu zu starten . Darüber hinaus mdadm
sollte in der Lage sein, Fehler entweder des Laufwerks sda
oder sdb
zu behandeln. Das EFI ist jedoch nicht RAID, daher müssen wir es klonen .
dd if=/dev/sda1 of=/dev/sdb1
Zusätzlich zur Installation des Bootloaders auf dem zweiten Laufwerk wird dadurch die UUID des FAT32-Dateisystems auf der sdb1
Partition (wie von gemeldet blkid
) mit der von sda1
und übereinstimmen /etc/fstab
. (Beachten Sie jedoch , dass die UUID für die /dev/sda1
und /dev/sdb1
Partitionen noch anders sein - vergleichen ls -la /dev/disk/by-partuuid | grep sd[ab]1
mit blkid /dev/sd[ab]1
nach der Installation selbst prüfen müssen .)
Schließlich müssen wir die sdb1
Partition in die Startreihenfolge einfügen . (Hinweis: Dieser Schritt ist abhängig von Ihrem BIOS möglicherweise nicht erforderlich. Ich habe Berichte erhalten, dass einige BIOS 'automatisch eine Liste gültiger ESPs generieren.)
efibootmgr -c -g -d /dev/sdb -p 1 -L "Ubuntu #2" -l '\EFI\ubuntu\grubx64.efi'
Ich habe es nicht getestet, aber es ist wahrscheinlich notwendig, eindeutige Bezeichnungen (-L) zwischen dem ESP auf sda
und zu haben sdb
.
Dadurch wird ein Ausdruck der aktuellen Startreihenfolge erstellt, z
Timeout: 0 seconds
BootOrder: 0009,0008,0000,0001,0002,000B,0003,0004,0005,0006,0007
Boot0000 Windows Boot Manager
Boot0001 DTO UEFI USB Floppy/CD
Boot0002 DTO UEFI USB Hard Drive
Boot0003* DTO UEFI ATAPI CD-ROM Drive
Boot0004 CD/DVD Drive
Boot0005 DTO Legacy USB Floppy/CD
Boot0006* Hard Drive
Boot0007* IBA GE Slot 00C8 v1550
Boot0008* Ubuntu
Boot000B KingstonDT 101 II PMAP
Boot0009* Ubuntu #2
Beachten Sie, dass Ubuntu # 2 (sdb) und Ubuntu (sda) die ersten in der Startreihenfolge sind.
Starten Sie neu
Jetzt können wir neu starten.
exit # from chroot
exit # from sudo -s
sudo reboot
Das System sollte nun in Ubuntu neu starten (Möglicherweise müssen Sie zuerst die Ubuntu Live-Installationsmedien entfernen.)
Nach dem Booten können Sie ausführen
sudo update-grub
um den Windows-Bootloader an die Grub-Bootkette anzuhängen.
Fallstricke der virtuellen Maschine
Wenn Sie dies zuerst in einer virtuellen Maschine ausprobieren möchten, gibt es einige Einschränkungen: Anscheinend wird der NVRAM, der die UEFI-Informationen enthält, zwischen Neustarts, nicht jedoch zwischen den Zyklen des Herunterfahrens und Neustarts gespeichert. In diesem Fall landen Sie möglicherweise an der UEFI-Shell-Konsole. Die folgenden Befehle sollten Sie von /dev/sda1
(verwenden FS1:
für /dev/sdb1
) in Ihren Computer booten :
FS0:
\EFI\ubuntu\grubx64.efi
Die erste Lösung in der Top-Antwort von UEFI-Boot in virtualbox - Ubuntu 12.04 könnte ebenfalls hilfreich sein.
Simulieren eines Festplattenfehlers
Der Ausfall eines RAID-Komponentengeräts kann mit simuliert werden mdadm
. Um jedoch zu überprüfen, ob das Boot-Zeug einen Festplattenfehler überlebt, musste ich den Computer herunterfahren und die Stromversorgung von einer Festplatte trennen. Wenn Sie dies tun, stellen Sie zunächst sicher, dass die MD-Geräte synchronisiert sind .
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sdb3[2] sda3[0]
216269952 blocks super 1.2 [2/2] [UU]
bitmap: 2/2 pages [8KB], 65536KB chunk
md0 : active raid1 sda2[0] sdb2[2]
33537920 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
unused devices: <none>
In den folgenden Anweisungen ist sdX das ausgefallene Gerät (X = a oder b) und sdY das in Ordnung befindliche Gerät.
Trennen Sie ein Laufwerk
Den Computer herunterfahren. Trennen Sie ein Laufwerk. Neustart. Ubuntu sollte nun mit den RAID-Laufwerken im herabgesetzten Modus starten. (Feiern Sie! Dies ist, was Sie erreichen wollten!)
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sda3[0]
216269952 blocks super 1.2 [2/1] [U_]
bitmap: 2/2 pages [8KB], 65536KB chunk
md0 : active raid1 sda2[0]
33537920 blocks super 1.2 [2/1] [U_]
bitmap: 0/1 pages [0KB], 65536KB chunk
unused devices: <none>
Wiederherstellung von einer ausgefallenen Festplatte
Dies ist der folgende Vorgang, wenn Sie eine fehlerhafte Festplatte ersetzen müssen. Wenn Sie einen Ersatz emulieren möchten, können Sie eine Ubuntu Live-Sitzung starten und verwenden
dd if=/dev/zero of=/dev/sdX
Wischen Sie die Festplatte sauber, bevor Sie das reale System neu starten. Wenn Sie gerade die Boot- / RAID-Redundanz im obigen Abschnitt getestet haben, können Sie diesen Schritt überspringen. Sie müssen jedoch mindestens die folgenden Schritte 2 und 4 ausführen, um die vollständige Boot- / RAID-Redundanz für Ihr System wiederherzustellen.
Das Wiederherstellen des RAID + -Bootsystems nach einem Festplattentausch erfordert die folgenden Schritte:
- Partitionieren Sie das neue Laufwerk.
- Füge Partitionen zu md Geräten hinzu.
- Klonen Sie die Startpartition.
- Fügen Sie einen EFI-Datensatz für den Klon hinzu.
1. Partitionieren Sie das neue Laufwerk
Kopieren Sie die Partitionstabelle vom fehlerfreien Laufwerk:
sudo sgdisk /dev/sdY -R /dev/sdX
Randomisieren Sie die UUIDs auf dem neuen Laufwerk neu.
sudo sgdisk /dev/sdX -G
2. Fügen Sie zu md Geräten hinzu
sudo mdadm --add /dev/md0 /dev/sdX2
sudo mdadm --add /dev/md1 /dev/sdX3
3. Klonen Sie die Boot-Partition
Klonen Sie das ESP vom fehlerfreien Laufwerk. (Vorsicht, führen Sie zuerst einen Dump-to-File-Vorgang für beide ESPs durch, um die Wiederherstellung zu ermöglichen, wenn Sie es wirklich vermasseln.)
sudo dd if=/dev/sdY1 of=/dev/sdX1
4. Legen Sie die neu belebte Diskette in die Startreihenfolge ein
Fügen Sie einen EFI-Datensatz für den Klon hinzu. Ändern Sie die Bezeichnung -L nach Bedarf.
sudo efibootmgr -c -g -d /dev/sdX -p 1 -L "Ubuntu #2" -l '\EFI\ubuntu\grubx64.efi'
Wenn Sie das System jetzt neu starten, sollte es wieder normal sein (die RAID-Geräte werden möglicherweise noch synchronisiert)!
Warum das Schlaf-Skript?
Es wurde von der Community vorgeschlagen, dass das Hinzufügen eines Sleep-Skripts möglicherweise nicht erforderlich ist und durch die Verwendung von GRUB_CMDLINE_LINUX="rootdelay=30"
in /etc/default/grub
gefolgt von ersetzt werden kann sudo update-grub
. Dieser Vorschlag ist auf jeden Fall sauberer und funktioniert in einem Szenario mit Datenträgerausfall / -austausch. Es gibt jedoch eine Einschränkung ...
Ich habe meine zweite SSD abgeklemmt und festgestellt, dass rootdelay=30
anstelle des Sleep-Skripts mit usw. Folgendes zutrifft:
1) Das System bootet im herabgesetzten Modus ohne das "ausgefallene" Laufwerk.
2) Bei einem nicht beeinträchtigten Startvorgang (beide Laufwerke sind vorhanden) wird die Startzeit verkürzt. Die Verzögerung ist nur spürbar, wenn das zweite Laufwerk fehlt.
1) und 2) klangen großartig, bis ich mein zweites Laufwerk wieder hinzufügte. Beim Booten konnte das RAID-Array nicht zusammengebaut werden und ließ mich an der initramfs
Eingabeaufforderung, ohne zu wissen, was zu tun ist. Es könnte möglich gewesen sein, die Situation zu retten, indem man a) vom Ubuntu Live-USB-Stick gebootet, b) mdadm
das Array manuell installiert und c) neu zusammengebaut hat, aber ... ich habe irgendwo etwas durcheinander gebracht. Stattdessen, wenn ich diesen Test wieder lief mit dem Schlaf - Skript (ja, habe ich das Howto von oben zum x - ten Mal starten ...), wobei das System tat Boot. Die Arrays waren im herabgesetzten Modus und ich konnte die /dev/sdb[23]
Partitionen manuell ohne zusätzlichen USB-Stick neu hinzufügen . Ich weiß nicht, warum das Schlaf-Skript funktioniert, während das rootdelay
nicht funktioniert. Vielleicht mdadm
wird es durch zwei nicht synchronisierte Komponentengeräte verwirrt, aber ich dachte mirmdadm
wurde entwickelt, um damit umzugehen. Wie auch immer, da das Schlaf-Skript funktioniert, halte ich mich daran.
Es könnte argumentiert werden, dass das Entfernen eines einwandfrei funktionierenden RAID-Komponentengeräts, das Neustarten des RAID im herabgesetzten Modus und das erneute Hinzufügen des Komponentengeräts ein unrealistisches Szenario ist: Das realistische Szenario besteht eher darin, dass ein Gerät ausfällt und durch ein neues ersetzt wird , so dass weniger Gelegenheit für mdadm
verwirrt zu werden. Ich stimme diesem Argument zu. Ich kann jedoch nicht testen, wie das System einen Hardwarefehler toleriert, es sei denn, einige Hardwarekomponenten werden deaktiviert! Und nach dem Testen möchte ich zu einem redundanten, funktionierenden System zurückkehren. (Nun, ich könnte meine zweite SSD an eine andere Maschine anschließen und sie wischen, bevor ich sie wieder hinzufüge, aber das ist nicht machbar.)
Zusammenfassend: Meines Wissens ist die rootdelay
Lösung sauber, schneller als das Sleep-Skript für nicht beeinträchtigte Startvorgänge und sollte für ein echtes Szenario mit Laufwerksausfall / -austausch funktionieren. Ich kenne jedoch keinen praktikablen Weg, um es zu testen. Also werde ich mich vorerst an das hässliche Schlaf-Skript halten.