Linuxclient bootet nicht

Wir haben versucht, nach erfolgreicher Serverinstallation einen Linuxclient zu installieren. Der Download des Musterclients hat problemlos funktioniert. Der Client wird offenbar partitioniert und formatiert, bricht aber mit der Fehlermeldung “/dev/sda konnte nicht eingehängt” werden ab.

Hat jemand eine Idee, woran das liegen könnte? Wir haben uns an die Anleitung auf der Linuxmuster.net Seite gehalten.

Hallo Lutz,

Wir haben versucht, nach erfolgreicher Serverinstallation einen
Linuxclient zu installieren. Der Download des Musterclients hat
problemlos funktioniert. Der Client wird offenbar partitioniert und
formatiert, bricht aber mit der Fehlermeldung “/dev/sda konnte nicht
eingehängt” werden ab.

Hat jemand eine Idee, woran das liegen könnte? Wir haben uns an die
Anleitung auf der Linuxmuster.net http://Linuxmuster.net Seite gehalten.

biotte poste mal die start.conf des Clients und die entsprechende Zeile
aus der /etc/linuxmuster/workstations

Auch die logdatei des Clients aus /var/linbo/log
die _image.log

wäre interessant.

LG

Holger

Hi. Ich habe eine Idee: ist das ganz neue Hardware?
Dann schau mal hier:

Schöne Grüße,
Michael

Hallo lutz.waw,
gleiches Problem incl. identischer Fehlermeldung bei mir. Und meine Rechner sind 6 Jahre alt und haben keine SSD.
In /var/linbo/boot/grub/.cfg stehen meiner Meinung nach falsche Werte bei “set root”:
unsere PCs booten von der 1. Platte, 2. Partition, folglich muss doch im Abschnitt “#start “ubuntu” directly” stehen: set root = “(hd0,1)” und nicht “(hd1,2)”. Analog bei “#find linbo cache”.
Nach der Änderung wird “ubuntu” erfolgreich gebootet.
LG,
Fritz

Hallo Michael,

auch meine Hardware ist alt. Die Clients haben eine I3 CPU, 500GB SATA Platten und 8GB Arbeitsspeicher.

@ Fritz
Ich werde Deine Lösung morgen mal ausprobieren

@Holger
Ich poste morgen früh mal die start.conf. Ich komme heute nicht mehr an das System

Vielen Dank Euch allen

Grüße
Lutz

Hallo,

gleiches Problem incl. identischer Fehlermeldung bei mir. Und meine
Rechner sind 6 Jahre alt und haben keine SSD.
In /var/linbo/boot/grub/.cfg stehen meiner Meinung nach falsche Werte
bei “set root”:

die Datei /var/linbo/boot/grub/.cfg
wird beim Aufruf von
import_workstations
geschrieben, WENN die ca. 6te Zeile in der Datei noch so aussieht:

# ### managed by linuxmuster 

der Wert wird nach den Angaben aus der start.conf gefüllt: deswegen wäre
die start.conf interessant.

LG

Holger

Hi Holger,
hier die orig. Dateien.

# LINBO start.conf, Beispiel fuer Ubuntu
# efi64 auf Partition 1
# Ubuntu auf Partition 2
# Swap auf Partition 3
# Cache auf Partition 4

[LINBO]                             # Start der globalen Konfiguration
KernelOptions = quiet splash nomodeset
Cache = /dev/sda4                  # lokale Cache Partition
Server = 10.16.1.1
Group = xenialqgm
RootTimeout = 600                   # automatischer Rootlogout nach 600 Sek.
SystemType = efi64
AutoPartition = no                  # keine automatische Partitionsreparatur beim LINBO-Start
AutoFormat = no                     # kein automatisches Formatieren aller Partitionen beim LINBO-Start
AutoInitCache = no                 # kein automatisches Befüllen des Caches beim LINBO-Start
DownloadType = torrent
BackgroundFontColor = white         # Bildschirmschriftfarbe (default: white)
ConsoleFontColorStdout = white # Konsolenschriftfarbe (default: white)
ConsoleFontColorStderr = orange     # Konsolenschriftfarbe für Fehler-/Warnmeldungen (default: orange)

[Partition]
Dev = /dev/sda1
Size = 200M
Id = ef
FSType = vfat
Bootable = yes
Label = efi

[Partition]              # Betriebssystem (Ubuntu)
Dev = /dev/sda2          # Device-Name der Partition (sda1 = erste Partition auf erster Platte)
Size = 80G               # Partitionsgroesse in kB (Bsp.: ca. 20G)
Id = 83                  # Partitionstyp (83 = Linux, 82 = swap, c = FAT32, 7 = NTFS, ...)
FSType = ext4            # Dateisystem ext4
Bootable = no           # Bootable-Flag
Label = ubuntu

