F2FS为何物

F2FS

F2FS(英语:Flash-Friendly File System)是一种闪存文件系统,主要由金载极(韩语:김재극)在三星集团研发,适合Linux内核使用[3]

此文件系统起初是为了NAND闪存的存储设备设计(诸如固态硬盘eMMCSD卡),这些设备广泛存在于自移动设备服务器领域。

三星应用了日志结构文件系统的概念,使它更适合用于存储设备。

特性

香在哪里

目前笔者的oneplus7所可以使用的第三方内核中,大部分都支持了F2FS的驱动,在XDA论坛中,有一个关于oneplus7 pro使用Kirisakura内核并且开启/data分区F2FS测评,相对于原来的EXT4文件系统有了比较大的提升,尤其是在随机写入、数据库相关性能中有了甚至几倍的提升

EXT4性能测试
EXT4性能测试
F2FS性能测试
F2FS性能测试

在作者的是实际使用中,能够明显的感觉到F2FS文件系统带来的应用启动速度的提升,再有就是更小的电量消耗(可能与笔者使用的arter97内核有关)简直不要再香,闲话少叙,我们赶快来试试

/* Disclaimer */

/* 声明 */

Your warranty is now void.
I am not responsible for bricked devices, dead SD cards, data loss

我将不为变砖的设备,损坏的存储设备,数据的丢失负责任

无损转换的操作过程

前期准备

  1. 首先你要确定的是你的op7手机已经解锁Bootloader您会丢失所有的数据,请谨慎选择)并且您拥有一个可以运行ADB命令的电脑,这个可以在这篇文章中找到,不过多赘述

  2. 确保你的手机系统版本为一加原生系统(氧OS/氢OS)并且保证系统使用最新的Android 10,也就是说在设置里面看到的系统版本主版本号要是10(形如10.x.x)

  3. 为手机安装支持Android 10TWRP,这里我们使用mauronofrio维护的版本(地址

    • 打开上述项地址,下载带有Unoffical Q字样的最新版本,截至目前最新的版本是 74,下载后将img文件存储备用
    • 终端中打开上述文件存储目录,并将你的手机进入Fastboot模式,这个操作您可以在这里找到,用USB线缆链接电脑
    • 输入 fastboot boot recoveryimgfilename.img 替换其中的文件名为还真实文件名,此时你的手机会暂时进入一个TWRP的界面,如果您想永久刷入的话还需要执行下一步操作
    • 将刚才的img文件通过电脑上的MTP协议拷贝到手机SD卡根目录,打开TWRP的高级(Advance)菜单,选择Install Recovery Ramdisk选项,选择刚才的img文件,刷入,至此您就完成了TWRP的刷入
    • 此时我们还需要一个必要操作!如果此时重启我们是没法进入系统的,无论您之前是否安装Magisk,您都要重新刷入一次Magisk的ZIP包,如果您不了解还是可以参照这篇文章,这里模块的下载我推荐使用最新版本的,下载地址
  4. 安装Magisk模块,由于在上一步骤已经做过,故不需要重复操作

  5. 在这里笔者使用的是arter97内核,当然你也可以选择其他支持F2FS的第三方内核,基本上XDA的现有第三方内核中我觉得在流畅度还是省电,最好的还是这款,所以以下教程也围绕这个内核来展开,其他内核的操作大同小异,如果是有经验的机友可以使用其他内核进行尝试,这里同样推荐另外一款内核Kirisakura

    • 下载最新版本的内核,传输到手机任意目录
    • 启动到Recovery刷入刚在的ZIP文件
    • 清除Dalvik Cache
    • 重启
  6. 最后我们再一次启动进入Recovery界面

备份操作

为了转换系统过后我们不丢失APP和用户数据我们需要对/data分区和sdcard进行备份

  1. Restore > data 首先备份data分区,进入备份,选择data分区,在高级选项中我推荐勾选压缩(compression),这样虽然时间长一点但是有利于传输电脑,同时我也推荐勾选检验选项(digest),防止传输出现问题所导致的数据丢失

  2. 然后备份sdcard,使用电脑终端运行adb命令 adb pull /data/media sdcard_backup 此时电脑上的文件sdcard_backup 一定要保存好,此时第一步备份的data分区已经包含在sdcard的文件中(/TWRP/BACKUP/***)

修改文件系统

  1. Wipe > Advanced Wipe > Data > Repair or Change File System > Change File System > F2FS 选择清除选项,高级清除,选择data分区,选择修改或修复文件系统,选择修改文件系统,点击F2FS

  2. 此时查看一下data分区是否为F2FS,如果是请重启一次Recovery,再次进入Recovery(具体操作Reboot > Recovery 选择重启选项,选择Recovery

还原操作

  1. 使用电脑终端运行adb命令 adb push sdcard_backup /data/media/0/ 稍等片刻,此时你会看到原来sdcard上所有的目录都回来了
  2. Setting > use rm-rf instead of formattting 在 TWRP 的设置中,把 “使用 rm-rf 指令代替格式化” 的选项勾上,以免一会还原分区时候系统执行wipe把分区再次格式化为EXT4
  3. Restore > Choose backup > Data 选择恢复,选择相应的备份,然后确定,此时如果看到警告(WARNING)提示你使用EXT4备份还原F2FS分区,可以直接忽略
  4. 结束后如果没有报错的话我们继续最后一部

刷入优化驱动

如果内核支持F2FS驱动的话其实到这里就应该结束了,不过arter97内核在这里做了一个优化,我们需要刷入

  1. 这里下载优化包,MTP传输到手机sdcard中
  2. Install > f2fs-optimize.zip 在`Recovery中安装刚才的ZIP包

至此,我们完成了所有的转换步骤,重启手机到系统中去体验F2FS带来的快速吧,奥里给!