xen: netbsd als dom0 bootet nicht

sammy2ooo

voll Tohuwabohu
Hallo zusammen,

beim booten von netbsd-XEN0 (GENERIC) bleibt der Server einfach stehen. Es sieht aus als würde er das root device nicht finden.

folgende Varianten habe ich schon versucht. Immer mit dem gleichen Ergebnis.
module (hd0,0,a)/netbsd-XEN0 root=/dev/hda1 console=tty0
module (hd0,0,a)/netbsd-XEN0 root=/dev/ld0a console=tty0
module (hd0,0,a)/netbsd-XEN0 root(hd0,0,a) console=tty0

folgende grub config
sammy@hydra > egrep -v '^$|^#' /grub/menu.lst
default=2
timeout=10
title Xen 2.0 / NetBSD
root(hd0,0,a)
kernel (hd0,0,a)/xen.gz dom0_mem=65536
module (hd0,0,a)/netbsd-XEN0 console=pc
title Xen 2.0 / NetBSD (backup)
root(hd0,0,a)
kernel (hd0,0,a)/xen.gz dom0_mem=65536
module (hd0,0,a)/netbsd-xen0.backup root=/dev/hda1 ro console=tty0
title NetBSD chain
root (hd0,0,a)
chainloader +1

sammy@hydra > cat /grub/device.map
(fd0) /dev/rfd0a
(hd0) /dev/rld0d

Hat mir wer nen Rat?
 
Versuch es mal damit:

/grub/menu.lst
Code:
default=0
timeout=10
title Xen 2.0 / NetBSD 3 (hda0, vga)
 root(hd0,0)
 kernel (hd0,a)/xen.gz dom0_mem=65536
 module (hd0,a)/netbsd-XEN0 root=/dev/hda1 ro console=tty0
title NetBSD 3 Generic
 root (hd0,0)
 kernel --type=netbsd /netbsd-GENERIC
title NetBSD chain
root (hd0,a)
chainloader +1

Über den ersten Eintrag (also Auswahl 0 = default) startest du den NetBSD-dom0 kernel.
Der zweite Eintrag setzt voraus, dass du den Generic kernel unter / abgelegt hast.
Er ist hilfreich wenn du ohne Xen booten willst (z.B. bei Problemen).
Sofern du nicht/nie über die Serielle Schnittstelle zugreifst kannst du den Abschnitt (wie hier) weg lassen.
Also nur einmal "0" - statt "(hd0,0,a)" wie oben "(hd0,a)"

Weiterhin hast du als default-Wert "2" eingetragen.
Dir ist bewusst, dass du damit den 3. Eintrag auswähslt (Man fängt bei 0 an zu zählen),
Damit versuchst du den Chainloader zu starten.

Wenn das nicht hilft einfach noch mal fragen (mit Fehlermeldung und dmesg-Ausgabe)

Siehe auch:
http://www.netbsd.org/de/Ports/xen/howto.html
http://wiki.bsdforen.de/index.php/NetBSD_-_XEN_2_0
http://de.xen-forum.net/portal.php
(ganz wichtig - immer erst googlen und hier auch mal ins wiki schauen - sonst gibt es schon mal mecker ;) )
 
Zuletzt bearbeitet:
danke für deine schnelle Antwort.

Also das "Problem" ist, dass meine NetBSD Installation auf einem Raid1 Array läuft. Ich habe eben bemerkt das ich für meinen Controller keinen Support im dom0 Kernel hatte (icp vortex) Also das ganze kurzerhand hinzugefügt und neu kompiliert. Allerdings bleibt der dom0 kernel trotzdem wieder hängen und zwar genau an der stelle wo es ins userland übergeht. Deswegen meine Vermutung das er das root Device nicht findet. Wie könnte ich das sonst noch lösen?

Das Problem ist eben dass ich überhaupt keine Fehlermeldung bekomme:
Der XEN Kernel lädt den dom0 Kernel. Nur beim booten vom dom0 Kernel bleibt er dann einfach hängen. Weswegen ich auch keinen dmesg output posten kann.
 
hm ich weiß echt nicht weiter. Gibt es eine Möglichkeit den root-device eintrag direkt in den Kernel zu backen?

stimmt das denn soweit mit meinem root eintrag in der letzten Zeile?
eigentlich ist mein root device ja /dev/ld0a aber wenn in meiner device.map rld0d auf hd0 zeigt sollte es doch passen oder nicht? Komischweise macht es keinen Unterschied ob ich den Eintrag hinzufüge oder einfach nur weglasse
title Xen 2.0 / NetBSD
root(hd0,0)
kernel (hd0,a)/xen.gz dom0_mem=65536
module (hd0,a)/netbsd-XEN0 root=/dev/hda1 console=pc
 
