Gleiches Ubuntuimage auf SSDs und HDs?

Hallo Liste,

ich würde gerne das gleich Unbuntu-Image (16.04) auf Rechnern mit SSDs und auf Laptops mit HDs verwenden. Im Image enthält die /etc/fstab die Einträge, die für die normalen Festplatten passen und dort startet Ubuntu auch normal. Auf den SSDs passen diese Einträge natürlich nicht, aber mit etwa 90 Sekunden Verzögerung (sieht man gut in der Ausgabe von dmesg) starten sie doch. Wenn ich die fstab abändere auf /dev/nvme0n1p1 usw. dann tritt die Verzögerung nicht auf.

Frage: könnte man, vielleicht mit einem Postsync-Skript, abhängig von der Hardwareklasse vor dem Start von Ubuntu die für die jeweilige Festplatte passende fstab ins System kopieren bzw. aktivieren ? Oder gibt es da eine andere Möglichkeit ? Wir würden uns halt gerne die parallele Pflege von zwei Images ersparen…

Gruß
Martin

Hallo Martin,

ja, Du richtest für die Hardwareklassen einen Postsync ein (prinzipiell würde der Postsync für eine HWK reichen). Dort legst du die zur Hardwareklasse die passende fstab ab.

Ich würde deshalb beide Hardwareklassen mit einem Postsync versehen, da Du dann prinzipiell von jeder HWK ein Image erstellen kannst. Die fstab stimmt dann in jedem Fall.

Gruß

Alois

Hallo,

bei SATA SSDs und HDDs muss man garnichts machen: die heißen beide sdaX.
Man benötigt das bei SATA SSD und nvme SSDs.
So habe ich das seit ein paar Jahren im Semianr: einen Raum so, einen so.

Ich habe das im universellen postsync gelößt: und zwar nach räumen.
Der postsync ist eine
imagename.cloop.postsync Datei.
Die Cleints sind in zwei unterschiedlichen Hardwareklassen (Gruppen), weil ja die Devicenamen unterschiedlich sind.
unter /srv/linbo/linuxmuster-client/bionic/ liegen zwei Verzeichnisse: eines pro Raum.
Im einen Raum liegt unter etc die fstab mit sdaX Angaben im anderen die gleiche fstab, aber mit nvme0n1pX Angaben.
Funktioniert seit Jahren einwandfrei.

LG

Holger

Hallo!
ich habe (und ich glaube, das ist ein „offizieller“ Weg, weil ichs nicht erfunden hatte) das so:
In der fstab steht
#dummyroot / und so weiter und das postsync liest das dann aus der betreffenden start.conf aus und patcht das. Die Postsync-Zeilen sehen so aus:

# fstab anpassen, damit root-Partition stimmt
echo "patch fstab..."
ROOTZEILENNR=$(grep -i "^fstype" $STARTCONF | cut -d"#" -f1 | grep -n -i "ext4" | cut -d":" -f1)
echo Rootzeilennummer: $ROOTZEILENNR
ROOT=$(grep -i "^dev" -m $ROOTZEILENNR $STARTCONF | tail -n1 | cut -d"=" -f2 | tr -d [:blank:]|head -c9)
echo Root: $ROOT
sed -i "s|#dummyroot|$ROOT|g" /mnt/etc/fstab

Dann braucht man nichts extra pflegen :slight_smile:
LG
Max

Hallo Max,

ja, so sollte es gehen. Ich hab nie herausgefunden, warum das bei mir irgend wie nie funktioniert hat … ist mir aber auch wurscht: ich hab einen Weg gefunden.

LG

Holger

Hallo alle und danke für euren Input, ich mache mich morgen mal dran.

Gruß
Martin

Hi Holger,
hat nicht funktioniert, weil die Befehlskette in ROOTZEILENNR fehlerhaft war, ich hab das gefixt (s.o.), dann gings…
Man muss halt drandenken, immer eine fstab mit den dummy-Einträgen im Postsync zu haben, sonst ist nach dem nächsten sync aus die Maus :slight_smile:
LG
Max