Linbo - kein Boot mehr aus Grub möglich, weil er Label nicht findet

Hallo,

ich habe letzte Woche auf die aktuelle Linbo-Version aktualisiert und dabei liefen meine AMD-Rechner erstmal nicht mehr. Nach einem Suchen habe ich dann hier die Lösung gefunden mit blacklisten des Grafiktreibers. Die Linbo-GUI geht jetzt wieder, aber die Rechner starten nicht mehr aus Grub heraus.

Ich habe nach dem Update die gruppe.cfg neuschreiben lassen (mit import_wortstations) und dann wieder unsere Änderungen eingefügt, d.h. automatisch Ubuntu starten, statt Linbo. Jetzt klappt das aber nicht mehr, da Linbo nach dem Label sucht, welches in der start.conf drin steht (das ist dort schon von Anfang an drin, noch bevor Linbo das konnte).

Was muss ich tun, damit die Rechner wieder starten und Grub die Label findet? Ich habe schon probiert die Platte neu zu partitionieren, aber das hat nicht geholfen.

Der Start (z.B. nach einem Sync) aus Linbo klappt ohne Probleme, nur nicht direkt aus dem Grub-Menü.

Mich wundert es, dass das hier noch nicht mehr Leute betrifft, aber vielleicht habe ich ja nur was wesentliches übersehen?!

vG Stephan

Hallo Stefan,

ich habe letzte Woche auf die aktuelle Linbo-Version aktualisiert und
dabei liefen meine AMD-Rechner erstmal nicht mehr. Nach einem Suchen
habe ich dann hier die Lösung gefunden mit blacklisten des
Grafiktreibers.

nomodeset
ist die Option der Wahl.
Zuerst haben wir es mit Blacklist gemacht, dann nomodeset.

Ich habe nach dem Update die |gruppe.cfg| neuschreiben lassen (mit

import_wortstations|) und dann wieder unsere Änderungen eingefügt, d.h.
automatisch Ubuntu starten, statt Linbo. Jetzt klappt das aber nicht
mehr, da Linbo nach dem Label sucht, welches in der |start.conf| drin
steht (das ist dort schon von Anfang an drin, noch bevor Linbo das konnte).

Was muss ich tun, damit die Rechner wieder starten und Grub die Label
findet? Ich habe schon probiert die Platte neu zu partitionieren, aber
das hat nicht geholfen.

… schade: das wäre mein Vorschlag gewesen: einfach neu Partitionieren:
dann sind auch die Label geschrieben.
Du hattest sie zwar schon vorher in der start.conf: aber linbo
unterstützt sie erst seit … schätze mal 2.3.26 …

Kannst du mal in linbo booten und nachschauen, ob die Label schon
geschrieben sind?
blkid
sollte das anzeigen.
Siehe hier:

Mich wundert es, dass das hier noch nicht mehr Leute betrifft, aber
vielleicht habe ich ja nur was wesentliches übersehen?!

… eigentlich nicht: die Labels werden in grub verwendet: natürlich
müssen sie dazu auch auf der Platte stehen.
Ich habe Clients, bei denen ich Labels benötigte, damit sie wieder
funktionieren, weil der neuere Kernel dummerweise den SD Kartenslot in
die sda, b, c… Reihe einreihte (nicht immer, aber manchmal … ).

Was ich allerdings sehr selten mache ist das ungesyncte booten eines
Betriebsystems: also an linbo vorbei.
In der Schule habe ich eine Hardwareklasse die das so hat: aber auch die
funktioniert seit Monaten ohne Anpassung mit dem linbo 2.3.31

Es kann aber sein, dass ich die grub.cfg bei der Gruppe nicht haben neu
schreiben lassen: dann würde da noch die Version ohne Labels stehen…
Sollen wir mal grub.cfg s vergleichen?
Wer mehr Labels drin stehen hat? :slight_smile:

LG

Holger

Hallo Holger,

danke für die schnelle Antwort:

Seit wann ist das so? In den Release-Notes hier im Forum und in der Doku steht es anders.

Ok, ich schau mal nach. Wahrscheinlich wird das erst morgen.