Ich habe noch ein wenig recherchiert und bin auf folgende Infos gestossen:

http://mail-index.netbsd.org/port-xen/2006/03/04/0000.html
weitere Antworten unter:
http://mail-index.netbsd.org/port-xen/2006/03/ (Abschnitt 03/04/2006)
Eine Übersicht/Zusammenfassung findest du auch hier:
http://blog.gmane.org/gmane.os.netbsd.ports.xen/day=20060304

Wenn ich es nach dem ersten Querlesen korrekt interpretiere, hat Grub ein Problem mit ld-Geräte umzugehen selbst wenn das BIOS die logische Festplatte erkennt.
Hier also auf einen Fix von Grub warten.

Mir ist nur nicht ganz klar ob die Anleitung unter dem zuvor genannten Link weiterhin als Workaround für dieses Problem helfen soll.
 
Danke für deine Recherche. Leider hab ich es auch mit den Infos nicht zum laufen bewegen können. Komischerweise kann ich dem NetBSD kernel auch keine Parameter übergeben. Chainloading funktioniert zwar allerdings werde ich beim "klassischen" booten immer nach dem root/dump/... gefragt.

title NetBSD
root(hd0,a)
kernel --type=netbsd (hd0,a)/netbsd

Kann jemand bestätigen, dass man mit grub keine optionen an den (netbsd) Kernel übergeben kann? (vom chainloading abgesehen)
 
Du versuchst es aber immernoch mit Raid1?

sammy2ooo schrieb:
Kann jemand bestätigen, dass man mit grub keine optionen an den (netbsd) Kernel übergeben kann? (vom chainloading abgesehen)

Dazu kenne ich mich mit Grub zu wenig aus. Ich nutze es bisher nur mit Xen und einer Standardfestplatte. Das funktioniert bisher immer problemlos.

Auch wenn ich keine Praxiserfahrung bezüglich NetBSD/Raid habe; vielleicht fällt mir ja was auf wenn du mir deine Raid-Konfig mal zeigst (Raidframe?).

Die fdisk- und disklabel-Ausgabe wäre auch interessant.
 
jupp bin immer noch mit raid1 am basteln. Nur handelt es sich um einen ICP Vortex GDT6513RS Raidcontroller also nada raidframe. Hier mal meine fdisk/disklabel infos.
Wobei ich bezweifle das das was bringen wird. Ich habe auch versucht den GENERIC kernel mit grub zu booten also komplett ohne den xenkernel oder irgendwelche xenartigen options im kernel, was aber auch nicht funktioniert. Mir scheint grub übergibt dem kernel keine parameter. Kann ich irgendwie mit der chainloader methode dem kernel parameter übergeben und über diesen weg irgendwie den xenkernel zum laufen bringen?

root@hydra > fdisk ld0
fdisk: removing corrupt bootsel information
Disk: /dev/rld0d
NetBSD disklabel disk geometry:
cylinders: 8889, heads: 128, sectors/track: 63 (8064 sectors/cylinder)
total sectors: 71686140

BIOS disk geometry:
cylinders: 1023, heads: 255, sectors/track: 63 (16065 sectors/cylinder)
total sectors: 71686140

Partition table:
0: NetBSD (sysid 169)
start 63, size 71686077 (35003 MB, Cyls 0-4462/65/16), Active
1: <UNUSED>
2: <UNUSED>
3: <UNUSED>

root@hydra > disklabel ld0
# /dev/rld0d:
type: unknown
disk: mydisk
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 128
sectors/cylinder: 8064
cylinders: 8889
total sectors: 71686140
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0

16 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: 69576192 63 4.2BSD 2048 16384 28488 # (Cyl. 0*- 8628*)
b: 2104704 69576255 swap # (Cyl. 8628*- 8889*)
c: 71686077 63 unused 0 0 # (Cyl. 0*- 8889*)
d: 71686140 0 unused 0 0 # (Cyl. 0 - 8889*)
 
Du hast Grub mit dem Befehl:

# grub-install /dev/ld0a

oder

# grub-install /dev/rld0d

installiert? Und/Oder den Eintrag "(hd0) /dev/rld0d" manuell in der Datei "/grub/device.map" eingefügt/angepasst?

Was hat das gebracht:
Code:
Well, it turns out that the solution to my "getting grub installed"
problem was actually quite simple.

