0 padding¶
ファイル削除すると、ext2だと行わず、ext3などのジャーナルファイルシステムだと行うそうだ。inodeはext2_fs_i.h、Directoryはext2_fs.h。ext3では、ext3_fs_i.hとext3_fs.h。これ、kernel2.4の場合。kernel 2.6.20.3だと、ext2_fs{,_i}.hがなくて、ext4_fs{,_i}.hが代わりにあった。へぇ。
0で埋めるなんて、Linuxカーネル2.6解読室にも詳解Linuxカーネル第2版 1 にも書いてないなぁ。フォレンジックスを業務でやってないとそんなの普通は知らないのでは? 2
この処理のことかな。
fs/ext3/inode.c¶
void ext3_delete_inode (struct inode * inode)
{
handle_t *handle;
truncate_inode_pages(&inode->i_data, 0);
~中略~
inode->i_size = 0;
~中略~
if (ext3_mark_inode_dirty(handle, inode))
/* If that failed, just do the required in-core inode clear. */
clear_inode(inode);
else
ext3_free_inode(handle, inode);
ext3_journal_stop(handle);
return;
no_delete:
clear_inode(inode); /* We must guarantee clearing of inode... */
}