Wir machen das hier bei allen Rechnern, die nur Ubuntu haben, weil es einfach schneller geht :slight_smile:

Hier ist meine aktuelle grub.cfg:

# global part of group specific grub.cfg template for linbo net boot
# thomas@linuxmuster.net
# 20171107
#

# if you don't want this file being overwritten by import_workstations remove the following line:
# ### managed not by linuxmuster.net ###

# edit to your needs
set default=1
set timeout=3
set fallback=0

set gfxpayload=800x600x16

# 32bit pae, non pae or 64bit kernel
if cpuid -l; then
 set linbo_kernel=/linbo64
 set linbo_initrd=/linbofs64.lz
elif cpuid -p; then
 set linbo_kernel=/linbo
 set linbo_initrd=/linbofs.lz
else
 set linbo_kernel=/linbo-np
 set linbo_initrd=/linbofs-np.lz
fi

# theme settings (modify for custom theme)
set theme=/boot/grub/themes/linbo/theme.txt
#set font=/boot/grub/themes/linbo/unifont-regular-16.pf2

# load theme
#if [ -e "$theme" -a -e "$font" ]; then
# loadfont "$font"
 export theme
#fi

clear

# find linbo cache partition
set cachelabel="cache"
if [ -n "$cachelabel" ]; then
  search --label "$cachelabel" --set cacheroot
fi
if [ -z "$cacheroot" ]; then
  search --file /start.conf --set cacheroot
fi
if [ -z "$cacheroot" ]; then
  search --file "$linbo_initrd" --set cacheroot
fi
if [ -n "$cacheroot" ]; then
  set root="$cacheroot"
else
  set root="(hd0,2)"
fi

# linbo part, boot local or net (default #0)
menuentry 'LINBO' --class linux {

 echo LINBO $bootflag for group compaq
 echo

 if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
  set bootflag=localboot
 elif [ -n "$pxe_default_server" ]; then
  set root="(tftp)"
  set bootflag=netboot
 fi

 if [ -n "$bootflag" ]; then
  echo -n "Loading $linbo_kernel ..."
  linux $linbo_kernel quiet splash dhcpretry=20 modprobe.blacklist=radeon $bootflag
  echo
  echo -n "Loading $linbo_initrd ..."
  initrd $linbo_initrd
  boot
 else
  if [ "$grub_platform" = "pc" ]; then
   set ipxe="/ipxe.lkrn"
  fi
  if [ -e "$ipxe" ]; then
   echo -n "Initiating pxe boot ..."
   linux16 $ipxe dhcp
   boot
  fi
 fi

}
# group specific grub.cfg template for linbo net boot, should work with linux and windows operating systems
# thomas@linuxmuster.net
# 20171107
#

# start "Ubuntu" directly
menuentry 'Ubuntu (Start)' --class ubuntu_start {

 set oslabel="ubuntu"
 if [ -n "$oslabel" ]; then
  search --label "$oslabel" --set osroot
 fi
 if [ -n "$osroot" ]; then
  set root="$osroot"
 else
  set root="(hd0,1)"
 fi
 set win_efiloader="/EFI/Microsoft/Boot/bootmgfw.efi"

 if [ -e /vmlinuz -a -e /initrd.img ]; then
  linux /vmlinuz root=LABEL=ubuntu ro splash
  initrd /initrd.img
 elif [ -e /vmlinuz -a -e /initrd ]; then
  linux /vmlinuz root=LABEL=ubuntu ro splash
  initrd /initrd
 elif [ -e /vmlinuz -a -e /initrd.img ]; then
  linux /vmlinuz root=LABEL=ubuntu ro splash
  initrd /initrd.img
 elif [ -e /vmlinuz ]; then
  linux /vmlinuz root=LABEL=ubuntu ro splash
 elif [ -s /boot/grub/grub.cfg ] ; then
  configfile /boot/grub/grub.cfg
 elif [ "$grub_platform" = "pc" ]; then
  if [ -s /bootmgr ] ; then
   ntldr /bootmgr
  elif [ -s /ntldr ] ; then
   ntldr /ntldr
  elif [ -s /grldr ] ; then
   ntldr /grldr
  else
   chainloader +1
  fi
 elif [ -e "$win_efiloader" ]; then
  chainloader $win_efiloader
  boot
 fi

}

