mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-24 11:29:10 +00:00
186 lines
6.9 KiB
Plaintext
186 lines
6.9 KiB
Plaintext
Troubleshooting Tips - or "These are the times that try men's souls"
|
|
--------------------------------------------------------------------
|
|
|
|
The following tips and tricks may help you turn a failing (or failed)
|
|
installation attempt into a success. Please read them carefully.
|
|
|
|
---
|
|
|
|
Symptom: Hardware conflict or misconfiguration.
|
|
Device not being found when it should be.
|
|
|
|
Problem: A device is conflicting with another, or its settings
|
|
don't match the kernel's expected IRQ or address.
|
|
|
|
Explanation: 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.
|
|
|
|
Solution: There are several possible solutions. The first,
|
|
and easiest, is to boot the kernel with the -c flag.
|
|
When you see the initial boot prompt (from floppy or
|
|
hard disk), type:
|
|
|
|
/kernel -c
|
|
|
|
This will boot just past the memory sizing code and
|
|
then drop into a dynamic kernel configuration utility.
|
|
Type `?' 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 -c 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.
|
|
|
|
---
|
|
Symptom: My floppy-tape drive isn't probed.
|
|
|
|
Problem: 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 people without floppy
|
|
tape drives!
|
|
---
|
|
|
|
Symptom: When I boot for the first time, it still looks for /386bsd!
|
|
|
|
Problem: 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! :-)
|
|
|
|
---
|
|
|
|
Symptom: I want to boot FreeBSD off the second drive. It doesn't!
|
|
|
|
Problem: 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:
|
|
|
|
wd(1,a)/kernel
|
|
|
|
[ If you're using a SCSI drive, substitute
|
|
`sd' for `wd' above ]
|
|
|
|
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.
|
|
---
|
|
|
|
Symptom: Newfs crashes, requesting that blocksize be 32K
|
|
|
|
Problem: You have your disk controller configured to translate
|
|
to a some really large cylinder size because you're using
|
|
a drive with lots of cylinders.
|
|
|
|
Solution: Turn such translation OFF in your controller's BIOS
|
|
setup if you can. If you must share the disk with other
|
|
Operating Systems, then this may not be possible and
|
|
you may simply be unable to install FreeBSD until we have
|
|
support for large translated geometries, sorry!
|
|
[ Hopefully in 2.1 ].
|
|
|
|
---
|
|
|
|
Symptom: FreeBSD won't boot off the hard disk
|
|
|
|
Problem: 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.
|
|
|
|
---
|
|
|
|
Symptom: FreeBSD still won't boot off the hard disk
|
|
|
|
Problem: No boot code is installed in sector 1.
|
|
|
|
Solution: Chose the Write MBR (B)oot code in the FDISK editor and
|
|
write out the boot manager so that you have a chance to
|
|
select operating systems.
|
|
|
|
[ ** NOTE: If you are using the entire disk for FreeBSD, or
|
|
you have a Connor drive that does cylinder translation
|
|
from the MBR boot code, do NOT chose this option! ** ].
|
|
|
|
---
|
|
Summary: Nope, FreeBSD's still not booting from the hard disk.
|
|
|
|
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.
|