[Partition]              # Swap
Dev = /dev/sda3          # Device-Name der Partition (sda2 = zweite Partition auf erster Platte)
Size = 4G              # Partitionsgroesse 8388608 kB (Bsp.: ca. 2,5G)
Id = 82                  # Partitionstyp (83 = Linux, 82 = swap, c = FAT32, 7 = NTFS, ...)
FSType = swap
Bootable = no
Label = swap           

[Partition]              # Cachepartition
Dev = /dev/sda4          # Device-Name der Partition (sda4 = vierte Partition auf erster Platte)
Size = 50G               # Partitionsgroesse in kB (Bsp.: keine Angabe = Rest der Platte)
Id = 83                  # Partitionstyp (83 = Linux, 82 = swap, c = FAT32, 7 = NTFS, ...)
FSType = ext4            # Dateisystem ext4
Bootable = no            # Bootable-Flag
Label = cache

[OS]
Name = Ubuntu		            # Name des Betriebssystems
Version =                           # Version (optional)
Description = Ubuntu 16.04 xenial xerus    # Beschreibung
IconName = ubuntu.png               # Icon für die Startseite, muss unter /var/linbo/icons abgelegt sein
#Image =  ubuntu.rsync              # Dateiname des differentiellen Images (Erweiterung .rsync)
Image =                             # erst eintragen, wenn es erzeugt werden soll
BaseImage = xenialqgm.cloop
Boot = /dev/sda2                    # Partition, die Kernel & Initrd enthaelt
Root = /dev/sda2                    # Rootpartition, in die das BS installiert ist
Kernel = vmlinuz                    # Relativer Pfad zum Kernel
Initrd = initrd.img                 # Relativer Pfad zur Initrd
Append = ro splash                  # Kernel-Append-Parameter, ggf. anpassen
StartEnabled = yes                  # "Start"-Button anzeigen
SyncEnabled = yes                   # "Sync+Start"-Button anzeigen
NewEnabled = yes                    # "Neu+Start"-Button anzeigen
Hidden = yes                        # verstecke OS-Reiter
Autostart = no                      # automatischer synchronisierter Start dieses Betriebssystems: yes|no
DefaultAction = sync                # DefaultAction bei Autostart: start|sync|new
AutostartTimeout = 5                # Timeout in Sekunden für Benutzerabbruch bei Autostart

Ab hier die grub.conf

# 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 by linuxmuster.net ###

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

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="(hd1,4)"
fi

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

 echo LINBO $bootflag for group xenialqgm
 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 nomodeset $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="(hd1,2)"
 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 xenialqgm
  echo
  echo -n "Loading $linbo_kernel ..."
  linux $linbo_kernel quiet splash nomodeset 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 xenialqgm
  echo
  echo -n "Loading $linbo_kernel ..."
  linux $linbo_kernel quiet splash nomodeset linbocmd=format:2,sync:1,start:1 $bootflag
  echo
  echo -n "Loading $linbo_initrd ..."
  initrd $linbo_initrd
  boot
 fi

}

LG,
Fritz

Hallo Fritz,

du hast eine EFI start.conf: ist das Absicht?
Um unser BIOS default.cloop auf EFI zu booten muss man schon vorher
eingreifen: das geht nicht ohne weiteres.

Können die Cleints nur EFI?
Kann man das nciht abstellen?

LG

Holger

Hallo Holger,
doch, kein Problem. Dann stell ich das wieder auf bios(64?). Bei den Rechnern funktioniert beides. Ich habe mir nur gedacht, dass in Zukunft efi evtl. besser unterstützt wird.
Das Partitionieren des Clients und die Verteilung (dann auch mit Torrent) der Images habe ich mit bios64 und efi64 erfolgreich getestet. Nur wurde das installierte ubuntu dann leider nicht gestartet. Ich denke, das liegt an den falschen Parametern bei “set root” (s.o.). Liege ich da falsch?
Was meinst du mit “das geht nicht ohne weiteres”?
LG, Fritz

Hallo Fritz,

doch, kein Problem. Dann stell ich das wieder auf bios(64?). Bei den
Rechnern funktioniert beides. Ich habe mir nur gedacht, dass in Zukunft
efi evtl. besser unterstützt wird.