# boot LINBO, sync and then start "Ubuntu"
menuentry 'Ubuntu (Sync+Start)' --class ubuntu_syncstart {

 if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
  set bootflag=localboot
 elif [ -n "$pxe_default_server" ]; then
  set root="(tftp)"
  set bootflag=netboot
 fi

 if [ -n "$bootflag" ]; then
  echo LINBO $bootflag for group compaq
  echo
  echo -n "Loading $linbo_kernel ..."
  linux $linbo_kernel quiet splash dhcpretry=20 modprobe.blacklist=radeon linbocmd=sync:1,start:1 $bootflag
  echo
  echo -n "Loading $linbo_initrd ..."
  initrd $linbo_initrd
  boot
 fi

}

# boot LINBO, format os partition, sync and then start "Ubuntu"
menuentry 'Ubuntu (Neu+Start)' --class ubuntu_newstart {

 if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
  set bootflag=localboot
 elif [ -n "$pxe_default_server" ]; then
  set root="(tftp)"
  set bootflag=netboot
 fi

 if [ -n "$bootflag" ]; then
  echo LINBO $bootflag for group compaq
  echo
  echo -n "Loading $linbo_kernel ..."
  linux $linbo_kernel quiet splash dhcpretry=20 modprobe.blacklist=radeon linbocmd=format:1,sync:1,start:1 $bootflag
  echo
  echo -n "Loading $linbo_initrd ..."
  initrd $linbo_initrd
  boot
 fi

}

Das stimmt, doch ich habe die Labels immer als optionales Feature verstanden. So wie es auszieht, wurden sie mir „aufgezwungen“, da ich die Kernelparameter anpassen musste.

vG

Hallo Holger,

hier die Ausgabe von bklid von einem Rechner, den ich noch nicht mit der neuen Linbo-Version formatiert habe (nur gesynct):

/dev/sda1: UUID="63f60bcd-4ee9-48b2-9565-c90564f43fbb" TYPE="ext4" PARTUUID="309e45d6-01"
/dev/sda2: LABEL="cache" UUID="2f49c7ea-232b-4996-a63c-8474beca3c7e" TYPE="ext4" PARTUUID="309e45d6-02"
/dev/sda3: LABEL="swap" UUID="69ef902a-87f2-4c62-be45-4aa1c2b851e2" TYPE="swap" PARTUUID="309e45d6-03"
/dev/sda4: LABEL="data" UUID="d18a39df-4b8c-4aa3-88ba-1e07e70a0790" TYPE="ext4" PARTUUID="309e45d6-04"

Interessant ist, dass alle bis auf die erste Partition schon ein Label haben?! Soweit ich weiß ist es schon eine Weile her, dass ich diesen Rechner formatiert habe.

vG

Hallo Stefan,

/dev/sda1: UUID=„63f60bcd-4ee9-48b2-9565-c90564f43fbb“ TYPE=„ext4“
PARTUUID=„309e45d6-01“ /dev/sda2: LABEL=„cache“
UUID=„2f49c7ea-232b-4996-a63c-8474beca3c7e“ TYPE=„ext4“
PARTUUID=„309e45d6-02“ /dev/sda3: LABEL=„swap“
UUID=„69ef902a-87f2-4c62-be45-4aa1c2b851e2“ TYPE=„swap“
PARTUUID=„309e45d6-03“ /dev/sda4: LABEL=„data“
UUID=„d18a39df-4b8c-4aa3-88ba-1e07e70a0790“ TYPE=„ext4“
PARTUUID=„309e45d6-04“ |

Interessant ist, dass alle bis auf die erste Partition schon ein Label
haben?! Soweit ich weiß ist es schon eine Weile her, dass ich diesen
Rechner formatiert habe.

genau: und das ist die ubuntu Partition, da sollte das Label ubuntu sein.
Kontrolier mal in deiner start.conf, ob da bei der Ubuntu Partition
Label = ubuntu steht.

In deiner grub.cfg wird das Label gesetzt:

set oslabel=„ubuntu“

