summaryrefslogtreecommitdiffstats
path: root/share/doc/handbook/troubleshooting.sgml
blob: 4b6271aaabb6c31deef11ccd6c7b05352893735e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<!-- $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.
OpenPOWER on IntegriCloud