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.
