186 lines
6.6 KiB
Plaintext
186 lines
6.6 KiB
Plaintext
<!-- $Id: m_troubleshooting.sgml,v 1.1 1995/04/10 02:36:24 jfieber Exp $ -->
|
|
<!-- The FreeBSD Documentation Project -->
|
|
|
|
<chapt><heading>Troubleshooting</heading>
|
|
|
|
<p>The following tips and tricks may help you turn a
|
|
failing (or failed) installation attempt into a success.
|
|
Please read them carefully.
|
|
|
|
<sect>
|
|
<heading>Hardware conflict or misconfiguration</heading>
|
|
|
|
|
|
<p><descrip>
|
|
<tag>Problem:</tag> A device is conflicting with
|
|
another or doesn't match the kernel's compiled-in IRQ or
|
|
address.
|
|
|
|
<tag>Cause:</tag> While most device drivers in
|
|
FreeBSD are now smart enough to match themselves to your
|
|
hardware settings dynamically, there are a few that still
|
|
require fairly rigid configuration parameters to be
|
|
compiled in (and matched by the hardware) before they'll
|
|
work. We're working hard to eliminate as many of these
|
|
last hold-outs as we can, but it's not always as easy as
|
|
it looks.
|
|
|
|
<tag>Solution:</tag> There are several possible
|
|
solutions. The first, and easiest, is to boot the kernel
|
|
with the <tt>-c</tt> flag. When you see the initial boot prompt
|
|
(from floppy or hard disk), type:
|
|
|
|
<tscreen><verb>
|
|
/kernel -c
|
|
</verb></tscreen>
|
|
|
|
This will boot just past the memory sizing code and then
|
|
drop into a dynamic kernel configuration utility. Type
|
|
`<tt>?</tt>' at the prompt to see a list of commands.
|
|
You can use this utility to reset the IRQ, memory
|
|
address, IO address or a number of other device
|
|
configuration parameters. You can also disable a device
|
|
entirely if it's causing problems for other devices you'd
|
|
much rather have work. Note that this only affects the
|
|
kernel being booted temporarily, it does not write out
|
|
the information to the kernel so that these settings are
|
|
permanantly altered (this would be actually rather hard).
|
|
If you reboot, you'll have to make the same changes
|
|
again. The goal of the <tt>-c</tt> utility is to get you
|
|
up far enough to be able to download the appropriate
|
|
sources and configure and rebuild a kernel more specific
|
|
to your needs.
|
|
|
|
Another solution is, obviously, to remove the offending
|
|
hardware or simply strip the system down to the bare
|
|
essentials until the problem (hopefully) goes away. Once
|
|
you're up, you can do the same thing mentioned
|
|
above---compile a kernel more suited to your hardware, or
|
|
incrementally try to figure out what it was about your
|
|
original hardware configuration that didn't work.
|
|
|
|
</descrip>
|
|
|
|
<sect>
|
|
<heading>My floppy-tape drive isn't probed</heading>
|
|
|
|
<p>Cause: Last-minute problems with this driver caused it
|
|
to be disabled by default.
|
|
|
|
Solution: Boot with -c (described above) and set the
|
|
flags value of fdc0 to 1. This will re-enable the floppy
|
|
tape driver. Sorry, but it was causing problems for
|
|
other people!
|
|
|
|
<sect>
|
|
<heading>When I boot for the first time, it still looks for
|
|
/386bsd!</heading>
|
|
|
|
<p>Cause: You still have the old FreeBSD 1.x boot blocks on
|
|
your boot partition.
|
|
|
|
Solution: You should re-enter the installation process,
|
|
invoke the (F)disk editor and chose the (W)rite option.
|
|
This won't hurt an existing installation and will make
|
|
sure that the new boot blocks get written to the drive.
|
|
If you're installing for the first time, don't forget to
|
|
(W)rite out your new boot blocks! :-)
|
|
|
|
<sect>
|
|
<heading>I want to boot FreeBSD off the second drive. It
|
|
doesn't!</heading>
|
|
|
|
<p>Cause: FreeBSD will actually install just fine on a
|
|
drive other than 0 (the first drive), and the boot
|
|
manager will even allow you to select it, but the boot
|
|
blocks rather pathologically assume 0. This should be
|
|
fixed in 2.1.
|
|
|
|
Solution: Easy - follow these steps:
|
|
|
|
1. Select the first (0) drive from the (F)disk editor
|
|
and write out the boot manager with the (B) option.
|
|
This will enable the boot manager that allows you to
|
|
actually boot off the other drive.
|
|
|
|
2. Exit the fdisk editor for the first drive and and
|
|
re-enter it again for the drive you wish to install
|
|
on. Set up a partition on this drive, or select
|
|
(A)ll for the entire drive.
|
|
|
|
3. Enter the disklabel editor and allocate space on
|
|
your second drive as normal. Proceed with the
|
|
installation.
|
|
|
|
4. Once you've installed on the disk and are going to
|
|
reboot from the hard disk, enter the following at
|
|
the boot prompt:
|
|
|
|
hd(1,a)/kernel
|
|
|
|
This will ensure that you really boot from the second
|
|
drive. If you've actually installed on a drive other
|
|
than 1 (the 3rd or 4th drive?), substitute that number
|
|
in for the above. You will need to enter this EVERY
|
|
time you reboot from the hard disk. If you're feeling
|
|
brave and have a srcdist + the requisite experience,
|
|
you can hack the boot blocks in:
|
|
|
|
/usr/src/sys/i386/boot/biosboot
|
|
|
|
So that this drive you're booting from is hard-coded.
|
|
Recompile the boot blocks and reinstall them on your
|
|
drive with `disklabel -B ...' You can then have the
|
|
default Do The Right Thing.
|
|
|
|
<sect>
|
|
<heading>Newfs crashes, requesting that blocksize be 32K</heading>
|
|
|
|
<p>Cause: You have your SCSI controller configured to
|
|
translate geometries for disks >1GB in size.
|
|
|
|
Solution: Turn such translation OFF in your controller's
|
|
BIOS setup! FreeBSD has no problems with disks >1GB just
|
|
so long as the root partition starts and ends BELOW
|
|
cylinder 1024. This is a PC hardware limitation.
|
|
|
|
<sect>
|
|
<heading>FreeBSD won't boot off the hard disk</heading>
|
|
|
|
<p>Cause: Root partition does not start and end below
|
|
cylinder 1024.
|
|
|
|
Solution: See solution for newfs crashes, or move your
|
|
root partition. This limitation holds true for ANY
|
|
operating system you wish to boot from your hard drive.
|
|
|
|
|
|
<sect>
|
|
<heading>FreeBSD still won't boot off the hard disk</heading>
|
|
|
|
<p>Cause: No boot code is installed in sector 1.
|
|
|
|
Solution: Chose the Write MBR (B)oot code in the FDISK
|
|
editor.
|
|
|
|
<sect>
|
|
<heading>Nope, FreeBSD's still not booting from the hard
|
|
disk</heading>
|
|
|
|
<p>Cause: BIOS disk geometry different from that used when
|
|
installing FreeBSD.
|
|
|
|
Solution: With IDE drives, pay careful attention to the
|
|
geometry information that FreeBSD prints out when it's
|
|
first booting off the floppy. Use this geometry in your
|
|
BIOS setup or use the BIOS geometry when you install
|
|
FreeBSD. Either way, they have to match.
|
|
|
|
With SCSI drives, the values they report is most often
|
|
bogus and cannot be used. In this situation, the SCSI
|
|
controller is performing geometry translation and it's
|
|
probably wise to assume a default of 64 heads, 32 sectors
|
|
and 1MB/cylinder. Use these values when you install
|
|
FreeBSD. See above comments concerning newfs failures
|
|
for more info.
|