How do I diagnose and fix a boot problem?
Frederick N. Brier
fbrier at multideck.com
Thu Sep 1 23:20:55 PDT 2005
I had an old FreeBSD 4.8 server and wanted to upgrade it to 5.4. So I
backed it up to both DVD and to another 5.4 system. The only change in
the hardware was adding a Zonet ZEN3300E gigabit PCI adapter (Realtek
RTL8169S-32). It is an old dual 600 P3 with 1GB RAM and a 3Ware 7000-2
controller with 2 160GB drives. I wiped the system and started from
scratch with a standard (everything) install. I added the updated
packages and got Samba, Apache2, the TWiki installed with all the shared
files and twiki files restored. The system was rebooted at least 5-6
times to make sure everything started up properly, and it did great. I
was just tweaking the sshd settings so that I could run cygwin XFree86
over ssh, and did a "ps" to get the pid of sshd, and ps came back with
an error message. I had never seen this before and so figured perhaps a
reboot was in order. So I did and ended up with this::
FreeBSD/i386 bootstrap loader, Revision 0.8
Hit [Enter] to boot immediately, or any other key for command prompt.
can't load 'kernel'
can't load 'kernel.old'
Type '?' for a list of commands, 'help' for more detailed help.
So I booted using floppies and a CD (the SCSI CD is not bootable - old Adaptec controller) and loaded the Live CD (disk 1). Going into Fixit mode, I mounted the first slice. Everything was fine no damage. The kernel was there with the same date and size as the version on the Live CD. I read through the Handbook section 12.3. None of the files had a recent timestamp. I thought perhaps the MBR a file had been corrupted. I tried the command "disklabel -B twed0s1" which executed with no errors. When I tried the command "fdisk -B -b /boot/boot0 twed0" It failed saying it could not find /dev/twed0 or if the correct directory was /dev, then twedo could not be found". Yet the device file was in /dev, the values looked reasonable, and df and other file system utilities were returning valid values.
I tried rebooting again and looked variable values. Currdev and Loaddev are both "disk1s1a" which I am not sure is correct, but I get an error message if I try to change it to twed0s1a.
Not sure what to try next. I don't know what the problem is or what caused the it. Any help or hints as to how to diagnose the problem or fix this would be greatly appreciated. Thank you.
Frederick N. Brier
More information about the freebsd-questions