tune2fs
eugene373さんが最近リリースした[Kernel 3.1.6-ICUP] For ICS OTA 12/30 ( Speedy-1 Update )のupdate-scriptを読むと、speedyというスクリプトを呼んでいる箇所があります。中身は
#!/sbin/busybox sh # tune2fs -c 100 -i 30d -m 0 -o journal_data_writeback -O ^has_journal /dev/block/platform/s3c-sdhci.0/by-name/system tune2fs -c 100 -i 30d -m 0 -o journal_data_writeback -O ^has_journal /dev/block/platform/s3c-sdhci.0/by-name/userdata # do a filesystem check fsck.ext4 -pf /dev/block/platform/s3c-sdhci.0/by-name/system fsck.ext4 -pf /dev/block/platform/s3c-sdhci.0/by-name/userdata exit 0
となっており、ファイルシステムの設定を変更するものとなっています。また、インストール時のみに実行することから、この設定はkernelを変更してもファイルシステム上に残ります。標準の設定に戻すには、tune2fsをキーワードに調べ物をしなければなりません。tune2fsによる/systemへのアクセスはCWM Recoveryを立ち上げ、/systemパーティションをマウントすることで実行できます。
Nexus Sのsystemパーティションの状態をtune2fsで取得すると、標準(のはず)状態では
# tune2fs -l /dev/block/platform/s3c-sdhci.0/by-name/system tune2fs -l /dev/block/platform/s3c-sdhci.0/by-name/system tune2fs 1.41.6 (30-May-2009) Filesystem volume name: <none> Last mounted on: /system Filesystem UUID: 57f8f4bc-abf4-0000-675f-946fc0f9f25b Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal resize_inode filetype needs_recovery extent sparse_super large_file Filesystem flags: unsigned_directory_hash Default mount options: (none) Filesystem state: clean Errors behavior: Remount read-only Filesystem OS type: Linux Inode count: 32768 Block count: 131072 Reserved block count: 0 Free blocks: 53997 Free inodes: 31568 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 31 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Last mount time: Sat Dec 31 02:22:21 2011 Last write time: Sat Dec 31 02:22:21 2011 Mount count: 20 Maximum mount count: -1 Last checked: Thu Jan 1 00:00:00 1970 Check interval: 0 (<none>) Lifetime writes: 291 MB Reserved blocks uid: 0 (user unknown) Reserved blocks gid: 0 (group unknown) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 Default directory hash: tea Journal backup: inode blocks
前述のスクリプトが走った後
# tune2fs -l /dev/block/platform/s3c-sdhci.0/by-name/system tune2fs -l /dev/block/platform/s3c-sdhci.0/by-name/system tune2fs 1.41.6 (30-May-2009) Filesystem volume name: <none> Last mounted on: /system Filesystem UUID: 57f8f4bc-abf4-0000-675f-946fc0f9f25b Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: resize_inode filetype extent sparse_super large_file Filesystem flags: unsigned_directory_hash Default mount options: journal_data_writeback Filesystem state: not clean Errors behavior: Remount read-only Filesystem OS type: Linux Inode count: 32768 Block count: 131072 Reserved block count: 0 Free blocks: 56867 Free inodes: 31817 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 31 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Last mount time: Sat Dec 31 03:30:19 2011 Last write time: Sat Dec 31 03:30:19 2011 Mount count: 8 Maximum mount count: 100 Last checked: Thu Jan 1 00:00:00 1970 Check interval: 2592000 (1 month) Next check after: Sat Jan 31 00:00:00 1970 Lifetime writes: 284 MB Reserved blocks uid: 0 (user unknown) Reserved blocks gid: 0 (group unknown) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Default directory hash: tea Journal backup: inode blocks
両者の違いは、
Filesystem features: has_journal resize_inode filetype needs_recovery extent sparse_super large_file Filesystem features: resize_inode filetype extent sparse_super large_file
Default mount options: (none) Filesystem state: clean Default mount options: journal_data_writeback Filesystem state: not clean
Free blocks: 53997 Free inodes: 31568 Free blocks: 56867 Free inodes: 31817
Maximum mount count: -1 Check interval: 0 (<none>) Journal inode: 8 Maximum mount count: 100 Check interval: 2592000 (1 month) 無し
このあたりを調べて行けば、標準に戻すことが出来るはず。
Man page of tune2fsとspeedyスクリプト、tune2fs -lの結果を眺めながら、標準の設定に戻せそうなスクリプトを下記に示します(まだ試していません)
tune2fs-default
#!/sbin/busybox sh # tune2fs -c 20 -i 0 -m 5 -o ^journal_data_writeback -O has_journal /dev/block/platform/s3c-sdhci.0/by-name/system tune2fs -c 20 -i 0 -m 5 -o ^journal_data_writeback -O has_journal /dev/block/platform/s3c-sdhci.0/by-name/userdata # do a filesystem check fsck.ext4 -pf /dev/block/platform/s3c-sdhci.0/by-name/system fsck.ext4 -pf /dev/block/platform/s3c-sdhci.0/by-name/userdata exit 0