… naja.
Das sit nicht ganz falsch.
Vielleicht nicht das „unterstützt“ sondern das „verwendet“.
Du hast ja gerade festgestellt, dass man das selbe Image nicht ohne
weiteres für BIOS und UEFI Rechner verwenden kann.
Wenn man nun davon ausgeht, dass in ZUkunft eher Rechner mit UEFI
gekauft werden, die irgendwann mal kein CMS mehr haben (oder wie das
heißt), dann wäre es ökonomischer gleich auf UEFI zu setzen.

Das Partitionieren des Clients und die Verteilung (dann auch mit
Torrent) der Images habe ich mit bios64 und efi64 erfolgreich getestet.
Nur wurde das installierte ubuntu dann leider nicht gestartet.

also lass es uns startbar machen.
Ich hab das schon gemacht: ein BIOS Ubuntu Image auf UEFI gebracht und
gestartet… aber wie hab ich das gemacht?
Ist schon länger her?

Zuerst mal mein Hauptrechner hier Zuhause: den hab ich 2007 mit ubuntu
7.04 installiert … und seit dem immer neue Hardware verpaßt, neue
Festplatte, neue SSD und zuletzt, als letztes Jahr der Ryzen kam, hab
ich das System auf eine NVME SSD geklont und weiter betrieben.
Und weil das in 10 Minuten passiert war und ich viel mehr Zeit
eingerechnet hatte, dacht ich mir: komm, dann stell auch noch vom BIOS
boot auf UEFI Boot um: gesagt getan: umgestellt… bootet nicht (wie
erwartet), also von Ubuntu Stick gebootet (im UEFI Mode! das ist
wichtig) und wieder bootbar gemacht (irgendeien uefi boot grub2
Anleitung im Netz …).
Ich glaube, so hab ich es auch beim Image gemacht.

Ich
denke, das liegt an den falschen Parametern bei “set root” (s.o.). Liege
ich da falsch?

ja: der Parameter ist doch richtig: es wird von sda2 gebootet und da
liegt das ubuntu.

Also probier doch mal in dem ZUstand das ubuntu wieder bootbar zu
machen: wenn es bootet: image erstellen und verteilen.
Das sollte klappen.

LG

Holger

Hallo Holger,

“ja: der Parameter ist doch richtig: es wird von sda2 gebootet und da
liegt das ubuntu.”
Das musst du mir erklären: Ich beziehe mich auf die grub.cfg. Die Nomenklatur bei grub verlangt doch, dass bei Null das Zählen begonnen wird.
Mit “(hd1,2)” ist demnach die 2. Platte und auf dieser die 3. Partition gemeint.
Will ich von der 1. Festplatte, 2. Partition booten, dann muss in der .cfg bei “ubuntu” doch “hd(0,1)” stehen???

LG, Fritz

Hallo Fritz,

“ja: der Parameter ist doch richtig: es wird von sda2 gebootet und da
liegt das ubuntu.”
Das musst du mir erklären: Ich beziehe mich auf die grub.cfg. Die
Nomenklatur bei grub verlangt doch, dass bei Null das Zählen begonnen wird.
Mit “(hd1,2)” ist demnach die 2. Platte und auf dieser die 3. Partition
gemeint.
Will ich von der 1. Festplatte, 2. Partition booten, dann muss in der
.cfg bei “ubuntu” doch “hd(0,1)” stehen???

ja, du hast recht: aber ich auch :slight_smile:
Ich bezog mich auf den Eintrag in der start.conf und der ist mit sda2
korrekt.
Ein
import_workstations
sollte den Eintrag in der /var/linbo/boot/grub/.cfg richten.
Wenn nicht, dann kontrollier ob die Zeile

# ### managed by linuxmuster

noch in der Datei steht (der .cfg Datei)

LG

Holger

Hallo Holger,
ist klar: das ### managed by linuxmuster habe ich schon entfernt, da Änderungen sonst immer überschrieben werden.
Und: sda2 in start.conf ist natürlich richtig. Die Einträge in .cfg werden von linuxmuster 6.2 jedoch falsch generiert.
LG, Fritz

Hallo Fritz,

ist klar: das ### managed by linuxmuster habe ich schon entfernt, da
Änderungen sonst immer überschrieben werden.
Und: sda2 in start.conf ist natürlich richtig. Die Einträge in .cfg
werden von linuxmuster 6.2 jedoch falsch generiert.

… das wäre das erste mal, dass sowas passiert, seit es linbo 2.3 gibt.

Beschreib mal genauer, was „falsch generiert“ bedeutet.
Was steht den in der start.conf und was erscheint dann in der .cfg?

LG

Holger

Hallo Holger,

