
Bei der Box handelt es sich um einen HP-Mikroserver mit Ubuntu 16.04. Ich habe das Startgerät kürzlich auf eine 64 GB SSD „aktualisiert“. Zusätzlich gibt es ein 1 TB SATA-Laufwerk.
normalerweise bootet es mit /dev/sda1
der primären Partition (auf der SSD) und /dev/sda5
als Swap und /dev/sdb1
verweist auf die Partition auf der 1-TB-Festplatte, die gemountet ist /mnt/media0
.
Das Problem ist, dass sich das manchmal alles ändert und die SSD jetzt /dev/sdb1
und /dev/sdb5
und die Medienpartition jetzt ist /dev/sda1
.
Dies führt natürlich dazu, dass die Swap- und Medienmounts fehlschlagen, da sie unter /etc/fstab
ihren vorherigen /dev/sd*
Namen aufgelistet sind.
Also habe ich:
Habe das BIOS geprüft und es listet durchgängig die 64 GB SSD als erstes Laufwerk und die 1 TB IDE als zweites auf.
/etc/fstab
Ich habe versucht , die Referenzierung des Medienlaufwerks per Datenträgerbezeichnung zu ändern , aber dadurch schlägt Ubuntu beim Start fehl und ich werde in den Wiederherstellungsmodus versetzt./etc/fstab
Ich habe versucht , die Swap- und (ext4) Medienpartitionen so zu ändern , dass sie mit UUID referenziert werden (da diese tatsächlich die primäre Partition auflistet).AberDann stoße ich auf mein zweites Problem.
Wenn ich Folgendes ausführe, um die UUIDs der verschiedenen Partitionen zu finden …
ls /dev/disk/by-uuid
blkid
beide listen nur den 1 Eintrag auf – die UUID der primären Partition. Ich kann nur die UUID der verwendeten Medienpartition sehen (beim Booten, wo sie offensichtlich tatsächlich zugewiesen wird sdb1
).
tune2fs -l /dev/sdb1
Aber wenn ich diese UUID verwende, /etc/fstab
kann Ubuntu erneut nicht gestartet werden und wechselt in den Wiederherstellungsmodus.
Meine Fragen sind also:
Gibt es eine Möglichkeit, das Wechseln zwischen Laufwerken zu verhindern
/dev/sda
bzw. zu unterbinden?/dev/sdb
Wie kann ich erreichen, dass das System die UUIDs der anderen Partitionen erkennt, damit ich sie verwenden kann
fstab
?und/oder gibt es eine andere Möglichkeit, meine Swap- und Medienpartitionen zuverlässig zu mounten?
Antwort1
Sie können die Namen „disk/by-id“ in verwenden /etc/fstab
, siehe
ls -l /dev/disk/by-id
Beachten Sie, dass diese Gerätenamen auch in anderen Dateien (initrd, Grub-Konfigurationen) verwendet werden können. Sie können also Ihre Grub-Konfiguration aktualisieren und auch initrd neu erstellen.
Antwort2
Die Festplatte wird ständig ausgetauscht, weil verschiedene Kernel Udev-Unterstützung haben und andere nicht.
Ja, ich war auch davon betroffen, als ich anfing, mit Sysv, OpenRC und S6-Init-Ersatz (Systemd-Ersatz) zu experimentieren.
Das Problem liegt in den Grub-Dienstprogrammen und ihren Konfigurationsdateien beim Erstellen verschiedener Linux-vmlinuz-Images auf derselben Festplatte, INSBESONDERE wenn GRUB_DISABLE_LINUX_UUID
( /etc/default/grub
, et al.) für einen Kernel-Build aktiviert wird, für die anderen jedoch nicht.
== Ursache Nr. 1 ==
Also … wer ist der Übeltäter? Das ältere Nicht-Systemd. Das Auslagern erfolgt durch Nicht-Systemd dahingehend, dass das Laufwerk „sda“ immer die erste Datenträgerbezeichnung ist, unabhängig davon, welcher SATA/IDE-Anschluss verwendet wird.
Die Laufwerksreihenfolge wird nach ATA-Gerät (SATA oder libata-Bibliothek) vorgenommen und die Neuordnung erfolgt durch drivers/scsi/ida_probe()
. Entfernen Sie das GRUB_DEVICE_BOOT
aus Ihrer /etc/default/grub
Datei.
== Ursache Nr. 2 ==
Die Angabe CONFIG_SCSI_DEBUG
von „yes“ (oder „m“, wenn Sie initramfs mit „ scsi_debug=add_host:1
in Ihren vmlinuz-Bootparametern verwenden) WIRD die Indexnummer des Labels „sd“ Ihrer vorhandenen Festplatte(n) mit Sicherheit um eins erhöhen, d. h. Ihre sda1
wird zu sdb1
.