Subject: Booting has stopped working
To: None <port-i386@netbsd.org>
From: Alaric Snell-Pym <alaric+netbsd@snell-pym.org.uk>
List: port-i386
Date: 07/29/2004 08:54:46
My little NetBSD 1.6.1 system has stopped booting.
I had to reboot it because I was having trouble with a USB external disk
- it would detect umass0, but not detect the SCSI bus, and I read that
this was likely to mean that there wasn't enough contiguous memory to
allocate the large transfer buffer required. This was quite likely, the
machine having been running for ages.
So I rebooted... and it never got further than the "[ using XXXX bytes
of netbsd ELF symbol table ]" thing. Which was, admittedly, in the
colour I had compiled my kernel to use for console messages, so I know
it's out of the boot loader and into the kernel.
"Ah", thinks I, "I've broken the kernel." So I boot from a boot floppy
(which works fine), mount /dev/wd0a /mnt, chroot /mnt, and go rebuild
the kernel and install it.
Exactly the same symptom when I reboot.
So I download a GENERIC kernel, as if installing from scratch.
Still no luck.
"My boot loader must be broken!", thinks I, so I do "installboot
biosboot.sym /dev/rwd0a", but it's just the same.
I've tried using the boot loader on my boot floppy to load the kernel
from the hard disk with the same problem.
SO it's a GENERIC kernel, being loaded from a known-good boot loader on
the floppy (which loads the INSTALL kernel fine). But it won't even get
to the copyright message.
What can this be? May my machine be having a problem with large kernels?
Or is it the fact that the kernel is being loaded from disk - might I be
hitting some limitation about the kernel being in the first N megabytes,
that wasn't a problem before because my earlier kernels happened to end
up below that limit, while this one doesn't?
It just freezing without an error message leaves poor me at something of
a loss. I've poked around in the kernel sources, but I can't find
where the function (in ddb/db_elf.c) that prints the ELF symbol table
message is actually called from, but I've traced from locore.s to the
main function that ought to be outputting the copyright message (but
isn't getting there).
Any tips, before I install on a blank disk and copy everything existing
across?
ABS