Originally contributed by David
O'Brien.
Lets say we want to add a new SCSI disk to a machine that currently only has a single
drive. First turn off the computer and install the drive in the computer following the
instructions of the computer, controller, and drive manufacturer. Due to the wide
variations of procedures to do this, the details are beyond the scope of this
document.
Login as user root. After you have installed the drive,
inspect /var/run/dmesg.boot to ensure the new disk was found.
Continuing with our example, the newly added drive will be da1 and we want to mount it on /1 (if
you are adding an IDE drive, the device name will be ad1).
FreeBSD runs on IBM-PC compatible computers, therefore it must take into account the
PC BIOS partitions. These are different from the traditional BSD partitions. A PC disk
has up to four BIOS partition entries. If the disk is going to be truly dedicated to
FreeBSD, you can use the dedicated
mode. Otherwise, FreeBSD will have to live within one of the PC BIOS partitions. FreeBSD
calls the PC BIOS partitions slices
so as not to confuse them with traditional BSD partitions. You may also use slices on a
disk that is dedicated to FreeBSD, but used in a computer that also has another operating
system installed. This is a good way to avoid confusing the fdisk utility of other, non-FreeBSD operating systems.
In the slice case the drive will be added as /dev/da1s1e.
This is read as: SCSI disk, unit number 1 (second SCSI disk), slice 1 (PC BIOS partition
1), and e BSD partition. In the dedicated case, the drive will
be added simply as /dev/da1e.
Due to the use of 32-bit integers to store the number of sectors, bsdlabel(8) is limited
to 2^32-1 sectors per disk or 2TB in most cases. The fdisk(8) format allows
a starting sector of no more than 2^32-1 and a length of no more than 2^32-1, limiting
partitions to 2TB and disks to 4TB in most cases. The sunlabel(8) format is
limited to 2^32-1 sectors per partition and 8 partitions for a total of 16TB. For larger
disks, gpt(8) partitions may
be used.
-
Navigating Sysinstall
You may use sysinstall to partition and label a new disk
using its easy to use menus. Either login as user root or use
the su command. Run sysinstall and
enter the Configure menu. Within the FreeBSD
Configuration Menu, scroll down and select the Fdisk
option.
-
fdisk Partition Editor
Once inside fdisk, pressing A will
use the entire disk for FreeBSD. When asked if you want to “remain cooperative with
any future possible operating systems”, answer YES. Write
the changes to the disk using W. Now exit the FDISK editor by
pressing Q. Next you will be asked about the “Master Boot
Record”. Since you are adding a disk to an already running system, choose None.
-
Disk Label Editor
Next, you need to exit sysinstall and start it again.
Follow the directions above, although this time choose the Label
option. This will enter the Disk Label Editor. This is where you
will create the traditional BSD partitions. A disk can have up to eight partitions,
labeled a-h. A few of the partition labels have special uses.
The a partition is used for the root partition (/). Thus only your system disk (e.g, the disk you boot from) should
have an a partition. The b partition is
used for swap partitions, and you may have many disks with swap partitions. The c partition addresses the entire disk in dedicated mode, or the
entire FreeBSD slice in slice mode. The other partitions are for general use.
sysinstall's Label editor favors the e partition for non-root, non-swap partitions. Within the Label
editor, create a single file system by pressing C. When prompted if
this will be a FS (file system) or swap, choose FS and type in a
mount point (e.g, /mnt). When adding a disk in post-install
mode, sysinstall will not create entries in /etc/fstab for you, so the mount point you specify is not
important.
You are now ready to write the new label to the disk and create a file system on it.
Do this by pressing W. Ignore any errors from sysinstall that it could not mount the new partition. Exit the
Label Editor and sysinstall completely.
-
Finish
The last step is to edit /etc/fstab to add an entry for your
new disk.
This setup will allow your disk to work correctly with other operating systems that
might be installed on your computer and will not confuse other operating systems' fdisk utilities. It is recommended to use this method for new disk
installs. Only use dedicated mode if you have a good reason to
do so!
# dd if=/dev/zero of=/dev/da1 bs=1k count=1
# fdisk -BI da1 #Initialize your new disk
# bsdlabel -B -w da1s1 auto #Label it.
# bsdlabel -e da1s1 # Edit the bsdlabel just created and add any partitions.
# mkdir -p /1
# newfs /dev/da1s1e # Repeat this for every partition you created.
# mount /dev/da1s1e /1 # Mount the partition(s)
# vi /etc/fstab # Add the appropriate entry/entries to your /etc/fstab.
If you have an IDE disk, substitute ad for da.
If you will not be sharing the new drive with another operating system, you may use
the dedicated mode. Remember this mode can confuse Microsoft
operating systems; however, no damage will be done by them. IBM's OS/2® however, will “appropriate” any partition
it finds which it does not understand.
# dd if=/dev/zero of=/dev/da1 bs=1k count=1
# bsdlabel -Bw da1 auto
# bsdlabel -e da1 # create the `e' partition
# newfs /dev/da1e
# mkdir -p /1
# vi /etc/fstab # add an entry for /dev/da1e
# mount /1
An alternate method is:
# dd if=/dev/zero of=/dev/da1 count=2
# bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin
# newfs /dev/da1e
# mkdir -p /1
# vi /etc/fstab # add an entry for /dev/da1e
# mount /1