PhobosUT
01.12.03, 18:20
Hallo!
Ich habe mir jetzt nach dem Bootdisk-HOWTO (http://www.tldp.org/HOWTO/Bootdisk-HOWTO/index.html) einen Diskettensatz erstellt. Dabei befinden sich LILO und der Kernel auf der 1. Diskette. Das ramdisk word des Kernels ist dabei so gesetzt, dass er für das komprimierte rootfs, dass er in die Ramdisk läd, eine neue Diskette angefordert wird. Also befindet sich auf der 2. Diskette ein komprimiertes rootfs. Als Kernel hab' ich den SuSE Standart Kernel genommen, der der bei mir installiert war (SuSE 7.3).
Prinzipiell klappt das auch. Also LILO läuft, wie er soll, dann wird der Kernel geladen, und dann kommt:
VFS: Insert root floppy disk to be loaded into RAM disk an press ENTER
Ist ja auch richtig. Wenn ich dann aber Enter drücke passiert gar nichts, was aber recht einfach zu erklären ist. Ich hab' 'ne USB Tastatur, und alles was mit USB zu tun hat, ist glaube ich per Modul in den SuSE Kernel eingebaut.
Deswegen hab' ich's dann am zweiten PC probiert, der hat nämlich 'ne PS2 Tastatur. Auch da wurde ich aufgefordert die Diskette mit dem rootfs einzulegen. Nachdem ich Enter gedrückt hatte, griff er für ca. 0,5s auf die Diskette zu und dann kam das:
VFS: Insert root floppy disk to be loaded into RAM disk an press ENTER
Unable to handle kernel NULL pointer dereference at virtual address 00000028
printing eip
c0146ab6
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c0146ab6>]
EFLAGS: 00010246
eax: 00000000 ebx: c1317f40 ecx: cbff6060 edx: 00000000
esi: 00000200 edi: cbff6520 ebp: 00000000 esp: c1317cf4
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 1, stackpage=c1317000)
Stack: c0126347 cbff6060 00000000 c1317f40 c13c5400 00000200 00001000 00000001
00000200 00000000 cbff6060 c13c5400 c1317f60 c1317f60 c1317d50 c012654c
00000000 c1317f60 c1317f40 c13c5400 ffffffff 00000000 cbff6660 c0139972
Call Trace: [<c0126347>] [<c01266a7>] [<c012654c>] [<c0139972>] [<c012ca65>]
[<c0105175>] [<c0105270>] [<c01056ac>]
Code: 8b 50 28 f6 c6 04 75 35 f6 81 1c 01 00 00 02 75 2c f6 c6 08
<0>Kernel panic: Attempted to kill init!
Dann hab' ich im Internet gesucht und das "Unable to handle kernel NULL pointer dereference at virtual address xxxxxxxx" sehr häufig gefunden, aber im Prinzip nie in Bezug auf's Booten. Häufig hab' ich auch gelesen, dass das Hardware Fehler seien. Deswegen hab' ich's auch noch an 'nem anderen PC ausprobiert, aber da kam exakt das gleiche. Als nächstes hab' ich ihm dann, als er die Diskette mit dem rootfs haben wollte einfach 'ne komplett leere (fdformat /dev/fd0) gegeben, und es kam wieder dasselbe. Also es scheint es nicht daran zu liegen, dass ich was beim erstellen des rootfs falsch gemacht hab' denn offenbar kommt er gar nicht so weit.
An was ich jetzt gedacht hab': Mein Kernel ist der von SuSE 7.3, also 2.4.10-4GB. Ich nehm mal an, der benutzt auch das Prinzip der initrd. Ich weiß jetzt nicht, wie ich das fesstellen könnte oder wo ich das nachlesen könnte. Für einen Tip wär ich dankbar, dann würd' ich mal nachsehen, ob mein Kernel initrd benutzt. Aber mal angenommen er benutzt initrd. Normalerweise läuft das dann ja so, dass er die initrd wieder umountet und dann das richtige rootfs mountet. Jetzt ist das richtige rootfs aber auch eine Ramdisk. Könnte es sein, dass es da zu Konflikten kommt? Ich hab' ansonsten keine Ahnung, wo ich jetzt ansetzten könnte. Denn das einzige, was ich in Bezug auf diese Fehlermeldung gelesen hab' war, dass es wohl Hardwarefehler seien, was ich aber bei mir denke ich ausgeschlossen hab'.
Ich habe mir jetzt nach dem Bootdisk-HOWTO (http://www.tldp.org/HOWTO/Bootdisk-HOWTO/index.html) einen Diskettensatz erstellt. Dabei befinden sich LILO und der Kernel auf der 1. Diskette. Das ramdisk word des Kernels ist dabei so gesetzt, dass er für das komprimierte rootfs, dass er in die Ramdisk läd, eine neue Diskette angefordert wird. Also befindet sich auf der 2. Diskette ein komprimiertes rootfs. Als Kernel hab' ich den SuSE Standart Kernel genommen, der der bei mir installiert war (SuSE 7.3).
Prinzipiell klappt das auch. Also LILO läuft, wie er soll, dann wird der Kernel geladen, und dann kommt:
VFS: Insert root floppy disk to be loaded into RAM disk an press ENTER
Ist ja auch richtig. Wenn ich dann aber Enter drücke passiert gar nichts, was aber recht einfach zu erklären ist. Ich hab' 'ne USB Tastatur, und alles was mit USB zu tun hat, ist glaube ich per Modul in den SuSE Kernel eingebaut.
Deswegen hab' ich's dann am zweiten PC probiert, der hat nämlich 'ne PS2 Tastatur. Auch da wurde ich aufgefordert die Diskette mit dem rootfs einzulegen. Nachdem ich Enter gedrückt hatte, griff er für ca. 0,5s auf die Diskette zu und dann kam das:
VFS: Insert root floppy disk to be loaded into RAM disk an press ENTER
Unable to handle kernel NULL pointer dereference at virtual address 00000028
printing eip
c0146ab6
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c0146ab6>]
EFLAGS: 00010246
eax: 00000000 ebx: c1317f40 ecx: cbff6060 edx: 00000000
esi: 00000200 edi: cbff6520 ebp: 00000000 esp: c1317cf4
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 1, stackpage=c1317000)
Stack: c0126347 cbff6060 00000000 c1317f40 c13c5400 00000200 00001000 00000001
00000200 00000000 cbff6060 c13c5400 c1317f60 c1317f60 c1317d50 c012654c
00000000 c1317f60 c1317f40 c13c5400 ffffffff 00000000 cbff6660 c0139972
Call Trace: [<c0126347>] [<c01266a7>] [<c012654c>] [<c0139972>] [<c012ca65>]
[<c0105175>] [<c0105270>] [<c01056ac>]
Code: 8b 50 28 f6 c6 04 75 35 f6 81 1c 01 00 00 02 75 2c f6 c6 08
<0>Kernel panic: Attempted to kill init!
Dann hab' ich im Internet gesucht und das "Unable to handle kernel NULL pointer dereference at virtual address xxxxxxxx" sehr häufig gefunden, aber im Prinzip nie in Bezug auf's Booten. Häufig hab' ich auch gelesen, dass das Hardware Fehler seien. Deswegen hab' ich's auch noch an 'nem anderen PC ausprobiert, aber da kam exakt das gleiche. Als nächstes hab' ich ihm dann, als er die Diskette mit dem rootfs haben wollte einfach 'ne komplett leere (fdformat /dev/fd0) gegeben, und es kam wieder dasselbe. Also es scheint es nicht daran zu liegen, dass ich was beim erstellen des rootfs falsch gemacht hab' denn offenbar kommt er gar nicht so weit.
An was ich jetzt gedacht hab': Mein Kernel ist der von SuSE 7.3, also 2.4.10-4GB. Ich nehm mal an, der benutzt auch das Prinzip der initrd. Ich weiß jetzt nicht, wie ich das fesstellen könnte oder wo ich das nachlesen könnte. Für einen Tip wär ich dankbar, dann würd' ich mal nachsehen, ob mein Kernel initrd benutzt. Aber mal angenommen er benutzt initrd. Normalerweise läuft das dann ja so, dass er die initrd wieder umountet und dann das richtige rootfs mountet. Jetzt ist das richtige rootfs aber auch eine Ramdisk. Könnte es sein, dass es da zu Konflikten kommt? Ich hab' ansonsten keine Ahnung, wo ich jetzt ansetzten könnte. Denn das einzige, was ich in Bezug auf diese Fehlermeldung gelesen hab' war, dass es wohl Hardwarefehler seien, was ich aber bei mir denke ich ausgeschlossen hab'.