• Android修改分区格式为F2FS


    本文介绍如何将Android系统的/data分区改变成F2FS格式。修改的原因是F2FS分区格式拥有更加的I/O性能。

    修改文件系统格式成F2FS方法

    在改动之前我们先看看当前Android系统的主要分区格式,可以用如下方式查看

    1. $ adb shell df -t ext4
    2. Filesystem 1K-blocks Used Available Use% Mounted on
    3. /dev/block/bootdevice/by-name/system 1007736 907964 83388 92% /system
    4. /dev/block/bootdevice/by-name/userdata 12168972 6740960 5411628 56% /data
    5. /dev/block/bootdevice/by-name/cache 259856 332 254160 1% /cache
    6. /dev/block/bootdevice/by-name/persist 28144 200 27292 1% /persist

    大多数情况下可以看到我们系统当前的主要分区格式都是EXT4。

    现在来将/data分区格式更改成F2FS格式,因为应用的好多私有数据都存放在该分区知悉,比如database,SharedPreferences.更改成F2FS格式能有效提升应用的I/O访问速度,提升性能。
    修改的地方有三点:

    1.打开kernel config中对F2FS的支持
    项目的kernel config 文件中加入

    1. CONFIG_F2FS_FS=y
    2. CONFIG_F2FS_STAT_FS=y
    3. CONFIG_F2FS_FS_XATTR=y
    4. CONFIG_F2FS_FS_POSIX_ACL=y
    5. CONFIG_F2FS_FS_SECURITY=y
    6. CONFIG_F2FS_CHECK_FS=y

    2.配置/data分区文件格式为F2FS.
    在文件BoardConfig.mk中做如下修改

    1. TARGET_USERIMAGES_USE_F2FS := true
    2. BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs

    3.更改分区文件fstab,使得mount /data分区时的文件类型为F2FS。
    fstab可能有多个类似文件,需要根据具体项目定位。修改形式大致如下:

    1. - /data ext4 noatime,nosuid,nodev,discard
    2. + /data f2fs noatime,nosuid,nodev,discard

    第3点的修改可以参考:
    https://github.com/anpage/android_device_asus_grouper/commit/9d6899d95af972ae7613d02dc30eb36bb74062b8

    以上修改完毕,查看当前的/data分区已经变成了F2FS格式。

    F2FS vs EXT4

    修改了之后为了验证I/O性能确实提升了,可以借助Androbench APK测试。结果如下图。

    转存失败重新上传取消

    从跑分结果看f2fs格式的结果要好于ext4,但似乎优势不明显。我们在用dd命令测试:

    转存失败重新上传取消

    最后放上一个官方的分区格式不同的性能对比图。

    转存失败重新上传取消

    拓展知识点

    • 什么是文件系统:
      文件系统是用来控制如何存取数据的一套规则。如果没有这套规则,那么所有数据都会放在一个大的存储区域上,我们很难找到需要的数据位于该区域的哪一个地方。于是就制定了一套规则,它将整个大的存储区域分割成若干个独立的子区域,每个子区域对应一个名称,如何分割子区域,以及从子区域中读写目标数据的整套规则就是文件系统。

    F2FS文件系统优缺点

    F2FS (Flash-Friendly File System)文件系统格式是由三星公司开发的,它专为移动设备而生。
    优点:

    • 卓越的读写速度
    • 降低了写的的次数,因此延长了磁盘的寿命。

    缺点:

    • 占用的空间更大
    • 没有ext4稳定
    • 没有ext4通用,某些手机可能不支持

    EXT4文件系统优缺点

    EXT4是Linux的标准文件系统,它基于EXT3而来,EXT3又基于EXT2而来,但从EXT3到EXT4做的改动巨大。
    优点:

    • 良好的稳定性,使用广泛
    • 所有的智能手机都支持。

    缺点:

    • 相对与F2FS I/O速度较慢。
  • 相关阅读:
    Spring——Spring中基于注解以及配置实现事务的管理
    基于Flask_admin库,编写个人工作平台详述。
    【Axure高保真原型】曲线图组和堆叠曲线图
    使用appscan定时批量扫描方法
    基于QT Creator 5.14的仿QQ聊天系统【UDP通讯】
    阿里Nginx替代产品-Tengine安装
    vue 使用cornerstone解析 .dcm 文件
    linux提权秘籍
    金融行业网络安全保护与三级等保合规实施方案
    DGL安装教程
  • 原文地址:https://blog.csdn.net/cqn2bd2b/article/details/125556668