前言

主角 F2FS

在 Android 手机阵营里,文件系统主要有两个一个是传统的 EXT4,另一个是逐渐崛起普及的 F2FS,越来越多的厂商开始拥抱 F2FS,那么相较 EXT4,F2FS究竟有什么优势呢?下面就来简单的普及下 F2FS 文件系统知识和给出实际切换到 F2FS 的方法以及简单的使用数据和体验,至于关于 F2FS 高深的设计和深度的技术展示就不在这班门弄斧了,感兴趣的同学可以自己去查阅资料学习。

什么是文件系统?


计算机和当今的移动设备里,不光有操作系统如 iOS,Android,也有为了管理文件的文件系统,他决定了在存储空间上(磁盘,闪存和固态硬盘等等),文件是如何进行数据的存储、分级组织、存取和获取等操作,他就像一个仓库的管理员决定了仓库里物品是如何摆放,堆叠,和标记的,现如今的文件系统有非常多,他们都有自己的特点,一些厂商为了更好的利用硬件的性能,会自行开发自己的文件系统,例如苹果公司在2017年就发布了针对自家硬件设备的文件系统 APFS ,可见文件系统的重要性。

什么是 F2FS?


F2FS 全称为 Flash Friendly File System,是一种较为新型的支持 Linux 内核使用的文件系统。最早是由三星在2012年研发设计的,其目的就是为了更好的适应 NAND 一类的闪存设备(例如固态硬盘、eMMC和SD卡等),在 F2FS 中三星应用了日志结构档案系统的概念,使它更适合用于储存设备。在 F2FS 诞生之后陆续就有一些 Android 的 Rom 对 F2FS 文件系统进行了支持,例如 2013 年发布的 Moto X 就实用了该文件系统,但在当时并没有引起什么大的反响。此后也许是因为 EXT4 强大的统治力,F2FS 一直没有什么登上舞台的机会,直到 2016 年一加的氢 OS 7.0 宣布支持了 F2FS,华为也在自家移动设备开始实用 F2FS,其中华为 Mate 9 提出的18个月使用不卡顿也是基于 F2FS 的深度优化,到如今 Google Pixel 3 系列手机也使用 F2FS,这才让 F2FS 真正的走向了历史的舞台,第三方的 Rom 开发者也都开始切换和支持 F2FS 文件系统,据悉在三星研发 F2FS 的工程师都已经被 Google 招致麾下,未来 Google 也许会加大力度推动 F2FS 的全面普及。

F2FS 有那些优缺点?


相较于 EXT4,F2FS具备以下优缺点。

优点:

  • 更加快速的随机读写速
  • 降低了写的次数,从而延长了固态存储的寿命
  • 零碎小文件的读写速度更快,降低碎片整理的开销

缺点:

  • 普及率低,可能会有兼容性问题
  • 闪存的占用空间相对高一些
  • 大文件读取速度波动较大

以上的优缺点的总结可能并不完全,但是在如今的闪存设备里,F2FS 的确有更大的优势。

如何使用?


首先你得找到一个支持 F2FS 的 Rom,我仅仅以 Mix2 和红米 Note5 来测试,其他的手机和相关的Rom 我们没有做个调研,需要读者自己去查询相关资料。

Mix2

支持的Rom:

Omni Rom http://dl.nixadm.ru/omni-9-chiron/omni-9-20190218-chiron-HOMEMADE.zip 

 Nitrogen OS http://wight554.tk/nitrogen/Nitrogen-OS-P-chiron-20190219-UNSTABLE.zip

支持的REC:

TWRP http://dl.nixadm.ru/omni-9-chiron/recovery-f2fs.img

Orange Fox https://sourceforge.net/projects/orangefox/files/chiron/OrangeFox-R9.0-1-chiron.zip/download

红米 Note 5

支持的Rom:

Pixel Experience https://download.pixelexperience.org/whyred/

支持的REC:

TWRP https://androidfilehost.com/?fid=11410963190603904401

Orange Fox https://sourceforge.net/projects/orangefox/files/whyred/OrangeFox-R9.0-1-whyred.zip/download

刷入方法

首先通过 twrp 备份你的所有数据,备份好的数据通过 ADB 的方式拷贝一份到你的电脑里,避免出现了问题之后没法恢复。然后刷入支持F2FS的第三方 Rec因为有些 Rec 不支持格式文件系统为 F2FS ,全部完成后就可以开始转化文件系统了。

  • 格式化 Data 和 Cache:

1、重启到 Rec 模式

2、选择 Wipe —> Advanced Wipe —> Data 

3、选择 "Repair or Change File System" 

4、选择 "Change File System" 

5、选择 "F2FS"

6、滑动以清空数据并转换文件系统格式

7、Cache 也按照上面的流程走一遍

8、刷入支持 F2FS 的 Rom

如果你不想要恢复之前的数据,也可以忽略这部分

  • 恢复相关数据:

1、选择 TWRP 中的Settings

2、勾选 "Use rm -rf instead of formatting" 

3、将你备份的数据拷贝回来后,选择 Restore

4、选择你之前的备份并勾选 Data 然后恢复数据

5、完成后,回到Settings,取消勾选 "Use rm -rf instead of formatting" 

实际体验

首先亮一下我实测的数据

红米 Note 5 上为 EXT4 下为 F2FS

EXT4 测试数据
F2FS 测试数据

在闪存是 Emmc5.0 的情况下,两种文件系统对比的结果中,手机闪存的连续读写性能 F2FS有小幅度的提升,但随机读写性能有着令人惊奇的变化,尤其是随机写入性能中,F2FS 的提升可以说是指数级的飞跃,性能翻了几番;随机读取性能上,F2FS 比EXT4还稍稍有些落后,这点倒是有些奇怪,不过 SQLite 的相关指标都是 F2FS 有着明显的优势。所以从纸面上的数据来看 F2FS 是优于 EXT4 的。从我自己主观上来看,换成 F2FS 之后的红米 Note 5 在开机时间上也有特别明显的改观,甚至进入 Rec 模式的时间也有所缩短

Mix 2 上为 EXT4 下为 F2FS

EXT4 测试数据


F2FS 测试数据


在闪存是 UFS2.1 的情况下, F2FS 在所有的数据上都是全方位吊打 EXT4,所有指标的数据都是领先的。同样在我的 Mix2 在日常使用中开机时间上也有特别明显的改观。从这点来看 F2FS 在 UFS2.1 上有更大的提升空间。

总结

我日常主力机是使用 Mix2,已经在 F2FS 文件系统的环境下稳定的使用了1个多月,期间没有出现任何影响到手机功能使用的 Bug,短期使用下没有出现稳定性上的问题,至于长期使用是否会对手机的存储造成巨大的影响,还是需要时间来验证,但是手机目前作为一个寿命大概在2年左右的电子品,我相信在他的生命周期里,最大程度的利用硬件是最能提升消费者幸福感的事儿。

基于现有的体验,目前我自己的主管判断是,F2FS 文件系统总体来看是利大于弊的,特别是在随机读写性能上有巨大优势,这对手机本身有着巨大的帮助,随着各大厂商逐渐开始支持这一新的文件系统,第三方 Rom 也逐渐对其做适配工作,相信 F2FS 的普及也会更加的快速,或许他会是今后手机存储文件系统的大趋势。