重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

mke2fs の「-i」オプションの意味がよくわかりません。
調べてみるとiノードあたりのバイト数を指定するとの事ですが、これはどういう意味なのでしょうか。

# mke2fs -b 1024 -i 4096 /dev/hda1
この場合、ブロックサイズを1024バイトにしているのはわかるのですが、iノードのブロックサイズが4096バイトという事でしょうか。

A 回答 (3件)

まず



ブロックサイズとは
HDDやUSBなどの媒体に電子データ(ファイルやディレクトリ)を保存する場合に存在するファイルサイズ毎割り当てれます。
基本1024バイトですが1024バイトを超えると次の1ブロックを生成します。

iノードとは
ファイルやディレクトリに設定されているパーミッションやグループ属性、ファイルサイズ、更新日時などを管理する領域(属性)などを指す。
iノードの領域はディスクパーティションによって決定する。
※容量を増やしたり減らしたり出来ません。

以下のコマンドで確認できる様にiノードはファイル数が多いパーティションのiノード占有率は高いです。(占有率はちょっと違う言い方かも・・・)
# df -i



また
# mke2fs -b 1024 -i 4096 /dev/hda1
この場合のhda1パーティションには4ブロックサイズで1ノードとなり
# ls -i
で確認した時同一のiノード番号を示すファイルも存在し得ます。

この回答への補足

返信ありがとうございます。
># ls -i
>で確認した時同一のiノード番号を示すファイルも存在し得ます。
同じ番号で管理できるのであれば 「-i 8192」 のように一つのiノードで管理できるブロック数を増やした方がファイルシステムを多く使用できると思うのですが、この部分を小さくする事に意味があるのでしょうか。

補足日時:2009/01/20 13:13
    • good
    • 0

iノードを8192単位などに設定しておくも4096単位で使うもその人の自由です。



しかしながらiノードの領域はファイルシステム作成時に決定しています。
1つのiノードに対して8ブロックサイズでは1ノードのバイト数は当然大きくなります。

事前に配置するファイルサイズを知っている場合はiノード単位を変更しておくのはアリですね。


例えば
大量なログやメールスプールデータなどの様に
少量のファイルが多数ある場合は4ブロックサイズ当たりが適当です。

大量の動画ファイルやDVD用ISOイメージファイルなど
巨大なファイルが多数ある場合は8ブロックや16ブロック単位で
iノードを割り当てるのもアリですが
iノードを変更するよりも、ブロックサイズを変更する方が有意義かも知れませんね。

これらの設定は一概に『これが正しい』とは言えません
あくまでも例です。
    • good
    • 0

4096バイトに対し1 inodeです


その場合は4ブロックを1つのinodeで管理します

inode自体のサイズ指定は-Iというアンドキュメンテッドオプションがあります

この回答への補足

返信ありがとうございます。

# mke2fs -b 1024 -i 4096 /dev/hda1
このコマンドだとブロックサイズを1024バイト、4096バイトに対して1つのiノードで管理するという事になると思います。
このブロックサイズはこのディスクのファイルシステム全てに適応されるのでしょうか。
データブロックだけでなくスーパーブロックやiノードブロックも1ブロック1024バイトという認識でいいのでしょうか。

また、一つのiノードのサイズは128バイトなので1ブロック1024バイトだと1ブロックに8つのiノードが格納されますが、
一つのiノードで4096バイト(4ブロック)を管理するという事は一つのiノードブロックで32ブロックのデータブロックが管理できる
という認識でよろしいのでしょうか。

お手数ですがわかる範囲で教えて頂けると助かります。

補足日時:2009/01/19 22:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!