文章目录
1. F2FS工具安装
1.1. apt安装
在较新的Debian/Ubuntu系统上,可以直接使用apt命令安装。
apt install f2fs-tools
1.2. 源码安装
https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git
1.2.1. 编译依赖
- libuuid-devel or uuid-dev
- pkg-config
- autoconf
- libtool
- libselinux1-dev
1.2.2. 初始化编译
在初始编译之前,应该运行autoconf/automake。
./autogen.sh
1.2.3. 编译Host版本
./configure
make
编译完成后,使用make install
将生成的工具安装到系统目录(需要root权限)。
1.2.4. 交叉编译(以ARM为例)
- 添加
mkfs_f2fs_LDFLAGS = -all-static
到mkfs/Makefile.am
- 添加
fsck_f2fs_LDFLAGS = -all-static
到fsck/Makefile.am
- 执行如下指令:
LDFLAGS=--static ./configure \
--host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi
make
2. F2FS工具使用方法
2.1. 命令帮助
F2FS-tools: mkfs.f2fs Ver: 1.14.0 (2020-08-24)
Usage: mkfs.f2fs [options] device [sectors]
[options]:
-a heap-based allocation [default:0]
-c device1[,device2,...] up to 7 additional devices, except meta device
-d debug level [default:0]
-e [cold file ext list] e.g. "mp3,gif,mov"
-E [hot file ext list] e.g. "db"
-f force overwrite of the existing filesystem
-g add default options
-i extended node bitmap, node ratio is 20% by default
-l label
-U uuid
-m support zoned block device [default:0]
-o overprovision percentage [default:auto]
-O feature1[,feature2,...] e.g. "encrypt"
-C [encoding[:flag1,...]] Support casefolding with optional flags
-q quiet mode
-r set checkpointing seed (srand()) to 0
-R root_owner [default: 0:0]
-s # of segments per section [default:1]
-S sparse mode
-t 0: nodiscard, 1: discard [default:1]
-T timestamps
-w wanted sector size
-z # of sections per zone [default:1]
-V print the version number and exit
sectors: number of sectors [default: determined by device size]
2.2. mkfs.f2fs常用参数
参数 | 说明 |
---|---|
-l [label] | 指定一个卷标签,最多512个unicode字符 |
-a [0 or 1] | 分割每个区域的起始位置以进行基于堆的分配。默认设置为1,表示执行此操作。 |
-o [int] | 设置超过容量大小的百分比的超额供应比率。默认值为5 |
-s [int] | 设置每个段的节数(number of segments per section)。默认值为1 |
-z [int] | 设置每个域的节数(number of sections per zone)。默认值为1 |
-e [str] | 设置基本扩展列表。如 “mp3,gif,mov” |
-t [0 or 1] | 是否禁用discard命令,默认值为1,表示禁用。 |
2.3. fsck.f2fs
fsck.f2fs是检查F2fs格式分区一致性的工具,它检查文件系统元数据和用户生成的数据是否正确地相互引用。注意,工具的初始版本并不修复任何不一致。
常见参数如下:
-d debug level [default:0]
2.4. dump.f2fs
dump.f2fs用于调试F2fs文件系统的磁盘数据结构。它显示磁盘上给定inode的信息,并能够将SSA和SIT条目分别转储到预定义文件dump_ssa和dump_sit中。
常见参数如下:
-d debug level [default:0]
-i inode no (hex)
-s [SIT dump segno from #1~#2 (decimal), for all 0~-1]
-a [SSA dump segno from #1~#2 (decimal), for all 0~-1]
举例:
dump.f2fs -i [ino] /dev/sdx
dump.f2fs -s 0~-1 /dev/sdx (SIT dump)
dump.f2fs -a 0~-1 /dev/sdx (SSA dump)
2.5. sload.f2fs
sload.f2fs提供了一种在现有磁盘映像中插入文件和目录的方法。这个工具在构建给定的编译文件的f2fs映像时非常有用。
2.6. resize.f2fs
resize.f2fs允许用户调整F2fs格式的磁盘映像的大小,同时保留映像中存储的所有文件和目录。
2.7. defrag.f2fs
defrag.f2fs可用于整理分散的写入数据以及磁盘上的文件系统元数据。以便提供更多的连续空间来提高写入速度。
2.8. f2fs_io
f2fs_io是一个简单的工具,可以调用各种文件系统api和F2FS的api,对于QA测试来说非常有用。