ext3有3种日记选项:日记,有序和回写。根据Wikipedia entry的说法,崩溃恢复的风险范围从最小到最大。由于某种原因,Android的Linux版本仅支持后两个选项,默认为回写。 (我正在运行Froyo)
有没有增加对日记模式的支持的方法?我想在/data分区(即ext3)上进行此操作,并且还要在大多数文件写入位置进行此操作。我的设备没有电池,因此当有人断开电源时,我需要确保它具有防撞功能。
如果有人感兴趣,可以在kernel/fs/ext3/Kconfig中定义Linux选项。具体选项为EXT3_DEFAULTS_TO_ORDERED。
最佳答案
解决方案是将以下内容添加到kernel/fs/ext3/Kconfig中,并使用EXT3_DEFAULTS_TO_JOURNAL重建内核。
choice
prompt "EXT3 default journal mode"
default EXT3_DEFAULTS_TO_ORDERED
help
The journal mode options for ext3 have different tradeoffs
between when data is guaranteed to be on disk and
performance. The use of "data=writeback" can cause
unwritten data to appear in files after an system crash or
power failure, which can be a security issue. However,
"data=ordered" mode can also result in major performance
problems, including seconds-long delays before an fsync()
call returns. "data=journal" is the safest option but possibly
the the great perfromance burden. For details, see:
http://ext4.wiki.kernel.org/index.php/Ext3_data_mode_tradeoffs
If you have been historically happy with ext3's performance,
data=ordered mode will be a safe choice.
config EXT3_DEFAULTS_TO_JOURNAL
bool "Default to 'data=journal' in ext3"
depends on EXT3_FS
help
Both data and metadata are journaled. Should be safe
against crashes, power failure, etc.
config EXT3_DEFAULTS_TO_ORDERED
bool "Default to 'data=ordered' in ext3"
depends on EXT3_FS
help
Only metadata are journaled. Data is written first and then
metadata is update. Mostly safe against crashes, power
failures, etc., except if the anomally occurred while a file
is being overwritten. Most of the time files are appended and
not over written.
config EXT3_DEFAULTS_TO_WRITEBACK
bool "Default to 'data=writeback' in ext3"
depends on EXT3_FS
help
Ext2 with a fast ckfs. Not always safe against crashes,
power failure, etc., but has the best preformance
endchoice
关于Android文件系统日记,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7479414/