F2FS
F2FS (Flash-Friendly File System) is a file system intended for NAND-based flash memory equipped with Flash Transition Layer. Unlike JFFS or UBIFS it relies on FTL to handle write distribution. It is supported from kernel 3.8 onwards.
Contents
Creating a F2FS file system
In order to create a F2FS file system, install f2fs-tools.
Create the file system:
# mkfs.f2fs -l mylabel /dev/sdxY
where /dev/sdxY
is the target volume to format in F2FS. See mkfs.f2fs(8) for all available options.
Mounting a F2FS file system
The file system can then be mounted manually or via other mechanisms:
# mount /dev/sdxY /mnt/foo
Grow an F2FS file system
When the filesystem is unmounted, it can be grown if the partition is expanded. Shrinking is not currently supported.
First use a partition tool to resize the partition. This can be done, for example, by deleting the old partition and creating a new one with with the same type, the same start sector, and a new end position.
Then expand the filesystem to fill the new partition using:
# resize.f2fs /dev/sdxY
where /dev/sdxY
is the target F2FS volume to grow. See resize.f2fs(8) for supported options.
/dev/disk/by-partuuid/
) might change, but the filesystem UUID (seen in /dev/disk/by-uuid/
) should stay the same.Checking and repair
Checking and repairs to f2fs file systems are accomplished with fsck.f2fs
provided by f2fs-tools. See fsck.f2fs(8) for available switches.
Troubleshooting
GRUB with root on F2FS
When using GRUB your freshly installed system might not boot after reboot. As GRUB does not support F2FS it is not able to extract the UUID of your drive so it uses classic non-persistent /dev/sdXx
names instead. In this case you might have to manually edit /boot/grub/grub.cfg
and replace root=/dev/sdXx
with root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
. You can use the blkid
command to get the UUID of your device, see Persistent block device naming.