TUNE2FS

Section: Maintenance Commands (8)
Updated: February 2012
Index Return to Main Contents
 

名前

tune2fs - ext2/ext3/ext4 ファイルシステムのパラメータを調整する  

書式

tune2fs [ -l ] [ -c max-mount-counts ] [ -e errors-behavior ] [ -f ] [ -i interval-between-checks ] [ -j ] [ -J journal-options ] [ -m reserved-blocks-percentage ] [ -o [^]mount-options[,...] ] [ -r reserved-blocks-count ] [ -s sparse-super-flag ] [ -u user ] [ -g group ] [ -C mount-count ] [ -E extended-options ] [ -L volume-name ] [ -M last-mounted-directory ] [ -O [^]feature[,...] ] [ -Q quota-options ] [ [ -T time-last-checked ] [ -U UUID ] device  

説明

システム管理者は tune2fs により Linux ext2, ext3, ext4 ファイルシステムの様々なパラメータを調整できる。現在サポートされているオプションは、tune2fs(8) プログラムの -l オプション、または dumpe2fs(8) プログラムで表示できる。

device ファイル名 (例: /dev/sda1) で指定できる。また、LABEL、UUID で "LABEL=volume-name" または "UUID=uuid" (例: LABEL=home または UUID=e40486c6-84d5-4f2f-b99c-032281799c9d) のように指定できる。  

オプション

-c max-mount-counts
e2fsck(8) がファイルシステムのチェックを行うマウント回数を設定する。 max-mount-counts が 0 または -1 の場合、 e2fsck(8) とカーネルはファイルシステムのマウント回数を考慮しない。

ジャーナリングファイルシステムを使っている場合、 ファイルシステムを強制的にチェックするマウント回数を ファイルシステムごとにちょっとずつ変えておけば、 すべてのファイルがいっぺんにまとめてチェックされるのを 避けることができる。

マウント回数に依存したチェックを完全に停止してしまうなら、 その影響を慎重に考えておくべきである。 ディスクドライブ、ケーブル、メモリの故障やカーネルのバグによって、 マークされたりエラーが出ることもなく、ファイルシステムが破壊されることもあり得る。 ファイルシステムにジャーナリング機能を使っていると、ファイルシステムに 壊れたというマークが付けられることは 絶対にない ので、 通常ジャーナリングファイルシステムはチェックされない。 この場合でも、カーネルがファイルシステムエラーを検知すれば、 次のブート時に fsck が実行されるが、 この時点ではデータ喪失を防ぐにはもう遅すぎるかもしれない。

時間に依存したチェックを行う -i オプションも参照すること。

-C mount-count
ファイルシステムがマウントされた回数を設定する。 -c オプションで設定された最大マウント回数の パラメータより大きな値が設定されると、 e2fsck(8) は次のブート時に、そのファイルシステムをチェックする。
-e error-behavior
エラーが発生した時のカーネルの挙動を変更する。 いずれにしてもファイルシステムにエラーが起こると、 次のブート時には必ず e2fsck(8) がそのファイルシステムをチェックする。 error-behavior に指定できるのは次の通り。
continue
通常の実行を継続する。
remount-ro
ファイルシステムを read-only でマウントしなおす。
panic
カーネルパニックを起こす。
-E extended-options
ファイルシステムの拡張オプションを設定する。拡張オプションはカンマ区切りで、イコール ('=') を使って引数を指定できる。以下の拡張オプションがサポートされている。
clear_mmp
(もし存在すれば) MMP ブロックをリセットして、クリーンな状態に戻す。デバイスが現在マウントされておらず、fsck されているのが確実な場合にのみ使うべきである。さもないと典型的なファイルシステムの破損が起こる可能性がある。'-f' を指定する必要がある。
mmp_update_interval=interval
MMP 更新間隔の初期値を interval 秒にする。interval を 0 に設定すると、デフォルトの更新間隔を使う。間隔は 300 秒より短くしなければならない。mmp feature を有効にしておく必要がある。
stride=stride-size
RAID アレイのファイルシステムに対して、stride-size ファイルシステムブロックに設定する。次のディスクに移動するまで、このブロック数で読み書きされ、チャンクサイズとも呼ばれる。このサイズはビットマップのようなファイルシステムメタデータの配置に影響する。mke2fs(2) の実行時にメタデータを 1 つのディスクに置くと、性能を害する可能性がある。また、このサイズはブロックアロケータでも使われる。
stripe_width=stripe-width
RAID アレイのファイルシステムに対して、1 ストライプあたりのファイルシステムブロックを stripe-width に設定する。一般的にこのサイズは、 N を RAID のデータ格納ディスクとしたとき、stride-size * N である (例えば、RAID 5 N+1、RAID 6 N+2 である)。これにより、データが書き込まれる時に、ブロックアロケータが RAID ストライプにパリティの読み込み-修正-書き込みを行うのを防止する。
hash_alg=hash-alg
ハッシュ付き b-tree ディレクトリを含む新しいファイルシステムで使われるデフォルトのハッシュアルゴリズムを設定する。指定可能なアルゴリズムは legacy, half_md4, tea である。
mount_opts=mount_option_string
ファイルシステムをマウントする際の、デフォルトのマウントオプションを設定する。-o オプションで指定されるビットマスクベースのデフォルトのマウントオプションと異なり、mount_option_string は最大 63 バイトの任意の文字列で、スーパーブロックに格納される。
ext4 ファイルシステムドライバーは、mount(8) プログラムから渡されるマウントオプションを解析する前に、最初にビットマスクベースのデフォルトオプションを適用し、次に mount_option_string を解析する。
このスーパーブロック設定は、2.6.35 以降のカーネルでのみサポートされ、ext2 と ext3 ファイルシステムドライバーではサポートされない。
test_fs
ファイルシステムスーパーブロックのフラグを設定し、ext4dev ファイルシステムのような、実験的なカーネルコードを使ってマウントするようにする。
^test_fs
test_fs フラグをクリアし、ファイルシステムを製品レベルのコードのみでマウントする。
-f
エラーが起きたときでも tune2fs に動作を完了させる。 このオプションは、外部ジャーナルを使っているファイルシステム (あるいは壊れてそう見えるようになってしまったファイルシステム) から、 外部ジャーナルが見えない場合に has_journal ファイルシステム属性を削除するのに便利である。

警告: クリーンにアンマウントされなかったファイルシステムに対して ジャーナルを一度もリプレイしないまま、 その外部ジャーナルをファイルシステムから切り離してしまうと、 重大なデータ喪失やファイルシステムの破壊をもたらすかもしれない。

-g group
予約 (reserved) ファイルシステムブロックを利用できるグループを設定する。 group パラメータには GID を数値で指定することも、グループ名を指定することもできる。 グループ名が指定された場合は、スーパーブロックに格納される前に GID の数値に変換される。
-i interval-between-checks[d|m|w]
ファイルシステムをチェックする最大の時間間隔を設定する。 数値のみ、もしくは末尾に d を付けると interval-between-checks は「日」と解釈され、 m, w はそれぞれ「月」「週」と解釈される。 0 を指定すると、時間依存のチェックはしなくなる。

-c (マウント回数に依存しない)、または -i (時間に依存しない) チェックを有効にして、ファイルシステムの定期的な e2fsck(8) でのフルチェックを有効にすることを推奨する。そうしないと、(ディスク、ケーブル、メモリの故障や、カーネルバグによる) ファイルシステムの破損が知らされず、最終的にデータの喪失や破損につながる。

-j
ext3 ジャーナルをファイルシステムに追加する。 -J オプションが指定されていない場合は、 デフォルトのジャーナルパラメータが用いられ、 (ファイルシステムのサイズに対して) 適切な大きさのジャーナルを作成してファイルシステムに格納する。 ジャーナルを実際に使用するためには、 ext3 をサポートするカーネルが必要である。
このオプションを使用して、 マウントされたファイルシステム上にジャーナルを作成すると、 不変 (immutable) ファイル .journal がファイルシステムのトップディレクトリに作成される。 これはファイルシステムがマウントされている間に ジャーナル inode を安全に作成する唯一の方法だからである。 ext3 ジャーナルは可視であるが、 ファイルシステムがマウントされている間に 削除したり修正したりするのは安全ではない。 そのためジャーナルファイルは不変にされている。 アンマウントされたファイルシステムをチェックする場合、 e2fsck(8) は自動的に .journal ファイルを可視でない予約済みジャーナル inode に移動する。 ルートファイルシステム以外の全てのファイルシステムに対して、 次のリブートサイクルで、これが自動的に当然行われるべきである。 ルートファイルシステムは read-only でマウントされるので、 この遷移を有効にするためには、 e2fsck(8) をレスキュー用フロッピーから実行しなければならない。
Debian のようないくつかのディストリビューションでは、 レスキュー用フロッピーを使って ext3 ジャーナルを ルートファイルシステムに追加する必要がないように、 /etc/fstab ファイルで ext3 ファイルシステムをルートファイルシステムに指定しておくと、 初期 RAM ディスクが使用されたときに、 initrd スクリプトが自動的に ext2 ルートファイルシステムを ext3 に変換する。
-J journal-options
デフォルトの ext3 ジャーナルパラメータを変更する。 ジャーナルオプションはコンマで区切り、引き数がある場合には 「= (イコール)」記号を使って指定する。 以下のジャーナルオプションがサポートされている:
size=journal-size
サイズ journal-size メガバイトのジャーナルを作成してファイルシステムに格納する。 ジャーナルのサイズは最低 1024 ファイルシステムブロックである (例えば、1kB のブロックを使っている場合は 1 MB、 4kB のブロックを使っている場合は 4 MB である)。 また、ファイルシステムブロックは 102,400 未満でなければならない。 ファイルシステムには、指定したサイズのジャーナルを作成するために 十分な空きスペースがなくてはならない。
device=external-journal
external-journal にあるジャーナルブロックデバイスにファイルシステムを付加する。 外部ジャーナルは、コマンド
mke2fs -O journal_dev external-journal
を使い、前もって作成されていなければならない。 external-journal は、それを使うファイルシステムと同じブロックサイズで フォーマットされていなければならない。 1 つの外部ジャーナルに複数のファイルシステムを付加することは、 (訳注: ファイルシステム自体では) サポートしているが、 Linux カーネルと e2fsck(8) は現在のところ共有外部ジャーナルをサポートしていない。
デバイス名を直接指定する代わりに、 LABEL=labelUUID=UUID という形式で external-journal を指定することもできる。 この形式では、外部ジャーナルの場所を、 ジャーナルの先頭の ext2 スーパーブロックに格納されている UUID やボリュームラベルで指定する。 ジャーナルデバイスのボリュームラベルと UUID を表示するには、 dumpe2fs(8) を使うこと。 tune2fs(8) の -L オプションも参照のこと。
ひとつのファイルシステムに対しては、 size オプションと device オプションのどちらか一方しか指定できない。
-l
このプログラムで設定可能な値を含むファイルシステムスーパーブロックの内容を表示する。
-L volume-label
ファイルシステムのボリュームラベルを設定する。 ext2 ファイルシステムラベルは最大 16 文字まで指定できる。 volume-label が 16 文字より長いと tune2fs は超過分を切捨て、警告メッセージを出力する。 ボリュームラベルは mount(8), fsck(8), /etc/fstab(5) (まだあるかも) において、 /dev/hda5 のようなブロックスペシャルデバイス名の代わりに、 LABEL=volume_label という形式で指定して使うことができる。
-m reserved-blocks-percentage
特権プロセスによって確保されるファイルシステムの割合を % で設定する。特権プロセスが使うファイルシステムブロック数を予約して、ファイルシステムの断片化を避けて、非特権プロセスがファイルシステムに書き込むのを防止して、syslogd(8) のようなシステムデーモンが正常に動き続けるのを可能にする。通常、予約ブロックのデフォルトは 5% である。
-M last-mounted-directory
ファイルシステムを最後にマウントしたディレクトリを設定する。
-o [^]mount-option[,...]
指定されたデフォルトのマウントオプションを ファイルシステムにセット/クリアする。 デフォルトのマウントオプションは、 /etc/fstab(5) または mount(8) のコマンドライン引き数で指定される マウントオプションで上書きできる。 古いカーネルは、この属性をサポートしていない。 特に 2.4.20 より前のカーネルは、 スーパーブロックにあるデフォルトのマウントオプションを ほぼ確実に無視する。
属性をコンマで区切ることにより、 1 つ以上のマウントオプションをクリア/セットできる。 キャレット文字 ('^') を前につけたマウントオプションは、 ファイルシステムのスーパーブロックからクリアされる。 前置文字のないマウントオプションと プラス文字 ('+') を前につけたマウントオプションは、 ファイルシステムに追加される。
tune2fs を使ってセット/クリアできるマウントオプションは以下の通り:
debug
このファイルシステムのデバッグコードを有効にする。
bsdgroups
新しいファイルを作成するときに、BSD の動作をエミュレートする。 新規作成されるファイルは、 自身が作成されるディレクトリのグループ ID を使う。 標準的な System V の動作をデフォルトとする。 ディレクトリに setgid ビットセットがない場合、 新規作成されたファイルはカレントプロセスの fsgid を使う。 ディレクトリに setgid ビットセットがある場合、 新規作成されたファイルは親ディレクトリのグループ ID を使い、 新規作成されたのがディレクトリならば、setgid ビットセットも設定する。
user_xattr
ユーザ固有の拡張属性を有効にする。
acl
Posix アクセス制御リスト (Access Control List) を有効にする。
uid16
32 ビットのユーザ ID とグループ ID を無効にする。 これは 16 ビットの値のみを格納したり想定したりする 古いカーネルとの相互運用のためにある。
journal_data
ジャーナリングを有効にしてファイルシステムがマウントされている場合、 (メタデータだけでなく) 全てのデータは メインのファイルシステムに書き込まれる前に ジャーナルにコミットされる。
journal_data_ordered
ジャーナリングを有効にしてファイルシステムがマウントされている場合、 メタデータがジャーナルにコミットされる前に、 全てのデータをメインのファイルシステムに強制的に直接書き込む。
journal_data_writeback
ジャーナリングを有効にしてファイルシステムがマウントされている場合、 メタデータがジャーナルにコミットされた後に、 データをメインのファイルシステムに書き込む。 これはスループットを向上させるが、 クラッシュしてジャーナルによる回復をした後で、 ファイルに古いデータが現れるのを許してしまう。
nobarrier
ジャーナルのバリア操作を無効化してファイルシステムをマウントする (このオプションは、2.6.35 以降のカーネルの ext4 ファイルシステムでのみサポートされる)。
block_validity
block_validity オプションを有効化して、ファイルシステムをマウントする。これは、ファイルシステムの読み書きの後に、追加のチェックを行う。このオプションは、inode テーブルまたはブロックグループディスクリプタのファイルシステムダメージ部分を上書きすることによるメタデータブロックの破損を防止する。これはメモリと CPU のオーバーヘッドを大きくするので、デバッグのためだけに有効化される (このオプションは、2.6.35 以降のカーネルの ext4 ファイルシステムでのみサポートされる)。
discard
discard オプションを付けてファイルシステムをマウントする。このオプションは、いくつかのストレージデバイスのドライバー (企業レベルのストレージアレイで利用可能な SSD とシンプロビジョニングドライバー) で trim/discard feature を使うようにし、削除されたファイルに紐付くブロックをストレージデバイスが他の目的に使えるようにする (このオプションは、2.6.35 以降のカーネルの ext4 ファイルシステムでのみサポートされる)。
nodelalloc
nodelalloc マウントオプションを付けてファイルシステムをマウントする。このオプションは delayed allocation feature を無効にする (このオプションは、2.6.35 以降のカーネルの ext4 ファイルシステムでのみサポートされる)。
-O [^]feature[,...]
指定したファイルシステム属性 (オプション) をセット/クリアする。 コンマで区切ることにより、 2 つ以上のファイルシステム属性をクリアまたはセットできる。 キャレット文字 ('^') を前においたファイルシステム属性は、 ファイルシステムのスーパーブロックからクリアされる。 前置文字のないファイルシステム属性と プラス文字 ('+') を前においたファイルシステム属性は、 ファイルシステムにセットされる。
tune2fs を使ってセット/クリアできるファイルシステム属性は以下の通り:
dir_index
ハッシュ B ツリーを使い、 ファイルが多いディレクトリ内での検索を高速化する。
dir_nlink
1 ディレクトリあたり 65000 より多いサブディレクトリを利用可能にする。
filetype
ディレクトリエントリにファイルタイプ情報を格納する。
flex_bg
ブロックグループのビットマップと inode テーブルを、ストレージメディアの任意の場所に置けるようにする。tune2fs は inode テーブルとアロケーションビットマップの場所を再変更せず、mke2fs(8) が新たにフォーマットされたファイルシステムを作成する際に、flex_bg を有効にされていると再変更が行われる。
has_journal
ジャーナルを使うことにより、 異常なシャットダウンが起こってもファイルシステムの一貫性を保証する。 このファイルシステム属性をセットするのは、 -j オプションを使うのと等しい。
large_file
ファイルシステムが 2GB より大きいファイルを格納できる。(最近のカーネルは、2GB より大きいファイルが作られるときに、この feature を自動的に設定する。)
resize_inode
ブロックグループディスクリプタテーブルが将来大きくなるのに備えて領域を確保する。tune2fs はこのファイルシステム feature のクリアのみをサポートしている。
mmp
複数マウント防止 (multiple mount protection, MMP) feature を有効または無効にする。MMP は、ファイルシステムが複数マウントされるのを防止し、共有ストレージ環境で役立つ。
sparse_super
大きなファイルシステム上でディスク使用量を少なくするために、 バックアップスーパーブロックの数を制限する。
uninit_bg
カーネルがビットマップと inode テーブルを初期化と、ファイルシステムの未使用 inode のハイウォーターマークの保持を可能にして、e2fsck(8) の時間を削減する。この feature を有効にした後の初めて e2fsck を実行では、完全に実行するのに時間がかかる。しかし、その後の e2fsck では、ファイルシステムの使用量に応じて、元の時間の一部で済む。
sparse_super, uninit_bg, filetype, resize_inode ファイルシステム features を設定、またはクリアした後、e2fsck(8) をファイルシステムに実行し、ファイルシステムを一貫した状態に戻さなければならない。tune2fs は、必要に応じて、システム管理者が e2fsck(8) を実行する必要がある旨のメッセージを表示する。dir_index feature を設定した後、e2fsck -D を実行し、既存のディレクトリをハッシュ付き B-tree 形式に変換する必要がある。特定のファイルシステム feature を有効にすると、その feature をサポートしていないカーネルでファイルシステムをマウントできなくなる。特に uninit_bgflex_bg feature は、ext4 ファイルシステムでのみサポートされる。
-p mmp_check_interval
MMP チェック間隔を設定した秒数にする。デフォルトは 5 秒である。
-r reserved-blocks-count
予約ファイルシステムブロックの量をブロック数で設定する。
-Q quota-options
'quota' feature をスーパーブロックに設定し、指定したクォータタイプのクォータファイルを動作させる。クォータオプションは以下の 1 つ以上を設定できる。
[^]usrquota
スーパーブロックのユーザクォータ inode を設定またはクリアする。[^]grpquota スーパーブロックのグループクォータ inode を設定またはクリアする。
-T time-last-checked
ファイルシステムが最後に e2fsck によってチェックされた時刻を設定する。 時刻は現在 (ローカル) のタイムゾーンで解釈される。 このオプションは、Logical Volume Manager を使い、 整合性の取れている状態のファイルシステムのスナップショットを取っておき、 忙しくない時間帯にそのファイルシステムがハードウェア障害などによって 壊れていないかを調べるようなスクリプトで用いると便利である。 ファイルシステムがクリーンなら、このオプションを使って オリジナルのファイルシステムの最終チェック時刻を設定すればよい。 time-last-checked の書式は、国際時刻書式に、オプションの時刻指定子を 加えたもので、YYYYMMDD[HH[MM[SS]]] である。 now というキーワードも利用でき、 この場合は最終チェック時刻は現在の時刻に設定される。
-u user
予約ファイルシステムブロックを利用できるユーザを設定する。 user は UID を数値で指定することも、ユーザ名で指定することもできる。 グループ名が指定された場合は、スーパーブロックに格納される前に UID の数値に変換される。
-U UUID
UUID (universally unique identifier: 汎システム的に他とは重ならない識別子) を UUID に設定する。 UUID はハイフンで区切られた 16 進数の列で、 "c1b9d5a2-f162-11cf-9ece-0020afc76f16" のような形式である。 UUID パラメータは以下のいずれか 1 つである:
clear
ファイルシステムの UUID をクリアする。
random
新しい UUID をランダムに生成する。
time
新しい UUID を時刻をもとに生成する。
UUID は mount(8), fsck(8), /etc/fstab(5) (まだあるかも) において、 /dev/hda1 のようなブロックスペシャルデバイス名の代わりに、 UUID=uuid という形式で指定して使うことができる。
より詳しい情報は uuidgen(8) を参照すること。 /dev/random/dev/urandom のような優れた乱数発生器がシステムに存在しない場合、 tune2fs はランダムに生成した UUID ではなく、 時刻に基づいた UUID を自動的に使用する。
 

バグ

現時点では見付かっていない。しかし、バグがないという意味ではない。  

作者

tune2fs は、Remy Card <Remy.Card@linux.org> によって作成された。 現在は Theodore Ts'o <tytso@alum.mit.edu> によってメンテナンスされている。 tune2fs は Thodre Ts'o <tytso@mit.edu> によって作成された ext2fs ライブラリを使用している。 このマニュアルは <chk@data-hh.Hanse.de> によって作成された。 時間に依存するチェックは Uwe Ohse <uwe@tirka.gun.de> によって付加された。  

入手方法

tune2fs は e2fsprogs パッケージの一部であり、 http://e2fsprogs.sourceforge.net から入手できる。  

関連項目

debugfs(8), dumpe2fs(8), e2fsck(8), mke2fs(8)


 

Index

名前
書式
説明
オプション
バグ
作者
入手方法
関連項目

This document was created by man2html, using the manual pages.
Time: 18:50:56 GMT, March 26, 2020