Difference between revisions of "F2FS"

From ArchWiki
Jump to: navigation, search
m (added Japanese)
(Install Arch Linux on F2FS partition: some simplifications and style improvements)
 
(44 intermediate revisions by 22 users not shown)
Line 1: Line 1:
 
[[Category:File systems]]
 
[[Category:File systems]]
[[ja:F2fs]]
+
[[it:F2FS]]
[[Wikipedia:F2FS|F2FS]] (Flash-Friendly File System) is a file system intended for NAND-based flash memory. It is supported from kernel 3.8 onwards.
+
[[ja:F2FS]]
 +
[[ko:F2FS]]
 +
[[ru:F2FS]]
 +
{{Related articles start}}
 +
{{Related|File systems}}
 +
{{Related articles end}}
  
== Creating a f2fs partition ==
+
[[Wikipedia: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.
In order to create a f2fs partition, you need to [[Pacman|install]] package {{Pkg|f2fs-tools}} from [[Official Repositories]].
 
  
Create the partition:
+
== Creating a F2FS partition ==
# mkfs.f2fs /dev/sdxY
 
  
== Mounting a f2fs partition ==
+
In order to create a F2FS partition, [[install]] {{Pkg|f2fs-tools}} from the [[official repositories]].
You may need to load the f2fs kernel module before mounting. Issue as root:
 
  
  # modprobe f2fs
+
Create the partition:
 +
  # mkfs.f2fs -l mylabel ''/dev/sdxY''
 +
where {{ic|''/dev/sdxY''}} is the target volume to format in F2FS.
  
Then you can mount the partition:
+
== Mounting a F2FS partition ==
  
# mount -t f2fs /dev/sdxY /mnt
+
The partition can then be mounted manually or via other mechanisms:
  
== Install Arch Linux on f2fs partition ==
+
# mount /dev/sdxY /mnt/foo
With the latest installation media (2013.04.01) it is possible to install system on f2fs partition:
 
  
#Install {{Pkg|f2fs-tools}} from [[Official Repositories]] while running arch from installation media.
+
== Grow an F2FS partition ==
#Load f2fs kernel module as described above.
+
 
#Create root partition as f2fs as described above.
+
When the filesystem is unmounted, it can be grown if the partition is expanded. [https://www.mail-archive.com/linux-f2fs-devel@lists.sourceforge.net/msg04247.html Shrinking is not currently supported].
#Create boot partition as ext4 (or any other supported filesystem).
+
 
#Mount, install and chroot system as per [[Beginners'_Guide#Mount_the_partitions|official installation guide]].
+
First use a [[Partitioning#Partitioning_tools|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.
#(On installed sytem) add {{ic| f2fs}} to modules section in {{ic|/etc/mkinitcpio.conf}} and remove {{ic| fsck}} from hooks section since f2fs doesn't have fsck implementation yet.
+
 
#Don't forget to regenerate the initramfs image after that:
+
Then expand the filesystem to fill the new partition using:
# mkinitcpio -p linux
+
 
 +
# resize.f2fs /dev/sdxY
 +
where {{ic|''/dev/sdxY''}} is the target F2FS volume to grow.
 +
 
 +
{{Note|If you're using GPT, the partition's GUID (seen in /dev/disk/by-partuuid/*) might change, but the filesystem UUID (seen in /dev/disk/by-uuid) should stay the same.}}
 +
 
 +
== Install Arch Linux on F2FS partition ==
 +
 
 +
{{Warning|1=If 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 (which is persistent across reboots) of your drive so it uses classic {{ic|/dev/sdXx}} names instead (which are not guaranteed to be persistent across reboots). In this case you might have to manually edit {{ic|/boot/grub/grub.cfg}} and replace {{ic|1=root=/dev/sdXx}} with {{ic|1=root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}}; you can use the {{ic|blkid}} command to get the UUID of your device.
 +
}}
 +
 
 +
With the latest [https://www.archlinux.org/download/ installation media] it is possible to install Arch linux with root located on a F2FS filesystem:
 +
 
 +
# Create the root partition as F2FS as described in section [[#Creating a F2FS partition]].
 +
# If your [[bootloader]] does not support F2FS, create a separate {{ic|/boot}} partition using a filesystem that it does.
 +
# Continue from [[Installation guide#Mount the file systems]] until [[Change root|chrooted]].
 +
# Install {{Pkg|f2fs-tools}} on the newly installed system as well.
 +
# Regenerate the [[initramfs]] while chrooted.
 +
 
 +
Be sure to also check out the [[Installing Arch Linux on a USB key]] page if you are installing Arch on a USB flash drive (in particular the part about editing {{ic|/etc/mkinitcpio.conf}} is important, otherwise your system will not boot).
 +
 
 +
== Checking and repair ==
 +
 
 +
Checking and repairs to f2fs partitions are accomplished with {{ic|fsck.f2fs}} provided by {{pkg|f2fs-tools}}. See the manpage for available switches.

Latest revision as of 11:43, 27 September 2017

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.

Creating a F2FS partition

In order to create a F2FS partition, install f2fs-tools from the official repositories.

Create the partition:

# mkfs.f2fs -l mylabel /dev/sdxY

where /dev/sdxY is the target volume to format in F2FS.

Mounting a F2FS partition

The partition can then be mounted manually or via other mechanisms:

# mount /dev/sdxY /mnt/foo

Grow an F2FS partition

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.

Note: If you're using GPT, the partition's GUID (seen in /dev/disk/by-partuuid/*) might change, but the filesystem UUID (seen in /dev/disk/by-uuid) should stay the same.

Install Arch Linux on F2FS partition

Warning: If 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 (which is persistent across reboots) of your drive so it uses classic /dev/sdXx names instead (which are not guaranteed to be persistent across reboots). 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.

With the latest installation media it is possible to install Arch linux with root located on a F2FS filesystem:

  1. Create the root partition as F2FS as described in section #Creating a F2FS partition.
  2. If your bootloader does not support F2FS, create a separate /boot partition using a filesystem that it does.
  3. Continue from Installation guide#Mount the file systems until chrooted.
  4. Install f2fs-tools on the newly installed system as well.
  5. Regenerate the initramfs while chrooted.

Be sure to also check out the Installing Arch Linux on a USB key page if you are installing Arch on a USB flash drive (in particular the part about editing /etc/mkinitcpio.conf is important, otherwise your system will not boot).

Checking and repair

Checking and repairs to f2fs partitions are accomplished with fsck.f2fs provided by f2fs-tools. See the manpage for available switches.