Ubuntu startet nicht: FEATURE_C12

Liebe Mitstreiter,

ich habe letzte Woche in einer unübersichtlichen Vorgehensweise alle Laptops bei uns in der Schule lahmgelegt. Eigentlich wollte ich nur ein neues Image unseres Ubuntu 22.04 Clients aufspielen.

Jetzt ist es so, dass beim Start dieses Images der Bootvorgang in (initramfs) endet. Die zugehörige Fehlermeldung lautet:

/dev/nvme0n1p4 has unsupported feature(s): FEATURE_C12

e2fsck: Get a newer version of e2fsck!

ubuntu: ### Warning … blabla

fsck exited with status code 12

Ich solle jedenfalls einen e2fsck machen, aber da kommt dann die Fehlermeldung, dass e2fsck zu alt sei.

Darunter erscheint auch noch ucsi_acpi USBC000:00: error -ETIMEOUT: PPM init failed.

Kann mir bitte jemand dabei helfen, strukturierter vorzugehen?

Viele Grüße

Christian

P.S.: auf der zweiten Hardwareklasse gibt es noch andere Probleme, dazu melde ich mich in einem extra Thread

Hi Christian,

das hatte ich auch.
In Ubuntu 22.04 liegt e2fsck in version 1.46.5 oder zumindest <1.47.0 vor.
Ab 1.47.0 gibt es wohl das FEATURE_C12 „flag“.
Linuxmuster Server mit ubuntu 26.04 hat e2fsck 1.47.2.

Ich vermute mal, dass dieses flag irgendwo irgendwann von LINBO gesetzt wird.
Beim Boot von Ubuntu 22.04 und einem automatischen fsck crasht das dann.

Ich hab in Linbo gebootet und bin vom Server per linbo-ssh auf den Client drauf und:

e2fsck -fy /dev/sda1 && tune2fs -O ^orphan_file /dev/sda1 && e2fsck -fy /dev/sda1

wobei sda1 meine root Partiton ist.

Danach aus der linbo-ssh session ein reboot oder linbo_wrapper start:1 und der Client bootet wieder.

Ich hab anschließend gleich auf Ubuntu 24.04 hochgezogen, da ich das sowieso machen wollte und bin gerade dran den nächsten Sprung auf 26.04 zu vollziehen. Dann ist mal wieder ne Weile Ruhe.

Bisher läufts ganz gut :wink:

Viele Grüße, David

Hallo David,

wie genial ist das denn? Ich habe das gerade auf einen Client angewendet und er startet durch.

Herzlichen Dank.

Vielleicht kann ich das noch automatisieren, aber es sind letztendlich nur 20 Rechner.

Viele liebe Grüße

Christian

Hallo nochmal,

bei der Umsetzung habe ich festgestellt, dass Linbo bei Neu&Start die Partition vermutlich formatiert und der Fehler wieder auftritt. Ich habe mir mit Sync&Start beholfen, da bleiben die Eigenschaften des Dateisystems erhalten.

Wie kann ich beim universellen Postsync Script diese Befehlszeile nur für eine bestimmte Hardwareklasse ausführen bzw. den Partitionsnamen je nach Hardware einbauen?

Hallo Christian,

dafür ist eigentlich die Variable HOSTGROUP da.

Damit kannst du unten eine if Schleife machen.

Ich hab das aber nciht probiert: ich benutze nur HOSTNAME im postsync script, nicht HOSTGROUP

LG
Holger

Hallo Holger,

es ergaben sich noch weitere Erkenntnisse.
Zuerst betraf es alle Installationen von Ubuntu 22.04 unabhängig von der HOSTGROUP. Darum habe ich versucht mit postsync Scripten, das Dateisystem zu „reparieren“ also das FEATURE_C12 zu entfernen. Das hat aber immer Probleme verursacht, weil das Script genau auf dieser Partition lief.
Mit Hilfe von KI habe ich mir ein prestart-Script schreiben lassen (im Ordner des Images mit imagename.prestart), das nach jeder Synchronisation ausgeführt wird.
Was soll ich sagen? Es funktioniert nun zuverlässig, auch bei NEU & START.

Viele Grüße und danke,

Christian

#!/bin/sh
# /srv/linbo/images/linux/linux.prestart
# Führt einen Dateisystemcheck durch und entfernt inkompatible Flags (feature_c>

# Lokale Variablen von LINBO bereitgestellt:
# $1 = Server-IP, $2 = Client-IP, $3 = Ziel-Partition (z.B. /dev/sda1)
TARGET_PART="$root"
echo "$TARGET_PART"

echo "=== LINBO-Prestart: Bereite Partition $TARGET_PART vor ==="

# Sicherstellen, dass die Partition für den Check NICHT eingehängt ist
if mount | grep -q "on /mnt"; then
    echo "Hänge /mnt aus..."
    umount /mnt
fi

# 1. Feature 'orphan_file' (feature_c12) entfernen, falls vorhanden
echo "Entferne feature_c12 (orphan_file)..."
tune2fs -O ^orphan_file "$TARGET_PART"

# 2. Dateisystem-Prüfung (fsck) erzwingen und Fehler automatisch reparieren (-p>
echo "Starte Dateisystemprüfung (fsck.ext4)..."
#fsck.ext4 -f -p "$TARGET_PART"
e2fsck -f -p "$TARGET_PART"

echo "=== LINBO-Prestart beendet ==="

Hallo Christian,

… linbo prestartscript … das hattre ich garnicht auf dem Schirm.

Sehr gute Idee …

LG
Holger

Toll, diese Community hier. Bin mit meinem Linux Mint-Client in meinem LMN 7.4 Testsystem (bei Vorabtests für die 7.4) auch genau in dieses Thema gelaufen und hab hier sofort die Lösung gefunden. Lieben Dank @no_idea und @ChristianWd!