- ベストアンサー
mke2fs -i について
mke2fs の「-i」オプションの意味がよくわかりません。 調べてみるとiノードあたりのバイト数を指定するとの事ですが、これはどういう意味なのでしょうか。 # mke2fs -b 1024 -i 4096 /dev/hda1 この場合、ブロックサイズを1024バイトにしているのはわかるのですが、iノードのブロックサイズが4096バイトという事でしょうか。
- みんなの回答 (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ノード番号を示すファイルも存在し得ます。
その他の回答 (2)
- k_izumo
- ベストアンサー率50% (68/134)
iノードを8192単位などに設定しておくも4096単位で使うもその人の自由です。 しかしながらiノードの領域はファイルシステム作成時に決定しています。 1つのiノードに対して8ブロックサイズでは1ノードのバイト数は当然大きくなります。 事前に配置するファイルサイズを知っている場合はiノード単位を変更しておくのはアリですね。 例えば 大量なログやメールスプールデータなどの様に 少量のファイルが多数ある場合は4ブロックサイズ当たりが適当です。 大量の動画ファイルやDVD用ISOイメージファイルなど 巨大なファイルが多数ある場合は8ブロックや16ブロック単位で iノードを割り当てるのもアリですが iノードを変更するよりも、ブロックサイズを変更する方が有意義かも知れませんね。 これらの設定は一概に『これが正しい』とは言えません あくまでも例です。
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ブロックのデータブロックが管理できる という認識でよろしいのでしょうか。 お手数ですがわかる範囲で教えて頂けると助かります。
補足
返信ありがとうございます。 ># ls -i >で確認した時同一のiノード番号を示すファイルも存在し得ます。 同じ番号で管理できるのであれば 「-i 8192」 のように一つのiノードで管理できるブロック数を増やした方がファイルシステムを多く使用できると思うのですが、この部分を小さくする事に意味があるのでしょうか。