4 Troubleshooting

4.1 Repairing an Existing FreeBSD Installation

FreeBSD features a ``Fixit'' option in the top menu of the boot floppy. To use it, you will also need either a fixit.flp image floppy, generated in the same fashion as the boot floppy, or the ``live filesystem'' CDROM; typically the second CDROM in a multi-disc FreeBSD distribution.

To invoke fixit, simply boot the kern.flp floppy, choose the ``Fixit'' item and insert the fixit floppy or CDROM when asked. You will then be placed into a shell with a wide variety of commands available (in the /stand and /mnt2/stand directories) for checking, repairing and examining file systems and their contents. Some UNIX administration experience is required to use the fixit option.

4.2 Common Installation Problems, Q&A

4.2.1. 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:
4.2.2. 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 won't go any further.

4.2.1. 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 wd1s1a 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 wd0 and wd2.

FreeBSD is on BIOS disk 1, of type wd and the FreeBSD disk number is 2, so you would say:

1:wd(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.

4.2.2. 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 won't 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's 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 don't care for (future) compatibility with DOS, Linux or another operating system, you've also 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.

4.3 Known Hardware Problems, Q&A

Note: Please send hardware tips for this section to FreeBSD documentation project mailing list.

4.3.1. The mcd(4) driver keeps thinking that it has found a device and this stops my Intel EtherExpress card from working.
4.3.2. FreeBSD claims to support the 3Com PCMCIA card, but my card isn't recognized when it's plugged into my laptop.
4.3.3. FreeBSD finds my PCMCIA network card, but no packets appear to be sent even though it claims to be working.
4.3.4. The system finds my ed(4) network card, but I keep getting device timeout errors.
4.3.5. I booted the install floppy on my IBM ThinkPad (tm) laptop, and the keyboard is all messed up.
4.3.6. When I try to boot the install floppy, I see the following message and nothing seems to be happening. I cannot enter anything from the keyboard either.
4.3.7. I have a Matsushita/Panasonic CR-522, a Matsushita/Panasonic CR-523 or a TEAC CD55a drive, but it is not recognized even when the correct I/O port is set.
4.3.8. I'm trying to install from a tape drive but all I get is something like this on the screen:
4.3.9. I've installed FreeBSD onto my system, but it hangs when booting from the hard drive with the message:
4.3.10. My system can not find my Intel EtherExpress 16 card.
4.3.11. When installing on an EISA HP Netserver, my on-board AIC-7xxx SCSI controller isn't detected.
4.3.12. I have a Panasonic AL-N1 or Rios Chandler Pentium machine and I find that the system hangs before ever getting into the installation now.
4.3.13. I have this CMD640 IDE controller that is said to be broken.
4.3.14. On a Compaq Aero notebook, I get the message ``No floppy devices found! Please check ...'' when trying to install from floppy.
4.3.15. When I go to boot my Intel AL440LX (``Atlanta'') -based system from the hard disk the first time, it stops with a Read Error message.
4.3.16. When installing on an Dell Poweredge XE, Dell proprietary RAID controller DSA (Dell SCSI Array) isn't recognized.
4.3.17. My Ethernet adapter is detected as an AMD PCnet-FAST (or similar) but it doesn't work. (Eg. onboard Ethernet on IBM Netfinity 5xxx or 7xxx)
4.3.18. I have an IBM EtherJet PCI card, it is detected by the fxp(4) driver correctly, but the lights on the card don't come on and it doesn't connect to the network.
4.3.19. When I configure the network during installation on an IBM Netfinity 3500, the system freezes.
4.3.20. When I install onto a drive managed by a Mylex PCI RAID controller, the system fails to boot (eg. with a read error message).

4.3.1. The mcd(4) driver keeps thinking that it has found a device and this stops my Intel EtherExpress card from working.

Use the UserConfig utility (see HARDWARE.TXT) and disable the probing of the mcd0 and mcd1 devices. Generally speaking, you should only leave the devices that you will be using enabled in your kernel.

4.3.2. FreeBSD claims to support the 3Com PCMCIA card, but my card isn't recognized when it's plugged into my laptop.

There are a couple of possible problems. First of all, FreeBSD does not support multi-function cards, so if you have a combo Ethernet/modem card (such as the 3C562), it won't work. The default driver for the 3C589 card was written just like all of the other drivers in FreeBSD, and depend on the card's own configuration data stored in NVRAM to work. You must correctly configure FreeBSD's driver to match the IRQ, port, and IOMEM stored in NVRAM.

Unfortunately, the only program capable of reading them is the 3COM supplied DOS program. This program must be run on a absolutely clean system (no other drivers must be running), and the program will whine about CARD-Services not being found, but it will continue. This is necessary to read the NVRAM values. You want to know the IRQ, port, and IOMEM values (the latter is called the CIS tuple by 3COM). The first two can be set in the program, the third is un-settable, and can only be read. Once you have these values, set them in UserConfig and your card will be recognized.

4.3.3. FreeBSD finds my PCMCIA network card, but no packets appear to be sent even though it claims to be working.

Many PCMCIA cards have the ability to use either the 10-Base2 (BNC) or 10-BaseT connectors for connecting to the network. The driver is unable to ``auto-select'' the correct connector, so you must tell it which connector to use. In order to switch between the two connectors, the link flags must be set. Depending on the model of the card, -link0 link1 or -link0 -link1 will choose the correct network connector. You can set these in sysinstall(8) by using the Extra options to ifconfig: field in the network setup screen.

4.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 kernel configuration. The ed 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 ? in the IRQ field of your kernel config file.

Either move the jumper on the card to a hard configuration setting (altering the kernel settings if necessary), or specify the IRQ as -1 in UserConfig or ? in your kernel config file. 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.

4.3.5. I booted the install floppy on my IBM ThinkPad (tm) laptop, and the keyboard is all messed up.

Older IBM laptops use a non-standard keyboard controller, so you must tell the keyboard driver (atkbd0) to go into a special mode which works on the ThinkPads. Change the atkbd0 'Flags' to 0x4 in UserConfig and it should work fine. (Look in the Input Menu for 'Keyboard'.)

4.3.6. When I try to boot the install floppy, I see the following message and nothing seems to be happening. I cannot enter anything from the keyboard either.

Keyboard: no

Due to lack of space, full support for old XT/AT (84-key) keyboards is no longer available in the bootblocks. Some notebook computers may also have this type of keyboard. If you are still using this kind of hardware, you will see the above message appears when you boot from the CD-ROM or an install floppy.

As soon as you see this message, hit the space bar, and you will see the prompt:

>> FreeBSD/i386 BOOT
Default: x:xx(x,x)/boot/loader 
boot:

Then enter -Dh, and things should proceed normally.

4.3.7. I have a Matsushita/Panasonic CR-522, a Matsushita/Panasonic CR-523 or a TEAC CD55a drive, but it is not recognized even when the correct I/O port is set.

These CD-ROM drives are currently not supported by FreeBSD. The command sets for these drives are not compatible with the double-speed CR-562 and CR-563 drives.

The single-speed CR-522 and CR-523 drives can be identified by their use of a CD-caddy.

4.3.8. I'm trying to install from a tape drive but all I get is something like this on the screen:

sa0(aha0:1:0) NOT READY csi 40,0,0,0

There's a limitation in the current sysinstall(8) that the tape must be in the drive while sysinstall(8) is started or it won't be detected. Try again with the tape in the drive the whole time.

4.3.9. I've installed FreeBSD onto my system, but it hangs when booting from the hard drive with the message:

Changing root to /dev/da0a

his problem may occur in a system with a 3com 3c509 Ethernet adapter. The ep(4) device driver appears to be sensitive to probes for other devices that also use address 0x300. Boot your FreeBSD system by power cycling the machine (turn off and on). At the Boot: prompt specify the -c. This will invoke UserConfig (see Section 4.1 above). Use the disable command to disable the device probes for all devices at address 0x300 except the ep0 driver. On exit, your machine should successfully boot FreeBSD.

4.3.10. My system can not find my Intel EtherExpress 16 card.

You must set your Intel EtherExpress 16 card to be memory mapped at address 0xD0000, and set the amount of mapped memory to 32K using the Intel supplied softset.exe program.

4.3.11. When installing on an EISA HP Netserver, my on-board AIC-7xxx SCSI controller isn't detected.

This is a known problem, and will hopefully be fixed in the future. In order to get your system installed at all, boot with the -c option into UserConfig, but don't use the pretty visual mode but the plain old CLI mode. Type:

eisa 12
quit

at the prompt. (Instead of `quit', you might also type `visual', and continue the rest of the configuration session in visual mode.) While it's recommended to compile a custom kernel, dset now also understands to save this value.

Refer to the FAQ topic 3.16 for an explanation of the problem, and for how to continue. Remember that you can find the FAQ on your local system in /usr/share/doc/FAQ, provided you have installed the `doc' distribution.

4.3.12. I have a Panasonic AL-N1 or Rios Chandler Pentium machine and I find that the system hangs before ever getting into the installation now.

Your machine doesn't like the new i586_copyout and i586_copyin code for some reason. To disable this, boot the installation boot floppy and when it comes to the very first menu (the choice to drop into kernel UserConfig mode or not) choose the command-line interface (``expert mode'') version and type the following at it:

flags npx0 1

Then proceed normally to boot. This will be saved into your kernel, so you only need to do it once.

4.3.13. I have this CMD640 IDE controller that is said to be broken.

Yes, it is. FreeBSD does not support this controller except through the legacy wdc driver.

4.3.14. On a Compaq Aero notebook, I get the message ``No floppy devices found! Please check ...'' when trying to install from floppy.

With Compaq being always a little different from other systems, they do not announce their floppy drive in the CMOS RAM of an Aero notebook. Therefore, the floppy disk driver assumes there is no drive configured. Go to the UserConfig screen, and set the Flags value of the fdc0 device to 0x1. This pretends the existence of the first floppy drive (as a 1.44 MB drive) to the driver without asking the CMOS at all.

4.3.15. When I go to boot my Intel AL440LX (``Atlanta'') -based system from the hard disk the first time, it stops with a Read Error message.

There appears to be a bug in the BIOS on at least some of these boards, this bug results in the FreeBSD bootloader thinking that it is booting from a floppy disk. This is only a problem if you are not using the BootEasy boot manager. Slice the disk in ``compatible''mode and install BootEasy during the FreeBSD installation to avoid the bug, or upgrade the BIOS (see Intel's website for details).

4.3.16. When installing on an Dell Poweredge XE, Dell proprietary RAID controller DSA (Dell SCSI Array) isn't recognized.

Configure the DSA to use AHA-1540 emulation using EISA configuration utility. After that FreeBSD detects the DSA as an Adaptec AHA-1540 SCSI controller, with irq 11 and port 340. Under emulation mode system will use DSA RAID disks, but you cannot use DSA-specific features such as watching RAID health.

4.3.17. My Ethernet adapter is detected as an AMD PCnet-FAST (or similar) but it doesn't work. (Eg. onboard Ethernet on IBM Netfinity 5xxx or 7xxx)

The lnc(4) driver is currently faulty, and will often not work correctly with the PCnet-FAST and PCnet-FAST+. You need to install a different Ethernet adapter.

4.3.18. I have an IBM EtherJet PCI card, it is detected by the fxp(4) driver correctly, but the lights on the card don't come on and it doesn't connect to the network.

We don't understand why this happens. Neither do IBM (we asked them). The card is a standard Intel EtherExpress Pro/100 with an IBM label on it, and these cards normally work just fine. You may see these symptoms only in some IBM Netfinity servers. The only solution is to install a different Ethernet adapter.

4.3.19. When I configure the network during installation on an IBM Netfinity 3500, the system freezes.

There is a problem with the onboard Ethernet in the Netfinity 3500 which we have not been able to identify at this time. It may be related to the SMP features of the system being misconfigured. You will have to install another Ethernet adapter and avoid attempting to configure the onboard adapter at any time.

4.3.20. When I install onto a drive managed by a Mylex PCI RAID controller, the system fails to boot (eg. with a read error message).

There is a bug in the Mylex driver which results in it ignoring the ``8GB'' geometry mode setting in the BIOS. Use the 2GB mode instead.

This file, and other release-related documents, can be downloaded from http://snapshots.jp.FreeBSD.org/.

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.

All users of FreeBSD 4-STABLE should subscribe to the <stable@FreeBSD.org> mailing list.

For questions about this documentation, e-mail <doc@FreeBSD.org>.