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.
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.
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
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.
# 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
}
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?
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
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.
“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: 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
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
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
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?
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!
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:
client in eine neue Hardwareklasse stecken (einfach in der
/etc/linuxmuster/workstations die HWK ändern und dann
import_workstations laufen lassen)
eine start.conf aus /var/linbo/examples/ herunterkopieren zu
/var/linbo/start.conf.
in der Vorlagen startr.conf. den Imagenamen und die
Partitionsgrößen wie gewünscht anpassen
import_workstations
Kontrollieren, ob die /var/linbo/boot/grub/.conf stimmt (hd1?
hd0?)
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.
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!