FreeBSD Labeled Filesystems

Filed under WEB-DEV-LOG
Tagged as

http://www.wonkity.com/~wblock/docs/html/labels.html

What Are Labels?

FreeBSD device names are often dynamic. The same hard drive can show up
as /dev/ad0 or /dev/ad4 or even /dev/da0, depending on several
factors. Using these device names in /etc/fstab is prone to breakage.
Put the drive on another connector, in another system, or in an external
enclosure, and FreeBSD can’t boot because it can’t find the device
listed in fstab.

Labels can be assigned to FreeBSD filesystems or devices, and will
remain the same, regardless of the connection type or port. These
labels can be used reliably in fstab.

Boot Single-User And Label Filesystems

This example assigns labels to a drive that was /dev/ad4 with FreeBSD
on the first slice in a standard layout. Using part of the hostname or
other identifying information in the label helps avoid the confusion of
multiple drives with identical labels. The example computer is called
aardvark, so the labels all start with aa.

# glabel label aaswap /dev/ad4s1b
# tunefs -L aarootfs /dev/ad4s1a
# tunefs -L aavarfs /dev/ad4s1d
# tunefs -L aatmpfs /dev/ad4s1e
# tunefs -L aausrfs /dev/ad4s1f

glabel(8) is used to label swap, which is just a FreeBSD partition
without a filesystem. The label will appear in /dev/label when the
drive is detected.

tunefs(8) is used to label UFS filesystems, and those labels will
appear in /dev/ufs. tunefs will only label an unmounted or
read-only filesystem, hence the boot into single-user mode. (Labeling a
read-only filesystem seems weird until you realize that the label isn’t
part of the filesystem.)

Don’t be in a hurry. If you immediately mount / so you can
edit /etc/fstab, the new label on / will go away. Reboot first, or
disconnect and reconnect an external device.

Boot

# ls /dev/label /dev/ufs
/dev/label:
aaswap

/dev/ufs:
aarootfs        aatmpfs         aausrfs         aavarfs

Edit /etc/fstab to use the labels you created in the previous step.

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/label/aaswap       none            swap    sw              0       0
/dev/ufs/aarootfs       /               ufs     rw              1       1
/dev/ufs/aatmpfs        /tmp            ufs     rw              2       2
/dev/ufs/aausrfs        /usr            ufs     rw              2       2
/dev/ufs/aavarfs        /var            ufs     rw              2       2

Reboot to make sure that everything is correct and the system comes up.

Done!

That’s it. The unchanging labels let FreeBSD find the swap partition
and filesystems without caring about the device name or number.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*