data分区格式f2fs改为ext4
问题:设备是不带电池的,关机的时候是直接断电的,如果data分区是f2fs的文件系统格式,这种操作是有一定概率性损坏文件系统了导致开不了机。f2fs改为ext4就可以减小异常掉电后数据丢失的概率。
异常开机:
正常开机会有很多init的信息:
措施:data分区改成ext4的格式文件系统:
Android7.1+rk3288:
device/rockchip/rk3288:
diff --git a/device.mk b/device.mk index 5d05a56..cdf512e 100755 --- a/device.mk +++ b/device.mk @@ -25,13 +25,13 @@ PRODUCT_PACKAGES += \ displayd #enable this for support f2fs with data partion -BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs +#BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs # This ensures the needed build tools are available. # TODO: make non-linux builds happy with external/f2fs-tool; system/extras/f2fs_utils -ifeq ($(HOST_OS),linux) - TARGET_USERIMAGES_USE_F2FS := true -endif +#ifeq ($(HOST_OS),linux) +# TARGET_USERIMAGES_USE_F2FS := true +#endif PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/init.rk3288.rc:root/init.rk3288.rc \ diff --git a/fstab.rk30board.bootmode.emmc.rk3288 b/fstab.rk30board.bootmode.emmc.rk3288 old mode 100644 new mode 100755 index e753b7d..1bc021b --- a/fstab.rk30board.bootmode.emmc.rk3288 +++ b/fstab.rk30board.bootmode.emmc.rk3288 @@ -9,8 +9,9 @@ /dev/block/platform/ff0f0000.dwmmc/by-name/vendor0 /vendor ext4 ro,noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard wait /dev/block/platform/ff0f0000.dwmmc/by-name/cache /cache ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard wait,check /dev/block/platform/ff0f0000.dwmmc/by-name/metadata /metadata ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard wait,check -/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data f2fs noatime,nodiratime,nosuid,nodev,discard,inline_xattr wait,check,notrim,encryptable=/metadata/key_file -#/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard,errors=panic wait,check,encryptable=/metadata/key_file +#/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data f2fs noatime,nodiratime,nosuid,nodev,discard,inline_xattr wait,check,notrim,encryptable=/metadata/key_file +/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data f2fs noatime,nodiratime,nosuid,nodev wait,check,notrim,encryptable=/metadata/key_file +/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard,errors=panic wait,check,encryptable=/metadata/key_file /dev/block/platform/ff0f0000.dwmmc/by-name/misc /misc emmc defaults defaults # /dev/block/platform/ff0f0000.dwmmc/by-name/radical_update /radical_update ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard wait diff --git a/fstab.rk30board.bootmode.emmc.rk3288w b/fstab.rk30board.bootmode.emmc.rk3288w old mode 100644 new mode 100755 index 05d7f16..8129ddd --- a/fstab.rk30board.bootmode.emmc.rk3288w +++ b/fstab.rk30board.bootmode.emmc.rk3288w @@ -9,8 +9,9 @@ /dev/block/platform/ff0f0000.dwmmc/by-name/vendor1 /vendor ext4 ro,noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard wait /dev/block/platform/ff0f0000.dwmmc/by-name/cache /cache ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard wait,check /dev/block/platform/ff0f0000.dwmmc/by-name/metadata /metadata ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard wait,check -/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data f2fs noatime,nodiratime,nosuid,nodev,discard,inline_xattr wait,check,notrim,encryptable=/metadata/key_file -#/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard,errors=panic wait,check,encryptable=/metadata/key_file +#/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data f2fs noatime,nodiratime,nosuid,nodev,discard,inline_xattr wait,check,notrim,encryptable=/metadata/key_file +/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data f2fs noatime,nodiratime,nosuid,nodev wait,check,notrim,encryptable=/metadata/key_file +/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard,errors=panic wait,check,encryptable=/metadata/key_file /dev/block/platform/ff0f0000.dwmmc/by-name/misc /misc emmc defaults defaults # /dev/block/platform/ff0f0000.dwmmc/by-name/radical_update /radical_update ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard wait diff --git a/recovery.emmc.fstab b/recovery.emmc.fstab old mode 100644 new mode 100755 index 572d70e..2981c59 --- a/recovery.emmc.fstab +++ b/recovery.emmc.fstab @@ -5,7 +5,7 @@ /dev/block/platform/ff0f0000.dwmmc/by-name/system /system ext4 defaults defaults /dev/block/platform/ff0f0000.dwmmc/by-name/cache /cache ext4 defaults defaults /dev/block/platform/ff0f0000.dwmmc/by-name/metadata /metadata ext4 defaults defaults -/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data f2fs defaults defaults +/dev/block/platform/ff0f0000.dwmmc/by-name/userdata /data ext4 defaults defaults /dev/block/platform/ff0f0000.dwmmc/by-name/cust /cust ext4 defaults defaults /dev/block/platform/ff0f0000.dwmmc/by-name/custom /custom ext4 defaults defaults /dev/block/platform/ff0f0000.dwmmc/by-name/radical_update /radical_update ext4 defaults defaults @@ -18,4 +18,4 @@ /dev/block/platform/ff0f0000.dwmmc/by-name/recovery /recovery emmc defaults defaults /dev/block/platform/ff0f0000.dwmmc/by-name/backup /backup emmc defaults defaults /dev/block/platform/ff0f0000.dwmmc/by-name/trust /trust emmc defaults defaults -/dev/block/platform/ff0f0000.dwmmc/by-name/baseparamer /baseparamer emmc defaults defaults +/dev/block/platform/ff0f0000.dwmmc/by-name/baseparamer /baseparamer emmc defaults defaults \ No newline at end of file
device/rockchip/common:
diff --git a/device.mk b/device.mk index 6f49c7e..3327a2f 100755 --- a/device.mk +++ b/device.mk @@ -73,7 +73,7 @@ PRODUCT_COPY_FILES += \ # Filesystem management tools -PRODUCT_PACKAGES += \ +#PRODUCT_PACKAGES += \ mkfs_host.f2fs \ fsck.f2fs \ mkfs.f2fs \
Android8.1+rk3399:
/device/rockchip/common
diff --git a/device.mk b/device.mk index 60005bd..e0913d0 100755 --- a/device.mk +++ b/device.mk @@ -58,7 +58,7 @@ PRODUCT_PROPERTY_OVERRIDES += \ ro.rksdk.version=RK30_ANDROID$(PLATFORM_VERSION)-SDK-v1.00.00 # Filesystem management tools -PRODUCT_PACKAGES += \ +#PRODUCT_PACKAGES += \ fsck.f2fs \ mkfs.f2fs \ fsck_f2fs
/device/rockchip/rk3399
diff --git a/device.mk b/device.mk index 0390c64..97e6e50 100755 --- a/device.mk +++ b/device.mk @@ -25,13 +25,13 @@ PRODUCT_PACKAGES += \ libion #enable this for support f2fs with data partion -BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs +#BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs # This ensures the needed build tools are available. # TODO: make non-linux builds happy with external/f2fs-tool; system/extras/f2fs_utils -ifeq ($(HOST_OS),linux) - TARGET_USERIMAGES_USE_F2FS := true -endif +#ifeq ($(HOST_OS),linux) +# TARGET_USERIMAGES_USE_F2FS := true +#endif PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/init.rk3399.rc:root/init.rk3399.rc \ diff --git a/recovery.fstab b/recovery.fstab index ab69841..e923582 100755 --- a/recovery.fstab +++ b/recovery.fstab @@ -7,7 +7,7 @@ /dev/block/by-name/oem /oem ext4 defaults defaults /dev/block/by-name/cache /cache ext4 defaults defaults /dev/block/by-name/metadata /metadata ext4 defaults defaults -/dev/block/by-name/userdata /data f2fs defaults defaults +/dev/block/by-name/userdata /data ext4 defaults defaults /dev/block/by-name/cust /cust ext4 defaults defaults /dev/block/by-name/custom /custom ext4 defaults defaults /dev/block/by-name/radical_update /radical_update ext4 defaults defaults diff --git a/rk3399_mid/fstab.rk30board b/rk3399_mid/fstab.rk30board index b16e9de..5140639 100755 --- a/rk3399_mid/fstab.rk30board +++ b/rk3399_mid/fstab.rk30board @@ -14,4 +14,5 @@ # For sdmmc /devices/platform/fe320000.dwmmc/mmc_host* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata # Full disk encryption has less effect on rk3399, so default to enable this. -/dev/block/by-name/userdata /data f2fs noatime,nodiratime,nosuid,nodev,discard,inline_xattr wait,check,notrim,forceencrypt=/metadata/key_file +#/dev/block/by-name/userdata /data f2fs noatime,nodiratime,nosuid,nodev,discard,inline_xattr wait,check,notrim,forceencrypt=/metadata/key_file +/dev/block/by-name/userdata /data ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard ,errors=panic wait,check,notrim,forceencrypt=/metadata/key_file diff --git a/rk3399_mid/recovery.fstab b/rk3399_mid/recovery.fstab index 26b8311..c0b3a08 100755 --- a/rk3399_mid/recovery.fstab +++ b/rk3399_mid/recovery.fstab @@ -7,7 +7,7 @@ /dev/block/platform/fe330000.sdhci/by-name/oem /oem ext4 defaults defaults /dev/block/platform/fe330000.sdhci/by-name/cache /cache ext4 defaults defaults /dev/block/platform/fe330000.sdhci/by-name/metadata /metadata ext4 defaults defaults -/dev/block/platform/fe330000.sdhci/by-name/userdata /data f2fs defaults defaults +/dev/block/platform/fe330000.sdhci/by-name/userdata /data ext4 defaults defaults /dev/block/platform/fe330000.sdhci/by-name/cust /cust ext4 defaults defaults /dev/block/platform/fe330000.sdhci/by-name/custom /custom ext4 defaults defaults /dev/block/platform/fe330000.sdhci/by-name/radical_update /radical_update ext4 defaults defaults
修改成功后,cat /proc/mounts可看出来:
Android11+rk3568
device/rockchip/rk356x diff --git a/rk3568_r/recovery.fstab b/rk3568_r/recovery.fstab old mode 100644 new mode 100755 index 0856791..c63acdc --- a/rk3568_r/recovery.fstab +++ b/rk3568_r/recovery.fstab @@ -9,7 +9,8 @@ /dev/block/by-name/system_ext /system_ext ext4 defaults defaults /dev/block/by-name/cache /cache ext4 defaults defaults /dev/block/by-name/metadata /metadata ext4 defaults defaults -/dev/block/by-name/userdata /data f2fs defaults defaults +#/dev/block/by-name/userdata /data f2fs defaults defaults +/dev/block/by-name/userdata /data ext4 defaults defaults /dev/block/by-name/cust /cust ext4 defaults defaults /dev/block/by-name/custom /custom ext4 defaults defaults /dev/block/by-name/radical_update /radical_update ext4 defaults defaults
device/rockchip/common diff --git a/scripts/fstab_tools/fstab.in b/scripts/fstab_tools/fstab.in index 10c3d2e..8f74e06 100755 --- a/scripts/fstab_tools/fstab.in +++ b/scripts/fstab_tools/fstab.in @@ -23,6 +23,6 @@ ${_block_prefix}system_ext /system_ext ext4 ro,barrier=1 ${_flags},first_stage_ # For sdmmc /devices/platform/${_sdmmc_device}/mmc_host* auto auto defaults voldmanaged=sdcard1:auto # Full disk encryption has less effect on rk3326, so default to enable this. -/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev${_sync_flags},discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs +#/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev${_sync_flags},discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs # for ext4 -#/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev${_sync_flags},noauto_da_alloc,data=ordered,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block +/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev${_sync_flags},noauto_da_alloc,data=ordered,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block
EXT4是Linux的标准文件系统,但相对与F2FS I/O读写速度较慢。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律