- 796 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/29(日) 22:05:26 ID:1GEfne4W0]
- 巨大ファイルの件、わかったお。
まず、vanilla kernel 2.6.21 で、ファイルサイズを足し算している部分を探した。 linux-2.6.21/fs/isofs/inode.c の isofs_read_level3_size にある inode->i_size += isonum_733(de->size); という部分がハケーンされたお。 この size というのは、struct iso_directory_record に属してるお。 でさ、isofs_read_level3_size の level3 ってなんだろうと思ったら、 ISO9660 の level3 なんだってさ。ぐぐると、 > 一つのファイルを不連続な複数の領域に分散して書き込める「マルチエクステンド」 > 形式の使用が可能になっている。 って説明が出てきた。 で、変じゃね?と思ってた ISO を isodump に食わせて、当該ファイルをみると、 フラグが 0x80 ってなってて、Multi-Extent ビットが勃ってたお。 > Multi-Extent: If set to ONE, shall mean that this is not the final Directory Record for the file. 参考にしたのは、 - www.wikihouse.com/writing/index.php?%CD%D1%B8%EC%BD%B8#f8e3c952 - euc.jp/periphs/iso9660.ja.html#table-dirrec - linux-2.6.21/Documentation/filesystems/isofs.txt に書いてあった Ecma-119.pdf だお。 これで安心して使えるお。
|

|