<& xfsTemplate,top=>1,side=>1 &> Linux XFS FAQ

Quick links:

Q: Where can I find this FAQ?

Currently at:

If you have any comments or suggestions just let me know:

Q: What is XFS?

XFS is a journalling filesystem developed by SGI and used in SGI's IRIX operating system. It is now also available under GPL for linux. It is extremely scalable, using btrees extensively to support large and/or sparse files, and extremely large directories. The journalling capability means no more waiting for fsck's or worrying about meta-data corruption.

Q: Where can I find information about XFS for linux?

Just point your web-browser to:

Q: What do I need to build an XFS ready kernel?

The best way to do this is to checkout the SGI XFS kernel from their CVS tree. How to do this is described at

After that you have two subtrees of importance: linux and cmd. The firsts one - linux - is a normal linux kernel source tree containing the XFS code. It is updated to the latest available linux kernel from time to time but it may be a bit (not much) behind. Just build your kernel the way you are used to do it and don't forget to enable XFS and pagebuf under filesystems. You also need to enable the ask for experimental features option in the "Code maturity level options" menu. The other tree - cmd - contains all the tools you need - most important: mkfs.xfs and xfs_repair - just go to the xfs subdirectory in cmd and type make (maybe followed by make install to install the binaries). The cmd tree has been restructured a bit at the beginning of 2001: now you have to go into the various subdirs (xfsprogs, attr, acl, xfsdump, dmapi) and run the make or the below described Makepkgs script there. One thing which is also important to note is that you need to have the e2fs-devel package installed in order to build the cmd tools - because they require the uuid stuff in them. You may also build src and binary rpms by running:

    ./Makepkgs verbose

in the cmd/xfs or cmd/[xfsprogs, attr, ...] directory. The tools also have man-pages which you may consult for interesting options.

There exists also another way to get an XFS ready kernel - you may get kernel patches relative to a official kernel from:

and apply then to the kernel sources the patch is for. This is a good way for all the people who don't want to use CVS or do not have the bandwidth to checkout the whole kernel tree.

A third way to get a XFS ready system and kernel is to use the prepared rpm's and experimental redhat install ISO images from SGI you may find also in the download area.

Q: How do I use XFS?

There you will also find a little HOWTO about the nessecary steps.

Just reboot the new build kernel and create a filesytem on an empty partition

    mkfs -t xfs /dev/foo

where /dev/foo is the the partition you want to use (you may have to use the -f option of mkfs -t xfs (which calls mkfs.xfs from the cmd directory which you must have installed) if this partition already contains an old filesystem which you want to overwrite). Now you can mount the filesystem using:

    mount -t xfs /dev/foo /somewhere

Q: How stable is XFS?

It is quite useable now but I would recommend testing it before using it on your production environment. I used it here in a test scenario for a 50 people squid and a ~20 mb/day newsfeed with 30 simulated users on an XFS only machine for quite some time and had no problems so far. Also SGI is doing quite a lot of stress tests with it (see the stress subdir of the cmd tree). In the last weeks and months more and more people are evaluating XFS in production-like environments with mostly good results. At SGI it gets regular tested on a 4 cpu box and the server hosting the linux XFS project web-pages is also completely running on XFS.

Q: Does it run on platforms other than i386?

