Format a Volume as XFS in Debian and Ubuntu

To format a drive with the XFS file system make sure xfsprogs is installed, if not you can install xfsprogs from the repositories with the help of apt-get.

root@ubuntu:~# apt-get install xfsprogs

Before you start partitioning and formatting drives make sure you have the right drive. We can list all available drives in the system with the help of the ls command.

root@ubuntu:~# ls /dev/sd*

/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb  /dev/sdb1  /dev/sdc

In this installation I will format the drive /sdc, I know this because this is a blank drive with no partitions.

Now we partition the drive with the help of fdisk. Fdisk can be scary if you have never used it before, in order to partition the drive use the commands below. Note: this will create one big partition, use the values inside the brackets [] as a guide.

root@ubuntu:~# fdisk /dev/sdb

Command (m for help): [n]
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): [p]
Partition number (1-4, default 1): [1]
First sector (2048-335544319, default 2048): [press Enter]
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-335544319, default 335544319): [press Enter]
Using default value 335544319

Command (m for help): [w]
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Because we installed xfsprogs we can make use of mkfs.xfs to format the partition we created in the step above. -L will label the drive as media.

root@ubuntu:~# mkfs.xfs -L media /dev/sdc1

Create a mount point.

root@ubuntu:/dev# mkdir /mnt/dat1

Mount the drive.

root@ubuntu:~# mount -t xfs /dev/sdc1 /mnt/dat1

Let’s check the newly mounted volume, visible at the bottom.

root@ubuntu:/dev# df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G  1.9G   46G   4% /
udev             80M  4.0K   80M   1% /dev
tmpfs            36M  272K   35M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none             88M     0   88M   0% /run/shm
/dev/sdc1       160G   33M  160G   1% /mnt/dat1

To permanently mount the new volume every time the system boots you will need to edit and add a new entry to /etc/fstab. You can use the echo command to easily add the new entry.

root@ubuntu:# echo '/dev/sdc1 /mnt/dat1 xfs defaults 0 0' >> /etc/fstab

Or manually add the entry below to fstab with the text editor of your choice.

/dev/sdc1 /mnt/dat1 xfs defaults 0 0


XFS is a good file system for those of us working with large files. If you have any questions leave a comment below.

  • Pinkamena_D

    Thank you very much.

  • Art

    This post of yours has given me the most insight to the costly and time consuming problem I am having. I have a STORA HDD (single array) that was removed and reinstalled with the power on…lost the partition that I need and cannot access anything now. I boot up ubuntu and can see the drive but cannot make a directory and mount it because it says the format is unknown??? Everywhere I search leads me to believe its an XFS format but I am afraid of formatting back to where I think it should be. What would you do in this case?

  • alberto di savia puglisi

    an excellent guide! thank you 🙂