siehe oben in xenial.start.conf oder meine 1. Antwort:

[Partition] # Betriebssystem (Ubuntu)
Dev = /dev/sda2 # Device-Name der Partition (sda1 = erste Partition auf erster Platte)

und in /var/linbo/boot/grub/<xenial?>.cfg steht dann: (Dateiname aus dem Gedächtnis, sitze gerade nicht vom Server)

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="(hd1,2)"
fi

Zusammengefasst:
aus “/dev/sda2” in der xenial.start.conf macht linuxmuster 6.2 “(hd1,2)” in der entsprechenden grub.cfg.
Ich habe das “### managed by …” gelöcht und (hd1,2) ersetzt durch (hd0,1).
Setze ich in der .cfg noch

set default=1 (erstes Betriebssystem booten)

und

set timeout=5 (Bootmenü ein und Timeout auf 5 s)

dann bootet der Client automatisch ubuntu.
Ist das so gedacht? Wie soll ich vorgehen, wenn ubuntu grundsätzlich gebootet werden soll?
Lasse ich linbo booten

(durch set default=0
set timeout=0),

dann kann linbo ubuntu nicht booten. Liegt das an “system = efi64” in xenial.start.conf in Verbindung mit dem unveränderten Musterclient-Image? Danke für deine (eure) Hilfe!

LG,
Fritz

Hallo Fritz,

Zusammengefasst:
aus “/dev/sda2” in der xenial.start.conf macht linuxmuster 6.2
(hd1,2)” in der entsprechenden grub.cfg.
Ich habe das “### managed by …” gelöcht und (hd1,2) ersetzt durch (hd0,1).
Setze ich in der .cfg noch

set default=1 (erstes Betriebssystem booten)

und

set timeout=5 (Bootmenü ein und Timeout auf 5 s)

dann bootet der Client automatisch ubuntu.
Ist das so gedacht? Wie soll ich vorgehen, wenn ubuntu grundsätzlich
gebootet werden soll?

dann läßt du es so drin stehen: dann wird ubuntu immer direkt gebootet.

Lasse ich linbo booten

(durch set default=0
set timeout=0),

dann kann linbo ubuntu nicht booten.

linbo bootet ubuntu nicht direkt sondern macht einen restart und läßt
das grub erledigen, den es vorher manipuliert beim nächsten start
einmalig direkt ubuntu zu booten.
Und das funktioniert bei dir nicht?
… wahrscheinlich, weil linbo eben auch dann das hd1 verwendet und nicht hd0

Liegt das an “system = efi64” in
xenial.start.conf in Verbindung mit dem unveränderten
Musterclient-Image?

nein: ich habe noch nie erlebt, dass linbo einfach hd1 verwendet und
nicht hd0.
Auch niocht bei efi64 clients.

Wir sollten bei dir das alles mal geradeziehen und von Anfang an testen.
Deswegen empfehle ich folgendes vorgehen:

zuerst testen wir den bios Modus:

  1. client in eine neue Hardwareklasse stecken (einfach in der
    /etc/linuxmuster/workstations die HWK ändern und dann
    import_workstations laufen lassen)
  2. eine start.conf aus /var/linbo/examples/ herunterkopieren zu
    /var/linbo/start.conf.
  3. in der Vorlagen startr.conf. den Imagenamen und die
    Partitionsgrößen wie gewünscht anpassen
  4. import_workstations
  5. Kontrollieren, ob die /var/linbo/boot/grub/.conf stimmt (hd1?
    hd0?)
  6. Cleint starten, partitionieren, syncen, startet?

Dann wechsel zum efi64 MOdus, wenn das oben geklappt hat.
Gleiches Vorgehen, nur mit einer efi Vorlage aus /var/linbo/examples

Ich vermute, dass das hin und her von bios zu efi und das zwischendrin
herausnehmen der # ### managed by linuxmuster Zeile irgend einen Salat
produziert hat.

Viele Grüße

Holger

Danke für deine (eure) Hilfe!

Hallo Holger,

mit “system = bios64” in xenial.start.conf funktioniert alles wie es soll.
Mit echt wenig Aufwand kann man die Musterclients auf den Rechnern installieren.
Danke für die Unterstützung!

LG,

Fritz

Hii. Ich habe diesen Artikel gefunden, in dem nochmal die Hintergründe für/gegen (U)EFI genannt werden. Mittelfristig muss man umstellen…
https://debianforum.de/forum/viewtopic.php?t=141004

Schönen Gruß,
Michael

3 Beiträge wurden in ein neues Thema verschoben: Startprobleme mit Xenial-Client