The current XFS tree seems to work just fine on ppc now (aside from some trivial compile fixes). It also runs well and is getting sporadically tested on the alpha, sparc64 and ia64. But on all of those platforms it is not as well tested as on i386, but so far there are no major problems on those platforms known. All in all it looks like XFS will be running across a lot of platforms fine soon (with all the platforms above we have 32/64bit and little/big-endian architectures supported. If you run it on a platform not mentioned here please let me know so that i can add it. Also an important note is that XFS is inherently platform independent in the on disk layout - so it should be possible to move a XFS disk from one linux platform to another out of the box.

If you are interested in this you may have a look at

Especially the ppc subdir there contains mostly quite up to date merged XFS and ppc trees which should work on ppc machines quite fine.

Q: Do quotas work on XFS?

User quotas are supported, group/project quotas are work-in-progress.

To use quotas with XFS, you need to enable linux quota support, and XFS quota support when you configure your kernel. You also need to specify quota support when you mount. A patched version of the linux quota tools which supports XFS is in the cmd/quota directory of the XFS distribution. Hopefully XFS will be supported in the standard quota tools soon.

Q: Is there any dump/restore for XFS?

xfsdump and xfsrestore are now in the CVS tree. The tape format is the same as for xfsdump and xfsrestore on IRIX and dump tapes should be interchangable between systems.

The tape format is not the same as the classic Unix dump but should work fine with tools like Amanda. Dumps produced with standard other dump programs should be able to be restored onto an XFS filesystem using the coresponding restore program.

Q: Does LILO work with XFS?

This depens on where you install LILO. For MBR installation: Yes. For root partitions: No, because the XFS superblock goes where LILO would be installed. This is to maintain compatibility with the Irix on-disk format. This will not be changed. Putting the Superblock on the swap partition is reported to work.

Q: Does GRUB work with XFS?

No - so far there is no direct support in GRUB to boot from an XFS filesystem but you may still boot an mostly XFS system with a small ext2 /boot partition with all the GRUB stuff on it using GRUB. There is work in progress for making GRUB XFS aware.

Q: Can I run XFS on top of LVM?

Yes XFS should run fine on top of LVM. If you plan to do so please keep in mind that the current XFS cvs tree (and also the XFS 1.0 previews) already contains the lvm beta6 code and some tweaks for XFS - currently it is recommended to stay with this version instead of the current lvm version (beta7 at the moment) because there are some logistical problems around that version. Martin K. Petersen is keeping an eye on the lvm in the XFS tree as soon as there is a recommended new version of it i think. Keep one thing in mind with XFS on lvm: mounting snapshots of lvs containing XFS filesystem does not work due to the journaling nature of the filesystem (but a fix for this is on the TODO list).

Q: Can I use XFS on loopback block devices?

Yes. If you are using a 2.4.2 based XFS kernel you need to apply Jens Axboes loop-xfs-7c fix for it to work (the fix is for a problem in 2.4.2 and has nothing really to do with XFS). You may get this patch from

Q: Can XFS be used for a root filesystem?

Yes. A document describing how to convert your system to XFS is currently being worked on. The current state of this document you may find at

You might also have a look at my little stand-alone environment for converting and maintaining a root XFS filesystem at

Q: What partition type should I use for XFS?

Linux native filesystem (83).

Q: Mounting the XFS filesystem does not work - what is wrong?

If you get something like:

    mount: /dev/hda5 has wrong major or minor number

you either don't have XFS compiled into the kernel (or you forgot to load the modules) or you did not use the "-t xfs" option on mount or the "xfs" option in /etc/fstab.

Q: Does XFS run with the linux software RAID md driver?

Yes - the current XFS tree and the latest released previews contain fixes which should allow you to run XFS on top of any md RAID level.

Q: Does XFS run on hardware RAID?

Yes - hardware RAID is like a normal disk to XFS (like to any other filesystem) and this should not be a problem.

Q: Can I run NFS on top of an XFS partition?

Yes. To get good performance make shure to use an XFS tree from after mid-march 2001. There were some important fixes for useable NFS-performance. So far there are no more known problems with XFS and NFS since then.

Q: Is there a way to resize an XFS filesystem?

An XFS filesystem may be enlarged within a partition using xfs_growfs. You need to have free space after this partition to do so. Remove partition recreate it larger with exact same starting point. run xfs_growfs to make the partition larger. This operation is dangerous to your data Back up your filesystem before using this tool.
Using XFS filesystems on top of LVM makes this a lot easier.

Q: Will I be able to use my old IRIX XFS disks on linux?

Yes. The on-disk format of XFS is the same on IRIX and Linux. Obviously, you should back-up your data before trying to move it between systems. Filesystems must be "clean" when moved (ie unmounted correctly). If plan to use IRIX disks on linux keep the followng things in mind: the kernel needs to have SGI partition support enabled (to find in the File systems -> Partition Types submenu of a "make menuconfig"), there is no XLV support in linux, so you won't be able to read IRIX disks using the XLV volume manager, also not all blocksizes available on IRIX are available on linux for now (only the pagesize of the architecture: 4k for i386, ppc, ... 8k for alpha, sparc, ... is possible for now).

The only real caveat here is that at the moment XFS on linux only supports filesystems where the disk block size equals the page size. Support for other block sizes available on IRIX is work-in-progress.

Q: Is there documentation on how XFS works?

There are some papers available on the SGI XFS project page (mentioned above) and I have set up an LXR indexed version of the SGI XFS CVS tree at:

which might help to find an easy and good way through the sources. I plan to keep this tree automatically updated to the current SGI XFS CVS version on a daily basis within the next days. If anyone has pointers to other XFS related docs - just send me a mail (address - see above).

Q: Processes are hanging when acting on an XFS filesystem (for instance in sv_wait) - what is this?

Recompile your kernel with gcc 2.91.66 instead of gcc 2.95 this should fix your problem. On RedHat 7.x systems you get egcs via the kgcc(7.0) or compat-egcs(7.1) package. See the comments in the top level Makefile of the kernel for more information about this.

Q: Are there any known issues about gcc 2.95 for compiling the XFS kernel tree?

Yes. So far there were some problems reported with kernels built with gcc 2.95 which were solved by compiling it with egcs 2.91.66. So for now please use version gcc 2.91.66 (aka egcs 1.1.2) to build your XFS kernel. If you are using a debian or SuSE based system this means that you may have to find and install this egcs version. Please note that the problems with gcc 2.95 seem to be restriced to the i386 platform - on the ppc it works just fine with 2.95 for instance. All said for gcc 2.95 also applies to redhat's gcc 2.96. On the other hand the gcc 2.95.3 (20010125) from debian unstable seems to work.

It's kgcc on Red Hat 7.0 systems and is located in the kgcc package, for 7.1 it is in the compat-egcs package, On Linux-Mandrake systems it's located in the egcs package.

Q: What are all those other things in the cmd/xfs directory?

Some of them are other interesting tools like: db - xfs_db is a xfs filesystem debugger (working) , copy - xfs_copy is tool for effectively copying one filesystem to another device (not yet ported), fsr - xfs_fsr is a defragmenter for xfs (working), repair - xfs_repair is the consistency checker for an xfs filesystem (working). As already mentioned earlier: the cmd structure has changed a bit at the beginning of 2001 - now it all looks a bit clearer i think (modeled a bit after the ext2 tools structure). The only two other subdirs are: quota - a quota-tools tree with the XFS additions in it and xfstests - the SGI XFS stress test suite.

Q: Why my RedHat 7.0 system does not boot with the XFS beta kernel?

This is because there is a syscall conflict which results in this problem. Please use the latest XFS code from the cvs tree which has this fixed. Eventually the beta will be rerolled for that.

Q: My filesystem is ok - but xfs_check or xfs_repair shows errors - whats wrong here?

Don't run those commands on a mounted filesystem - in this case it is normal that you see inconsistencies. Never run xfs_repair on a mounted filesystem without the "-n" switch at all. If you ran the commands on an unmounted filesystem then there seems to be something wrong with the filesystem.

Q: I am getting very bad dbench (etc.) results with XFS - whats wrong here?

First dbench: this is a very metadata intensive benchmark which might be a little limited by the default log size. You will getter better results by creating the filesystems with

    mkfs -t xfs -l size=32768b -f /dev/device

This creates a bigger logspace. Also it is a good idea to mount meta-data intensive filesystems with

    mount -t xfs -o logbufs=8,logbsize=32768 /dev/device /mountpoint

Note that in some earlier versions you may only use 4 logbufs as a maximum. Using more logbufs can fail if your system has not enough ram. Using 8 logbufs on a machine with 128MB ram wil probably fail. Also since mid-march there are some changes in the tree which improve the overall dbench performance a bit. Have a look for the xfs.txt file in the Documentation/filesystems subdirectory of your kernel sources for those and other XFS mount options.

In general you should get about the same or better performance values with XFS in various benchmarks. One thing XFS is usually bad at is removing large amounts of files (rm -rf or bonnie++).

Q: Mounting or umounting an XFS root filesystem takes a very long time - why?

This is fixed in the current code (mid-march). But also before this is normal and harmless - it only takes a bit of time (on boot and halt with SuSE startup scripts - only on halt with RedHat based scripts).

Q: The Adaptec aic7xxx driver crashes when booting the kernel.

It produces the following error.

SCSI subsystem driver Revision: 1.00
PCI: Found IRQ 11 for device 00:0c.0
scsi0: Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.1.13
        
        aic7890/91: Ultra2 Wide Channel A, SCSI Id=7, 32/255 SCBs
ahc_intr: AWAITING_MSG for an SCB that does not have a waiting message
SCSIID = 7, target_mask = 1
Kernel panic: SCB = 3, SCB Control = 40, MSG_OUT = 80 SCB flags = 6000
In interrupt handler - not syncing
The Adaptec driver in 2.4.5 and later needs to have the following selected in order to work.
[ ]   Build Adapter Firmware with Kernel Build (NEW)

Q: The Adaptec aic7xxx does not compile.

It spits out the following error during compile

gcc -I/usr/include -ldb1 aicasm_gram.c aicasm_scan.c aicasm.c
aicasm_symbol.c -o aicasm aicasm_symbol.c:39: db1/db.h: No such file or
directory
make[5]: *** [aicasm] Error 1
The Adaptec driver in newer 2.4.2 kernels and later need to have the db headers. These can be found in the db-devel packages.

Q: The kernel does not compile.

Before trying to compile the cvs tree do a

make mrproper
If you also copied your own .config into the tree make sure to run
make oldconfig

Q: Does XFS support large files (bigger then 2GB)?

Yes, XFS supports files larger then 2GB. The large file support (LFS) is largely dependent on the C library of your computer. Glibc 2.2 and higher has full LFS support. If your C lib does not support it you will get errors that the valued is too large for the defined data type.
Userland software needs to be compiled against the LFS compliant C lib in order to work. You will be able to create 10GB files on non LFS systems but the tools will not be able to stat them.
Distributions based on Glibc 2.2.x and higher will function normally. Note that some userspace programs like tcsh do not correctly behave even if they are compiled against glibc 2.2.x
You may need to contact your vendor/developer if this is the case.

Q: When growing a lvm volume with xfs_growfs multiple times it fails, why?

At least one user has experienced problems when resizing his lvm volume multiple times. The workaround is to run xfs_repair after each xfs_growfs. They are not able to replicate this at SGI on the moment.

Q: NFS permissions seem to be reset for no apperent reason?

The 2.4.5 tree from beginning of june had a problem that permissions over NFS were reset. This is fixed in the development tree.

Q: Is there any relation between the xfs utility's and the kernel version?

No, there is no relation. Newer utility's only have fixes and checks the previous versions might not have. These are the same utility's that have been used under Irix for years so they have been well developed.

Q: Why doesn't my XFS kernel fit on a bootfloppy that I make with mkbootdisk?

XFS is a huge amount of kernel code which means that your kernel is probably to big to fit on a boot floppy together with a inital ramdisk and scsi drivers. There is patch available for mkbootdisk to properly format a floppy with a larger size. Your mileage may very on booting overformatted floppy's of 1.68 of 1.72MB. The patch can be found at http://iserv.nl/files/xfs/mkbootdisk.large.patch Use the /dev/fd0u1680 for making a 1.68MB floppy.
Another method is building XFS as module but this is probably more hassle then trying to boot a superformatted floppy.

Q: Where can I find pre made XFS boot disks?

Kelly Eicher has made a boot floppy set available on his homepage http://www.astro.umn.edu/~carde These are very helpful and easy to use in migrating or repairing a system.

Q: How can I backup an XFS filesystem and acls?

You can backup a XFS filesystem with utility's like xfsdump and standard tar for standard files. If you want to backup acls you will need to use xfsdump. This is the only tool at the moment that supports backing up of acls. Support for XFS and acls is underway at several commercial backup tools. xfsdump can be made to work with amanda.

Q: When will XFS be included in the mainstream linus kernel?

Good question, there still is a decent amount of work to be done to make the xfs patch less intrusive on the standard Linus kernel. There are still some points (mid june) that need to be resolved before it can be sent to Linus. Maybe if we are lucky it might even be included at some point in the 2.4 series. XFS also interacts with the VM very closely. It will probably be included in the 2.5 tree in the future. In the mean time there will be patches made available for patching a Linus kernel with XFS.
The easiest way to get the "latest and greatest" is by checking the out the xfs development tree.

Q: VMware says that it does not know if the filesystem supports locking?

XFS supports locking but it is not known to VMware. It has been reported to VMware but the status is unknown at this point. If you follow the instructions that VMware gives when starting up you should be fine.

Q: Where can I find documentation about acls?

Take a look at http://acl.bestbits.at/pre and get the posix 1003.1e draft.

<& xfsTemplate,bottom=>1 &>