21.3 Linux® Filesystems

This section will describe some of the Linux® filesystems supported by FreeBSD.

21.3.1 Ext2FS

The ext2fs(5) file system kernel implementation was written by Godmar Back, and the driver first appeared in FreeBSD 2.2. In FreeBSD 8 and earlier, the code is licensed under the GNU Public License, however under FreeBSD 9, the code has been rewritten and it is now licensed under the BSD license.

The ext2fs(5) driver will allow the FreeBSD kernel to both read and write to ext2 file systems.

First, load the kernel loadable module:

# kldload ext2fs

Then, to mount an ext2fs(5) volume located on /dev/ad1s1:

# mount -t ext2fs /dev/ad1s1 /mnt

21.3.2 XFS

The X file system, XFS, was originally written by SGI for the IRIX operating system, and they ported it to Linux. The source code has been released under the GNU Public License. See this page for more details. The FreeBSD port was started by Russel Cattelan, Alexander Kabaev , and Craig Rodrigues .

To load XFS as a kernel-loadable module:

# kldload xfs

The xfs(5) driver lets the FreeBSD kernel access XFS filesystems. However, at present only read-only access is supported. Writing to a volume is not possible.

To mount a xfs(5) volume located on /dev/ad1s1, do the following:

# mount -t xfs /dev/ad1s1 /mnt

Also useful to note is that the sysutils/xfsprogs port contains the mkfs.xfs utility which enables creation of XFS filesystems, plus utilities for analysing and repairing them.

The -p flag to mkfs.xfs can be used to create an xfs(5) filesystem which is populated with files and other metadata. This can be used to quickly create a read-only filesystem which can be tested on FreeBSD.

21.3.3 ReiserFS

The Reiser file system, ReiserFS, was ported to FreeBSD by Jean-Sébastien Pédron , and has been released under the GNU Public License.

The ReiserFS driver will permit the FreeBSD kernel to access ReiserFS file systems and read their contents, but not write to them, currently.

First, the kernel-loadable module needs to be loaded:

# kldload reiserfs

Then, to mount a ReiserFS volume located on /dev/ad1s1:

# mount -t reiserfs /dev/ad1s1 /mnt