bei meiner wird das nicht gesetzt:

set oslabel=„“

so ist es bei allen meinen Label Einträgen in der grub.cfg.
Ich habe auch in der start.conf keinerlei Label eingetragen.
Ich hab deine cfg und mein in eine Textdatei auf meinem Rechner gelegt
und mit diff verglichen: das waren die Hauptunterschiede.

Ich würde den Client nach der kontrolle der start.conf nochmal
partitionieren und schauen, ob das Label noch immer nicht da ist.

LG

Holger

Hallo Stefan,

nomodeset ist die Option der Wahl.
Zuerst haben wir es mit Blacklist gemacht, dann nomodeset.

Seit wann ist das so? In den Release-Notes hier im Forum und in der Doku
steht es anders.

ich schau danach, dass die Releasenotes geändert werden.
Hier im Forum wurde es hier diskutiert:

LG

Holger

Guten Morgen,

ich habe die LABEL-Zeile im Ubuntu-Abschnitt in der start.conf auskommentiert, dann import_workstations laufen lassen und dann Linbo starten lassen. Jetzt passt es wieder.

Eine Stolperfalle ist es trotzdem für alle, die an Linbo vorbei booten.

vG Stephan

Hallo,

dieser Thread ist schon älter, aber leider noch aktuell.

Die Lösung von Stephan habe ich auch herausgefunden. Aber dies ist nicht der Kern des Problems: Beim Partitionieren und Formatieren wird das Label der ersten Partition nicht gesetzt. Nachdem ich bei einem Rechner linbo-remote -i rechner -c label abgesetzt habe, hat die erste Partition ihr Label erhalten und grub hat das erste Betriebsystem gleich gestartet.

Das ist aber auch keine Lösung. In Linbo scheint bzgl. des Label eintragen ein bug zu sein. In den wird jeder reinlaufen, der auf Label umstellt bzw. LML6.2 neu aufsetzt. Da frage ich mich auch wie Stefan, warum das nicht mehr Leuten aufgefallen ist. (O.k. grub findet das Label nicht und der Entwickler hat einen Fallback auf root(0,1) eingebaut, d.h. der Start wird in der Regel wohl nur verzögert)

Soll ich auf github einen bugreport schreiben?

Viele Grüße,
Helge

Hallo Helge!

Das solltest du bitte machen. Aber checke nochmals ob Du alles wie im technischen Wiki beschrieben umgesetzt hattest.

Beste Grüße

Thorsten

Habe ich gemacht.

Viele Grüße,
Helge

Hallo,

so, jetzt habe ich es gefunden:
In einem windows-Image wird auch das label gespeichert und wird vermutlich durch ntfsclone auf die Festplatte geschrieben - egal was vorher beim Partionieren und Formatieren als label eingetragen wurde. Falls also kein label gesetzt war, wird auch nie eins geschrieben bzw. immer mit “nichts” überschrieben.

D.h. wenn man von einem bestehenden System auf labels umstellen möchte, muss man so vorgehen:

  1. windows für image-Erstellung vorbereiten
  2. Rechner neustarten zu linbo
  3. vom server aus linbo-remote -i rechnername -c label ausführen
  4. mit linbo-remote -i rechnername -c create_cloop:<#>:"label hinzugefügt",upload_cloop:<#> oder mit Linbo direkt ein neues Image erstellen
  5. testen und ausrollen
  6. eventuell die grub-Datei (siehe Workararound oben) wiederherstellen

Damit kann dieser Thread wohl geschlossen werden.

Hallo,

verstehe ich dich richtig, dass es nur auftritt, wenn man auch ein Windows auf dem Rechner hat? Bei uns passiert es auch auf den linux-only Rechnern.

vG Stephan

Ja, meine letzte Antwort bezieht sich auf windows-Partitionen.

Ich hatte auch das Update 2.3.40 eingespielt. Da gab es wohl eine Korrektur zu den Label. Vielleicht hilft das bei dir.
Ich hatte das Problem bei der ersten Partition, die mir halt mit windows bespielt ist. Ich vermute, dass sich da zwei Probleme überlagert hatten.

Viele Grüße,
Helge