現在地

Ext4 (Fourth Extended filesystem)

そろそろ普及しそうなext4について少し調べてみました。

[概要]

Kernel 2.6.28から正式採用され、ファイルシステムの最大サイズは1E、ファイルの
最大サイズは16T、タイムスタンプの精度はナノ秒で取りうる範囲は1901-2514年です。

Ext3はExt2にジャーナリング機能が付加されたくらいでしたが、Ext4ではExt3との
互換性があるとしながらもかなり改良されています。特にアロケーション周りがExt3とは
かなり異なるようです。連続するブロックを配列として扱うエクステントと呼ばれる
概念を導入し、サイズの大きいファイルを効率的に扱うことが可能となっているとの
ことです。

このエクステントを使用せずにExt4を作成、運用した場合はExt3としても扱うこと
が可能です。ただし、デフォルトではエクステントを使っているので、実際のところ
後方互換性はあまりないように思います。


[mkfsコマンドでのext4作成例]

# mkfs.ext4 /dev/sdb1
mke2fs 1.41.4 (27-Jan-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
65280 inodes, 261048 blocks
13052 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks: 
	   32768, 98304, 163840, 229376

Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

[fsstatコマンドの参照結果]

# fsstat /dev/sda1 
FILE SYSTEM INFORMATION
--------------------------------------------
File System Type: Ext3
Volume Name: 
Volume ID: 55f194950a16ddbea442945b3359882c

Last Written at: Sat Jan  1 12:00:00 2005
Last Checked at: Sat Jan  1 12:00:00 2005

Last Mounted at: emptyUnmounted properly
Last mounted on: 

Source OS: Linux
Dynamic Structure
Compat Features: Journal, Ext Attributes, Resize Inode, Dir Index
InCompat Features: Filetype, 
Read Only Compat Features: Sparse Super, Has Large Files, 

Journal ID: 00
Journal Inode: 8

METADATA INFORMATION
--------------------------------------------
Inode Range: 1 - 65280
Root Directory: 2
Free Inodes: 65269

CONTENT INFORMATION
--------------------------------------------
Block Range: 0 - 261047
Block Size: 4096
Free Blocks: 252525

BLOCK GROUP INFORMATION
--------------------------------------------
Number of Block Groups: 8
Inodes per group: 8160
Blocks per group: 32768

Group: 0:
  Inode Range: 1 - 8160
  Block Range: 0 - 32767
  Layout:
    Super Block: 0 - 0
    Group Descriptor Table: 1 - 1
    Data bitmap: 65 - 65
    Inode bitmap: 81 - 81
    Inode Table: 97 - 606
    Data Blocks: 607 - 32767
  Free Inodes: 8149 (99%)
  Free Blocks: 28601 (87%)
  Total Directories: 2

Group: 1:
  Inode Range: 8161 - 16320
  Block Range: 32768 - 65535
  Layout:
    Super Block: 32768 - 32768
    Group Descriptor Table: 32769 - 32769
    Data bitmap: 66 - 66
    Inode bitmap: 82 - 82
    Inode Table: 607 - 1116
    Data Blocks: 1117 - 65535
  Free Inodes: 8160 (100%)
  Free Blocks: 32703 (99%)
  Total Directories: 0

...(省略)

Group: 7:
  Inode Range: 57121 - 65280
  Block Range: 229376 - 261047
  Layout:
    Super Block: 229376 - 229376
    Group Descriptor Table: 229377 - 229377
    Data bitmap: 72 - 72
    Inode bitmap: 88 - 88
    Inode Table: 3667 - 4176
    Data Blocks: 4177 - 261047
  Free Inodes: 8160 (100%)
  Free Blocks: 31607 (99%)
  Total Directories: 0

[autopsy上の参照]

実際にsleuthkit+autopsyでext4のイメージを扱ってみました。上がext3, 下が
ext4のイメージです。

図ではともにLinEn_61.zipファイルのコンテンツを表示していますが、ext4では0x00と
なり正しく表示できていない(パースできていない)ことがわかります。これはおそらく
エクステントによる拡張が原因と思われます。また、確証は得られていませんが削除処理は
ext3と同様にメタデータコンテンツのリンク情報は失われてしまうようです。


[商用フォレンジック系ソフトの対応状況(2009/05)]

現状のフォレンジックソフトの対応状況ですが、X-Waysはサポートしているとの
明記があります。

X-Ways Forensics 13.9
http://www.x-ways.net/cgi-bin/discus/show.cgi?tpc=1&post=10256

EnCase, FTKなどは特に書かれていないのでまだサポートされていないと
思われます。ということで現状はExt4のフォレンジック調査は有償ソフトも
含めて厳しいということになります。


[参考情報]

ext4の徹底調査
https://www.ibm.com/developerworks/jp/linux/library/l-anatomy-ext4/

Ext4
http://kernelnewbies.org/Ext4

ext4 (wikipedia)
http://ja.wikipedia.org/wiki/Ext4

Ext4 Howto
http://ext4.wiki.kernel.org/index.php/Ext4_Howto

コメント

I agree with the post above and I will grab more information from google google