The following section covers basic installation troubleshooting, such as common
problems people have reported. There are also a few questions and answers for people
wishing to dual-boot FreeBSD with MS-DOS® or Windows®.
Due to various limitations of the PC architecture, it is impossible for probing to be
100% reliable, however, there are a few things you can do if it fails.
Check the Hardware
Notes document for your version of FreeBSD to make sure your hardware is
supported.
If your hardware is supported and you still experience lock-ups or other problems, you
will need to build a custom kernel. This will allow you
to add in support for devices which are not present in the GENERIC kernel. The kernel on the boot disks is configured assuming
that most hardware devices are in their factory default configuration in terms of IRQs,
IO addresses, and DMA channels. If your hardware has been reconfigured, you will most
likely need to edit the kernel configuration and recompile to tell FreeBSD where to find
things.
It is also possible that a probe for a device not present will cause a later probe for
another device that is present to fail. In that case, the probes for the conflicting
driver(s) should be disabled.
Note: Some installation problems can be avoided or alleviated by updating the
firmware on various hardware components, most notably the motherboard. The motherboard
firmware may also be referred to as BIOS and most of
the motherboard or computer manufactures have a website where the upgrades and upgrade
information may be located.
Most manufacturers strongly advise against upgrading the motherboard BIOS unless there is a good reason for doing so, which could
possibly be a critical update of sorts. The upgrade process can go wrong, causing permanent damage to the BIOS chip.
At this time, FreeBSD does not support file systems compressed with the Double Space™ application. Therefore the file system will
need to be uncompressed before FreeBSD can access the data. This can be done by running
the Compression Agent located in the Start> Programs > System Tools menu.
FreeBSD can support MS-DOS file systems (sometimes
called FAT file systems). The mount_msdosfs(8)
command grafts such file systems onto the existing directory hierarchy, allowing the file
system's contents to be accessed. The mount_msdosfs(8)
program is not usually invoked directly; instead, it is called by the system through a
line in /etc/fstab or by a call to the mount(8) utility with
the appropriate parameters.
A typical line in /etc/fstab is:
/dev/ad0sN /dos msdosfs rw 0 0
Note: The /dos directory must already exist for this
to work. For details about the format of /etc/fstab, see fstab(5).
A typicall call to mount(8) for a MS-DOS file system looks like:
#mount -t msdosfs /dev/ad0s1 /mnt
In this example, the MS-DOS file system is located on
the first partition of the primary hard disk. Your situation may be different, check the
output from the dmesg, and mount
commands. They should produce enough information to give an idea of the partition
layout.
Note: FreeBSD may number disk slices (that is, MS-DOS partitions) differently than other operating systems. In
particular, extended MS-DOS partitions are usually given
higher slice numbers than primary MS-DOS partitions. The
fdisk(8) utility can
help determine which slices belong to FreeBSD and which belong to other operating
systems.
NTFS partitions can also be mounted in a similar manner using the mount_ntfs(8)
command.
2.11.3.1. My system hangs while
probing hardware during boot, or it behaves strangely during install, or the floppy drive
is not probed.
FreeBSD makes extensive use of the system ACPI service on the i386, amd64 and
ia64 platforms to aid in system configuration if it is detected during boot.
Unfortunately, some bugs still exist in both the ACPI driver and within system
motherboards and BIOS. The use of ACPI can be disabled by setting the hint.acpi.0.disabled hint in the third stage boot loader:
set hint.acpi.0.disabled="1"
This is reset each time the system is booted, so it is necessary to add hint.acpi.0.disabled="1" to the file /boot/loader.conf. More information about the boot loader can be
found in Section 12.1.
2.11.3.2. I go to boot from the hard
disk for the first time after installing FreeBSD, the kernel loads and probes my
hardware, but stops with messages like:
changing root device to ad1s1a panic: cannot mount root
What is wrong? What can I do?
What is this bios_drive:interface(unit,partition)kernel_name
thing that is displayed with the boot help?
There is a longstanding problem in the case where the boot disk is not the
first disk in the system. The BIOS uses a different numbering scheme to FreeBSD, and
working out which numbers correspond to which is difficult to get right.
In the case where the boot disk is not the first disk in the system, FreeBSD can need
some help finding it. There are two common situations here, and in both of these cases,
you need to tell FreeBSD where the root filesystem is. You do this by specifying the BIOS
disk number, the disk type and the FreeBSD disk number for that type.
The first situation is where you have two IDE disks, each configured as the master on
their respective IDE busses, and wish to boot FreeBSD from the second disk. The BIOS sees
these as disk 0 and disk 1, while FreeBSD sees them as ad0
and ad2.
FreeBSD is on BIOS disk 1, of type ad and the FreeBSD disk
number is 2, so you would say:
1:ad(2,a)kernel
Note that if you have a slave on the primary bus, the above is not necessary (and is
effectively wrong).
The second situation involves booting from a SCSI disk when you have one or more IDE
disks in the system. In this case, the FreeBSD disk number is lower than the BIOS disk
number. If you have two IDE disks as well as the SCSI disk, the SCSI disk is BIOS disk 2,
type da and FreeBSD disk number 0, so you would say:
2:da(0,a)kernel
To tell FreeBSD that you want to boot from BIOS disk 2, which is the first SCSI disk
in the system. If you only had one IDE disk, you would use 1:
instead.
Once you have determined the correct values to use, you can put the command exactly as
you would have typed it in the /boot.config file using a
standard text editor. Unless instructed otherwise, FreeBSD will use the contents of this
file as the default response to the boot: prompt.
2.11.3.3. I go to boot from the hard
disk for the first time after installing FreeBSD, but the Boot Manager prompt just prints
F? at the boot menu each time but the boot will not go any
further.
The hard disk geometry was set incorrectly in the partition editor when you
installed FreeBSD. Go back into the partition editor and specify the actual geometry of
your hard disk. You must reinstall FreeBSD again from the beginning with the correct
geometry.
If you are failing entirely in figuring out the correct geometry for your machine,
here is a tip: Install a small DOS partition at the beginning of the disk and install
FreeBSD after that. The install program will see the DOS partition and try to infer the
correct geometry from it, which usually works.
The following tip is no longer recommended, but is left here for reference:
If you are setting up a truly dedicated FreeBSD server or workstation where you do not
care for (future) compatibility with DOS, Linux or another operating system, you also
have got the option to use the entire disk (A in the
partition editor), selecting the non-standard option where FreeBSD occupies the entire
disk from the very first to the very last sector. This will leave all geometry
considerations aside, but is somewhat limiting unless you're never going to run anything
other than FreeBSD on a disk.
2.11.3.4. The system finds my ed(4) network card, but I
keep getting device timeout errors.
Your card is probably on a different IRQ from what is specified in the /boot/device.hints file. The ed(4) driver does not
use the “soft” configuration by default (values entered using EZSETUP in
DOS), but it will use the software configuration if you specify -1 in the hints for the interface.
Either move the jumper on the card to a hard configuration setting (altering the
kernel settings if necessary), or specify the IRQ as -1 by
setting the hint hint.ed.0.irq="-1" This will tell the kernel to
use the soft configuration.
Another possibility is that your card is at IRQ 9, which is shared by IRQ 2 and
frequently a cause of problems (especially when you have a VGA card using IRQ 2!). You
should not use IRQ 2 or 9 if at all possible.