On my system wd5 doesn't exist, so I made a device node as rwd5d with
the same major/minor numbers as my array (copied from /dev/rld0d) ...
and this was a device grub scanned, without issue...

I filled /grub with the various files it needs, and then:

grub> root (hd0,a)
 Filesystem type is ffs, partition type 0xa9

grub> setup --stage2=/grub/stage2 --prefix=/grub (hd0)

That was all it took.

Wenn das alles nicht funzt fällt mir bald auch nix mehr ein.
 
jo, schade, grub übergibt dem kernel einfach keine Parameter. Kennt wer noch nen anderen Bootloader der mit Netbsd und xen zusammen funktioniert?
 
Hi,
Sry so ein alten Thread wieder aufzuwärmen aber hab einen ähnlichen Problem,
ich hab Grub eingerichtet und kernel gebacken aber nach dem booten komme in dem debuger, das letzte was ich sehe ist das das sd0 als boot device nicht wd0 afaik sd0 ist meine externe usb platte stimmts.

Code:
 nfigurationsdatei für NetBSD/xen. Speichern Sie diese als /grub/menu.lst und führen
# Sie den Befehl "grub-install /dev/rwd0d" aus (Vorausgesetzt, Sie booten von wd0).
#
# Standardmässig sollte der erste Eintrag geladen werden.
default=0
 
# Nach 10 Sekunden soll der vorgegebene Eintrag ausgeführt werden wenn der
# Anwender keine andere Taste als Enter während dieser Zeit betätigt.
timeout=10

# Konfiguriere den seriellen Port zur Verwendung als Konsole.
# Ignoriere dies, wenn nur VGA verwendet wird
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
  
# Der Anwender soll zwischen serieller und VGA-Konsole wählen können,
# vorgegeben wird VGA nach 10 Sekunden
terminal --timeout=10 vga console

# Ein Eintrag für NetBSD/xen. Verwendet wird /netbsd als der domain0 Kernel,
# und die VGA-Konsole. Domain0 werden 64MB RAM zugewiesen.
# Ausgehend davon, dass NetBSD in der ersten MBR Partition installiert ist.
title Xen 2.0 / NetBSD (hda0, vga)
root(hd0,0)
kernel (hd0,a)/xen.gz dom0_mem=65536
module (hd0,a)/netbsd root=/dev/hda1 ro console=tty0
      
# Ebenso wie zuvor, allerdings unter Verwendung der seriellen Konsole.
# Wir können console=tty0 (Linux syntax) oder console=pc (NetBSD syntax) verwenden.
title Xen 2.0 / NetBSD (hda0, serial)
root(hd0,0)
kernel (hd0,a)/xen.gz dom0_mem=65536 com1=115200,8n1
module (hd0,a)/netbsd root=/dev/hda1 ro console=ttyS0
          
# NetBSD/xen verwendet einen Backup-domain0-Kernel (für den Fall, dass ein Kernel
# als /netbsd installiert wurde, der nicht funktioniert.
title Xen 2.0 / NetBSD (hda0, backup, VGA)
root(hd0,0)
kernel (hd0,a)/xen.gz dom0_mem=65536
module (hd0,a)/netbsd.backup root=/dev/hda1 ro console=tty0
title Xen 2.0 / NetBSD (hda0, backup, serial)
root(hd0,0)
kernel (hd0,a)/xen.gz dom0_mem=65536 com1=115200,8n1
module (hd0,a)/netbsd.backup root=/dev/hda1 ro console=ttyS0
                 
# Laden eines regulären NetBSD/i386-Kernel.
# Kann hilfreich sein, wenn ein nicht funktionsfähiger /xen.gz
# eingesetzt wurde. Anmerkung: Verwenden Sie hierzu eine Kopie eines
# funktionierenden Kernels aus der Basisinstallation.
title NetBSD 4.0.1 
root (hd0,a)
kernel /netbsd.orig

# Laden des NetBSD-Bootloaders, wobei der NetBSD/i386-Kernel geladen wird.
# Könnte vorteilhafter als der vorherige Eintrag sein, da grub nicht alle benötigten
# Infos zum NetBSD/i386-Kernel (z. B. Konsole, root device, ...) durchläuft.
title NetBSD chain
root        (hd0,0)
chainloader +1
                         
## Ende der Grub-Konfigurationsdatei.

So sieht meine grub config aus.

Danke und entschuldigung noch mal.

Gruß Menuhin
 
Thx hat sich erledigt,
menu.lst war falsch,der Eintrag root=/dev/hda1 war falsch muss heissen bootdev=wd0a


Gruß Menuhin
 
Zurück
Oben