This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
A: Prior to release 3.1, you only needed one floppy image to install FreeBSD, namely floppies/boot.flp. However, since release 3.1 the Project has added base support for a wide variety of hardware which needed more space, and thus for 3.x and 4.x we now use two floppy images, namely floppies/kernel.flp and floppies/mfsroot.flp. These images need to be copied onto floppies by tools like fdimage or dd(1).
If you need to download the distributions yourself (for a DOS filesystem install, for instance), below are some recommendations for distributions to grab:
bin/
manpages/
compat*/
doc/
src/ssys.*
Full instructions on this procedure and a little bit more about installation issues in general can be found in the Handbook entry on installing FreeBSD.
A: A 3.5 inch (1.44MB) floppy can accomodate 1474560 bytes of data. The boot image is exactly 1474560 bytes in size.
Common mistakes when preparing the boot floppy are:
Not downloading the floppy image in binary mode when using FTP.
Some FTP clients default their transfer mode to ascii and attempt to change any end-of-line characters received to match the conventions used by the client's system. This will almost invariably corrupt the boot image. Check the size of the downloaded boot image: if it is not exactly that on the server, then the download process is suspect.
To workaround: type binary at the FTP command prompt after getting connected to the server and before starting the download of the image.
Using the DOS copy command (or equivalent GUI tool) to transfer the boot image to floppy.
Programs like copy will not work as the boot image has been created to be booted into directly. The image has the complete content of the floppy, track for track, and is not meant to be placed on the floppy as a regular file. You have to transfer it to the floppy ``raw'', using the low-level tools (e.g. fdimage or rawrite) described in the installation guide to FreeBSD.
A: Installation instructions can be found in the Handbook entry on installing FreeBSD.
A: You'll need a 386 or better PC, with 5 MB or more of RAM and at least 60 MB of hard disk space. It can run with a low end MDA graphics card but to run X11R6, a VGA or better video card is needed.
See also the section on Chapter 2
A: FreeBSD 2.1.7 was the last version of FreeBSD that could be installed on a 4MB system. Newer versions of FreeBSD, like 2.2, need at least 5MB to install on a new system.
All versions of FreeBSD, including 3.0, will run in 4MB of RAM, they just can't run the installation program in 4MB. You can add extra memory for the install process, if you like, and then after the system is up and running, go back to 4MB. Or you could always just swap your disk into a system which has >4MB, install onto it and then swap it back.
There are also situations in which FreeBSD 2.1.7 will not install in 4 MB. To be exact: it does not install with 640 kB base + 3 MB extended memory. If your motherboard can remap some of the ``lost'' memory out of the 640kB to 1MB region, then you may still be able to get FreeBSD 2.1.7 up.
Try to go into your BIOS setup and look for a ``remap'' option. Enable it. You may also have to disable ROM shadowing.
It may be easier to get 4 more MB just for the install. Build a custom kernel with only the options you need and then get the 4 MB out again.
You may also install 2.0.5 and then upgrade your system to 2.1.7 with the ``upgrade'' option of the 2.1.7 installation program.
After the installation, if you build a custom kernel, it will run in 4 MB. Someone has even succeeded in booting with 2 MB (the system was almost unusable though :-))
A: Currently there's no way to just make a custom install floppy. You have to cut a whole new release, which will include your install floppy. There's some code in /usr/src/release/floppies/Makefile that's supposed to let you just make those floppies, but it's not really gelled yet.
To make a custom release, follow the instructions here.
A: Have a look at The multi-OS page.
A: Install Windows 95 first, after that FreeBSD. FreeBSD's boot manager will then manage to boot Win95 and FreeBSD. If you install Windows 95 second, it will boorishly overwrite your boot manager without even asking. If that happens, see the next section.
A: You can reinstall the boot manager FreeBSD comes with in one of two ways:
Running DOS, go into the tools/ directory of your FreeBSD distribution and look for bootinst.exe. You run it like so:
...\TOOLS> bootinst.exe boot.bin
and the boot manager will be reinstalled.
Boot the FreeBSD boot floppy again and go to the Custom installation menu item. Choose Partition. Select the drive which used to contain your boot manager (likely the first one) and when you come to the partition editor for it, as the very first thing (e.g. do not make any changes) select (W)rite. This will ask for confirmation, say yes, and when you get the Boot Manager selection prompt, be sure to select "Boot Manager." This will re-write the boot manager to disk. Now quit out of the installation menu and reboot off the hard disk as normal.
A: Prior to 3.0, FreeBSD included a utility known as bad144, which automatically remapped bad blocks. Because modern IDE drives perform this function themselves, bad144 has been removed from the FreeBSD source tree. If you wish to install FreeBSD 3.0 or later, we strongly suggest you purchase a newer disk drive. If you do not wish to do this, you must run FreeBSD 2.x.
If you are seeing bad block errors with a modern IDE drive, chances are the drive is going to die very soon (the drive's internal remapping functions are no longer sufficient to fix the bad blocks, which means the disk is heavily corrupted); we suggest you by a new hard drive.
If you have a SCSI drive with bad blocks, see this answer.
A: If you're seeing things like the machine grinding to a halt or spontaneously rebooting when you try to boot the install floppy, here are three questions to ask yourself:-
Did you use a new, freshly-formatted, error-free floppy (preferably a brand-new one straight out of the box, as opposed to the magazine coverdisk that's been lying under the bed for the last three years)?
Did you download the floppy image in binary (or image) mode? (don't be embarrassed, even the best of us have accidentally downloaded a binary file in ASCII mode at least once!)
If you're using Windows95 or Win98 did you run fdimage or rawrite in pure DOS mode? These OS's can interfere with programs that write directly to hardware, which the disk creation program does; even running it inside a DOS shell in the GUI can cause this problem.
There have also been reports of Netscape causing problems when downloading the boot floppy, so it's probably best to use a different FTP client if you can.
A: The usual cause of this problem is a mis-configured CD-ROM drive. Many PCs now ship with the CD-ROM as the slave device on the secondary IDE controller, with no master device on that controller. This is illegal according to the ATAPI specification, but Windows plays fast and loose with the specification, and the BIOS ignores it when booting. This is why the BIOS was able to see the CD-ROM to boot from it, but why FreeBSD can not see it to complete the install.
Reconfigure your system so that the CD-ROM is either the master device on the IDE controller it is attached to, or make sure that it is the slave on an IDE controller that also has a master device.
A: If you are installing 2.1.7R from tape, you must create the tape using a tar blocksize of 10 (5120 bytes). The default tar blocksize is 20 (10240 bytes), and tapes created using this default size cannot be used to install 2.1.7R; with these tapes, you will get an error that complains about the record size being too big.
A: Get a laplink cable. Make sure both computer have a kernel with lpt driver support.
# dmesg | grep lp
lpt0 at 0x378-0x37f irq 7 on isa
lpt0: Interrupt-driven
lp0: TCP/IP capable interface
Plug in the laplink cable into the parallel interface.
Configure the network interface parameters for lp0 on both sites as root. For example, if you want connect the host max with moritz
max <-----> moritz
IP Address 10.0.0.1 10.0.0.2
on max start
# ifconfig lp0 10.0.0.1 10.0.0.2
on moritz start
# ifconfig lp0 10.0.0.2 10.0.0.1
Thats all! Please read also the manpages lp(4) and lpt(4) .
You should also add the hosts to /etc/hosts.
127.0.0.1 localhost.my.domain localhost
10.0.0.1 max.my.domain max
10.0.0.2 moritz.my.domain
To check if it works do:
on max:
# ifconfig lp0
lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
# netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
moritz max UH 4 127592 lp0
# ping -c 4 moritz
PING moritz (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- moritz ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
A: Connect the two computers using a Laplink parallel cable to use this feature:
Table 1-1. Wiring a parallel cable for networking
| A-name | A-End | B-End | Descr. | Post/Bit |
|---|---|---|---|---|
|
DATA0 |
2 |
15 |
Data |
0/0x01 |
|
DATA1 |
3 |
13 |
Data |
0/0x02 |
|
DATA2 |
4 |
12 |
Data |
0/0x04 |
|
DATA3 |
5 |
10 |
Strobe |
0/0x08 |
|
DATA4 |
6 |
11 |
Data |
0/0x10 |
| GND | 18-25 | 18-25 | GND | - |
See also this note on the Mobile Computing page.
A: (By the "geometry" of a disk, we mean the number of cylinders, heads and sectors/track on a disk - I'll refer to this as C/H/S for convenience. This is how the PC's BIOS works out which area on a disk to read/write from).
This seems to cause a lot of confusion for some reason. First of all, the physical geometry of a SCSI drive is totally irrelevant, as FreeBSD works in term of disk blocks. In fact, there is no such thing as "the" physical geometry, as the sector density varies across the disk - what manufacturers claim is the "true" physical geometry is usually the geometry that they've worked out results in the least wasted space. For IDE disks, FreeBSD does work in terms of C/H/S, but all modern drives will convert this into block references internally as well.
All that matters is the logical geometry - the answer that the BIOS gets when it asks "what is your geometry?" and then uses to access the disk. As FreeBSD uses the BIOS when booting, it's very important to get this right. In particular, if you have more than one operating system on a disk, they must all agree on the geometry, otherwise you will have serious problems booting!
For SCSI disks, the geometry to use depends on whether extended translation support is turned on in your controller (this is often referred to as "support for DOS disks >1GB" or something similar). If it's turned off, then use N cylinders, 64 heads and 32 sectors/track, where 'N' is the capacity of the disk in MB. For example, a 2GB disk should pretend to have 2048 cylinders, 64 heads and 32 sectors/track.
If it is turned on (it's often supplied this way to get around certain limitations in MSDOS) and the disk capacity is more than 1GB, use M cylinders, 63 sectors per track (*not* 64), and 255 heads, where 'M' is the disk capacity in MB divided by 7.844238 (!). So our example 2GB drive would have 261 cylinders, 63 sectors per track and 255 heads.
If you are not sure about this, or FreeBSD fails to detect the geometry correctly during installation, the simplest way around this is usually to create a small DOS partition on the disk. The correct geometry should then be detected (and you can always remove the DOS partition in the partition editor if you don't want to keep it, or leave it around for programming network cards and the like).
Alternatively, there is a freely available utility distributed with FreeBSD called ``pfdisk.exe'' (located in the tools subdirectory on the FreeBSD CDROM or on the various FreeBSD ftp sites) which can be used to work out what geometry the other operating systems on the disk are using. You can then enter this geometry in the partition editor.
A: Yes. You must make sure that your root partition is below 1024 cylinders so the BIOS can boot the kernel from it. (Note that this is a limitation in the PC's BIOS, not FreeBSD).
For a SCSI drive, this will normally imply that the root partition will be in the first 1024MB (or in the first 4096MB if extended translation is turned on - see previous question). For IDE, the corresponding figure is 504MB.
A: FreeBSD recognizes the Ontrack Disk Manager and makes allowances for it. Other disk managers are not supported.
If you just want to use the disk with FreeBSD you don't need a disk manager. Just configure the disk for as much space as the BIOS can deal with (usually 504 megabytes), and FreeBSD should figure out how much space you really have. If you're using an old disk with an MFM controller, you may need to explicitly tell FreeBSD how many cylinders to use.
If you want to use the disk with FreeBSD and another operating system, you may be able to do without a disk manager: just make sure the the FreeBSD boot partition and the slice for the other operating system are in the first 1024 cylinders. If you're reasonably careful, a 20 megabyte boot partition should be plenty.
A: This is classically a case of FreeBSD and DOS or some other OS conflicting over their ideas of disk geometry. You will have to reinstall FreeBSD, but obeying the instructions given above will almost always get you going.
A: This is another symptom of the problem described in the preceding question. Your BIOS geometry and FreeBSD geometry settings do not agree! If your controller or BIOS supports cylinder translation (often marked as ``>1GB drive support''), try toggling its setting and reinstalling FreeBSD.
A: In general, no. However, we would strongly recommend that you install, at a minimum, the ``base'' source kit, which includes several of the files mentioned here, and the ``sys'' (kernel) source kit, which includes sources for the kernel. There is nothing in the system which requires the presence of the sources to operate, however, except for the kernel-configuration program config(8). With the exception of the kernel sources, our build structure is set up so that you can read-only mount the sources from elsewhere via NFS and still be able to make new binaries. (Because of the kernel-source restriction, we recommend that you not mount this on /usr/src directly, but rather in some other location with appropriate symbolic links to duplicate the top-level structure of the source tree.)
Having the sources on-line and knowing how to build a system with them will make it much easier for you to upgrade to future releases of FreeBSD.
To actually select a subset of the sources, use the Custom menu item when you are in the Distributions menu of the system installation tool.
A: Building a new kernel was originally pretty much a required step in a FreeBSD installation, but more recent releases have benefited from the introduction of a much friendlier kernel configuration tool. When at the FreeBSD boot prompt (boot:), use the "-c" flag and you will be dropped into a visual configuration screen which allows you to configure the kernel's settings for most common ISA cards.
It's still recommended that you eventually build a new kernel containing just the drivers that you need, just to save a bit of RAM, but it's no longer a strict requirement for most systems.
A: If it is not absolutely imperative that you use DES style encryption, you can use FreeBSD's default encryption for even better security, and with no export restrictions. FreeBSD 2.0's password default scrambler is now MD5-based, and is more CPU-intensive to crack with an automated password cracker than DES, and allows longer passwords as well. The only reason for not using the MD5-based crypt today would be to use the the same password entries on FreeBSD and non-FreeBSD systems.
Since the DES encryption algorithm cannot legally be exported from the US, non-US users should not download this software (as part of the secrdist from US FTP sites.
There is however a replacement libcrypt available, based on sources written in Australia by David Burren. This code is now available on some non-US FreeBSD mirror sites. Sources for the unencumbered libcrypt, and binaries of the programs which use it, can be obtained from the following FTP sites:
| South Africa | ftp://ftp.internat.FreeBSD.org/pub/FreeBSD/, ftp://storm.sea.uct.ac.za/pub/FreeBSD/ |
| Brazil | ftp://ftp.iqm.unicamp.br/pub/FreeBSD/ |
| Finland | ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt/ |
The non-US securedist can be used as a direct replacement for the encumbered US securedist. This securedist package is installed the same way as the US package (see installation notes for details). If you are going to install DES encryption, you should do so as soon as possible, before installing other software.
Non-US users should please not download any encryption software from the USA. This can get the maintainers of the sites from which the software is downloaded into severe legal difficulties.
A non-US distribution of Kerberos is also being developed, and current versions can generally be obtained by anonymous FTP from braae.ru.ac.za.
There is also a mailing list for the discussion of non-US encryption software. For more information, send an email message with a single line saying ``help'' in the body of your message to <majordomo@braae.ru.ac.za>.
A: If you have a IDE Zip or Jaz drive installed, remove it and try again. The boot floppy can get confused by the drives. After the system is installed you can reconnect the drive. Hopefully this will be fixed in a later release.
A: This error comes from confusion between the boot block's and the kernel's understanding of the disk devices. The error usually manifests on two-disk IDE systems, with the hard disks arranged as the master or single device on separate IDE controllers, with FreeBSD installed on the secondary IDE controller. The boot blocks think the system is installed on wd1 (the second BIOS disk) while the kernel assigns the first disk on the secondary controller device wd2. After the device probing, the kernel tries to mount what the boot blocks think is the boot disk, wd1, while it is really wd2, and fails.
To fix the problem, do one of the following:
For FreeBSD 3.3 and later, reboot the system and hit "Enter" at the "Booting kernel in 10 seconds; hit [Enter] to interrupt" prompt. This will drop you into the boot loader.
Then type set root_disk_unit="disk_number". disk_number will be 0 if FreeBSD is installed on the master drive on the first IDE controller, 1 if it is installed on the slave on the first IDE controller, 2 if it is installed on the master of the second IDE controller, and 3 if it is installed on the slave of the second IDE controller.
Then type "boot", and your system should boot correctly.
To make this change permanent (ie so you don't have to do this everytime you reboot or turn on your FreeBSD machine), put the line root_disk_unit="disk_number" in /boot/loader.conf.local.
If using FreeBSD 3.2 or earlier, at the Boot: prompt, enter 1:wd(2,a)kernel and press Enter. If the system starts, then run the command echo "1:wd(2,a)kernel" > /boot.config to make it the default boot string.
Move the FreeBSD disk onto the primary IDE controller, so the hard disks are consecutive.
Rebuild your kernel, modify the wd configuration lines to read:
controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
disk wd0 at wdc0 drive 0
# disk wd1 at wdc0 drive 1 # comment out this line
controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
disk wd1 at wdc1 drive 0 # change from wd2 to wd1
disk wd2 at wdc1 drive 1 # change from wd3 to wd2
Install the new kernel. If you moved your disks and wish to restore the previous configuration, replace the disks in the desired configuration and reboot. Your system should boot successfully.
A: For memory, the limit is 4 gigabytes. This configuration has been tested, see wcarchive's configuration for more details. If you plan to install this much memory into a machine, you need to be careful. You'll probably want to use ECC memory and to reduce capacitive loading use 9 chip memory modules vice 18 chip memory modules.
A: For ffs filesystems, the maximum theoretical limit is 8 terabytes (2G blocks), or 16TB for the default block size of 8K. In practice, there is a soft limit of 1 terabyte, but with modifications filesystems with 4 terabytes are possible (and exist).
The maximum size of a single ffs file is approximately 1G blocks (4TB) if the block size is 4K.
Table 1-2. Maximum file sizes
| fs block size | 2.2.7-stable | 3.0-current | works | should work |
|---|---|---|---|---|
| 4K | 4T-1 | 4T-1 | 4T-1 | 4+t |
| 8K | 32+G | 8T-1 | 32+G | 32T-1 |
| 16K | 128+G | 16T-1 | 128+G | 32T-1 |
| 32K | 512+G | 32T-1 | 512+G | 64T-1 |
| 64K | 2048+G | 64T-1 | 2048+G | 128T-1 |
When the fs block size is 4K, triple indirect blocks work and everything should be limited by the maximum fs block number that can be represented using triple indirect blocks (approx. 1K^3 + 1K^2 + 1K), but everything is limited by a (wrong) limit of 1G-1 on fs block numbers. The limit on fs block numbers should be 2G-1. There are some bugs for fs block numbers near 2G-1, but such block numbers are unreachable when the fs block size is 4K.
For block sizes of 8K and larger, everything should be limited by the 2G-1 limit on fs block numbers, but is actually limited by the 1G-1 limit on fs block numbers, except under -STABLE triple indirect blocks are unreachable, so the limit is the maxiumum fs block number that can be represented using double indirect blocks (approx. (blocksize/4)^2 + (blocksize/4)), and under -CURRENT exceeding this limit may cause problems. Using the correct limit of 2G-1 blocks does cause problems.
A: I keep several virtual ones on floppies :-). The maxiumum file size is not closely related to the maximum disk size. The maximum disk size is 1TB. It is a feature that the file size can be larger than the disk size.
The following example creates a file of size 8T-1 using a whole 32K of disk space (3 indirect blocks and 1 data block) on a small root partition. The dd command requires a dd that works with large files.
ttyv0:bde@alphplex:/tmp/q> cat foo
df .
dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1
ls -l z
du z
df .
ttyv0:bde@alphplex:/tmp/q> sh foo
Filesystem 1024-blocks Used Avail Capacity Mounted on
/dev/da0a 64479 27702 31619 47% /
1+0 records in
1+0 records out
1 bytes transferred in 0.000187 secs (5346 bytes/sec)
-rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z
32 z
Filesystem 1024-blocks Used Avail Capacity Mounted on
/dev/da0a 64479 27734 31587 47% /
ttyv0:bde@alphplex:/tmp/q> exit
Bruce Evans, September 1998
A: You can boot by specifying the kernel directly at the second stage, pressing any key when the | shows up before loader is started. More specifically, you have upgraded the source for your kernel, and installed a new kernel builtin from them without making world. This is not supported. Make world.
A: We strongly recommend that you use binary snapshots to do this. 4.X-STABLE snapshots are available at releng4.FreeBSD.org.
If you wish to upgrade using source, please see the FreeBSD Handbook for more information.
Upgrading via source is never recommended for new users, and upgading from 3.X -> 4.X is even less so; make sure you have read the instructions carefully before attempting to upgrade via source this!
For questions about FreeBSD, e-mail
<questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.