ファイルシステムの管理(tune2fs)|-c/-i/-m/-L/-jオプションとdumpe2fs突合の実機手順

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > ファイルシステムの管理(tune2fs)|-c/-i/-m/-L/-jオプションとdumpe2fs突合の実機手順

この記事のポイント

・tune2fsはext2/ext3/ext4ファイルシステムのパラメータを変更する管理コマンド
・-c/-i/-m/-l/-L/-jの6オプションがファイルシステム管理の基本セット
・dumpe2fsで現状値を確認→tune2fsで変更→再度dumpe2fsで反映確認の3手順型
・XFS/Btrfsには使えないext系専用、マウント中変更可だがfsck系は要アンマウント

tune2fsコマンドは、ext2ファイルシステムの様々なパラメータを設定する時に使用します。 例えば、ファイルシステムをfsckコマンドでチェックする間隔を指定出来ます。 「サーバー起動時に勝手にfsckが走って起動が遅い」「ファイルシステムのラベル名を後から付けたい」「ext2をext3にジャーナル化したい」と感じたことがあれば、tune2fsコマンドが解決の鍵になります。本記事ではtune2fsで使う主要オプション、dumpe2fsとの組み合わせ、ext2/ext3/ext4の各バージョンに対する注意点を、実機ログを交えながら整理します。 --------------------------------- tune2fs (オプション) デバイス名 --------------------------------- tune2fsコマンドのオプション -c 回数 チェックなしでマウント出来る最大回数を指定する -i 時間 ファイルシステムをチェックする最大の時間間隔を指定する -j ext2fファイルシステムをext3ファイルシステムに変換する -L ファイルシステムのボリュームラベルを設定する dumpe2fsコマンドを使用すると、 ファイルステムの各種情報を表示することができます。 ----------------------------------------------------------------- [root@Tiger ~]# dumpe2fs /dev/sda1 dumpe2fs 1.41.12 (17-May-2010) Filesystem volume name: Last mounted on: /boot Filesystem UUID: 23e62e1b-08dd-4dc6-9f61-23abaff30569 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 128016 Block count: 512000 Reserved block count: 25600 Free blocks: 464634 Free inodes: 127978 First block: 1 Block size: 1024 Fragment size: 1024 Reserved GDT blocks: 256 Blocks per group: 8192 Fragments per group: 8192 Inodes per group: 2032 Inode blocks per group: 254 Flex block group size: 16 Filesystem created: Sat Aug 18 18:17:36 2012 Last mount time: Fri Feb 22 08:11:15 2013 Last write time: Fri Feb 22 08:11:15 2013 Mount count: 60 Maximum mount count: -1 Last checked: Sat Aug 18 18:17:36 2012 Check interval: 0 () Lifetime writes: 45 MB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: dcd2eb7b-48d3-4415-92c4-105f6b09eb8e Journal backup: inode blocks Journal features: (none) Journal size: 8M Journal length: 8192 Journal sequence: 0x0000001e Journal start: 0 Group 0: (Blocks 1-8192) [ITABLE_ZEROED] Checksum 0x11e8, unused inodes 2015 Primary superblock at 1, Group descriptors at 2-3 Reserved GDT blocks at 4-259 Block bitmap at 260 (+259), Inode bitmap at 276 (+275) Inode table at 292-545 (+291) 3820 free blocks, 2015 free inodes, 2 directories, 2015 unused inodes Free blocks: 4373-8192 Free inodes: 18-2032 (以下省略) -----------------------------------------------------------------
「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

tune2fsでファイルシステムを管理する基本構文と用途

tune2fsの基本構文は「tune2fs (オプション) デバイス名」のシンプルな形です。マウント中のファイルシステムにも一部オプションは適用可能ですが、整合性が必要な変更(特にスーパーブロック書き換え)はアンマウントしてから実行する方が安全です。

tune2fsで管理できる主要な項目は以下の通りです。

・fsck自動チェックの間隔(回数/時間)
・予約ブロック率(ファイルシステム空き容量の確保割合)
・ボリュームラベル/UUID
・ジャーナル機能の追加・除去
・デフォルトマウントオプション
・エラー発生時の挙動(continue/remount-ro/panic)

ファイルシステムの作成自体はmkfs.ext4で行いますが、運用中に挙動を微調整したいときの「後付け設定」がtune2fsの役割です。

tune2fsで使う主要オプションをファイルシステム管理用途別に整理する

ファイルシステム管理でよく使うtune2fsのオプションを、用途別に一覧化します。
オプション役割用途
-c 回数最大マウント回数(この回数を越えるとfsck)起動時の自動fsck制御
-i 時間最大チェック時間間隔(例: 6m=6か月)定期fsckのスケジュール調整
-m 割合予約ブロック割合(%)root専用領域の予約縮小(データ用FSなら1%)
-lスーパーブロック情報を一覧表示tune2fs自身での現状値確認
-L ラベルボリュームラベル設定(16文字以内)/etc/fstabでLABEL=指定するため
-U UUIDUUIDを変更/再生成(randomで自動採番)dd複製ディスクでUUID衝突解消
-jジャーナル追加(ext2→ext3化)既存ext2をジャーナル化
-O ^has_journalジャーナル削除(ext3→ext2化)SSD向けに書き込み削減
-O ^huge_file機能フラグのON/OFF(^で除去)互換性回復・機能変更
-e 動作エラー時挙動(continue/remount-ro/panic)障害時の自動切替制御
-T 日付最終チェック日時を上書きfsckタイマー強制リセット
-o オプションデフォルトマウントオプション設定acl/user_xattrを既定有効化
これら12オプションを抑えておけば、tune2fsを使ったファイルシステム管理は実務で困らないレベルになります。

tune2fsでファイルシステムの自動fsck間隔を管理する(-c/-i)

長期間稼働するサーバーで起動時に突然fsckが走り、数分〜数十分の停止になるケースを避けるには、-cと-iでfsck間隔をコントロールします。

マウント回数による自動fsckを無効化する

[root@Tiger ~]# tune2fs -c 0 /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1
-c 0で「マウント回数による自動チェックを行わない」設定になります。dumpe2fsの結果で先ほどMaximum mount count: -1 が出ていたのは、この設定が適用されているからです。

時間間隔による自動fsckを無効化する

[root@Tiger ~]# tune2fs -i 0 /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Setting interval between checks to 0 seconds
-i 0で「時間ベースの自動チェックを無効化」できます。-c 0と-i 0を両方適用すれば、運用者の判断で任意のタイミングだけfsckを実行する運用に切り替えできます。

逆に間隔を厳しく管理したい場合

[root@Tiger ~]# tune2fs -c 30 -i 1m /dev/sda1
「マウント30回ごと、または1か月に1回」のいずれか早いタイミングでfsck実行という設定になります。-iの時間単位はd(日)/w(週)/m(月)です。

tune2fsでext2をext3にジャーナル化する管理操作(-j)

ext2は古くて軽量ですが、ジャーナルが無いため不意の停電・電源断でファイルシステムが壊れやすい欠点があります。-jオプションを使うと、既存のext2ファイルシステムを破壊せずにext3へ変換できます。

ext2をext3に変換する

[root@Tiger ~]# umount /dev/sdb1
[root@Tiger ~]# tune2fs -j /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Creating journal inode: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
journalが追加されたら、/etc/fstabのファイルシステムタイプ欄をext2からext3に書き換えて再マウントします。

ext3からジャーナルを削除してext2に戻す

[root@Tiger ~]# umount /dev/sdb1
[root@Tiger ~]# tune2fs -O ^has_journal /dev/sdb1
SSDで書き込み量を抑えたい・組み込み機器でジャーナル不要な場合に使います。/etc/fstabのファイルシステムタイプもext2に戻す必要があります。

tune2fsでファイルシステムのラベルとUUIDを管理する(-L/-U)

複数ディスクを扱うサーバーでは、デバイス名(/dev/sda1)よりLABEL/UUIDでマウントする方が安全です。tune2fsは既存ファイルシステムのラベル・UUIDを後から設定・変更できます。

ボリュームラベルを設定する

[root@Tiger ~]# tune2fs -L DATA01 /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
dumpe2fsで再確認するとFilesystem volume nameがDATA01に変わっています。/etc/fstabでLABEL=DATA01 /data ext4 defaults 0 2のように記述できます。

UUIDを再生成して衝突を回避する

ddやpartcloneで複製したディスクは元と同じUUIDになり、同時マウントするとカーネルが混乱します。
[root@Tiger ~]# tune2fs -U random /dev/sdb1
[root@Tiger ~]# blkid /dev/sdb1
/dev/sdb1: UUID="新しいUUID" TYPE="ext4"
-U randomで自動採番、-U clearでUUIDクリア、特定値を指定したい場合は-U xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxの形式でも指定できます。

tune2fsで予約ブロックとデフォルトオプションを管理する(-m/-o)

ext系ファイルシステムは作成時に「rootだけが使える予約ブロック」を5%確保します。データ専用ボリュームでは無駄になるため-mで縮小します。

予約ブロック率を1%に下げる

[root@Tiger ~]# tune2fs -m 1 /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks percentage to 1% (5120 blocks)
5%→1%へ下げるだけで、1TBディスクなら40GB近く実用領域が増えます。OS本体/パッケージ管理パスでは推奨されません(5%維持推奨)。

デフォルトマウントオプションを設定する

[root@Tiger ~]# tune2fs -o acl,user_xattr /dev/sdb1
これでfstab記述なしでもaclとuser_xattrが自動で有効になります。dumpe2fsのDefault mount optionsがuser_xattr aclになっているのは、この設定によるものです。

tune2fsとdumpe2fsを組み合わせるファイルシステム管理の手順

tune2fsで変更を行う際は、「変更前確認→変更→変更後確認」の3手順を徹底すると事故が減ります。

1. 変更前の現状値を確認する

[root@Tiger ~]# dumpe2fs -h /dev/sda1 | grep -E "Mount count|Maximum|Last|Reserved"
-hで超詳細ヘッダだけ出力、grepで関心のある項目に絞ります。

2. tune2fsで変更を適用する

[root@Tiger ~]# tune2fs -c 0 -i 0 -m 1 -L DATA01 /dev/sda1
複数オプションを1コマンドで連結指定可能です。

3. 変更後の値を再確認する

[root@Tiger ~]# tune2fs -l /dev/sda1 | grep -E "Maximum|Check interval|Reserved|volume name"
dumpe2fs -hでもtune2fs -lでも同等の現状値が確認できます。

tune2fs管理の注意点とよくあるトラブル対処

マウント中に使えないオプション

ジャーナル追加(-j)、ジャーナル削除(-O ^has_journal)、UUID変更(-U)はマウント中に実行するとtune2fs: MMP block has been read with errorのようなエラーで弾かれます。umount → tune2fs → mountの順で実行してください。

XFS/Btrfsには使えない

tune2fsはext2/ext3/ext4専用です。XFSはxfs_admin、Btrfsはbtrfs filesystemサブコマンドが対応コマンドになります。RHEL8以降のデフォルトはXFSなのでtune2fs対象外です。

fsck強制実行のトリガー

症状対処
起動が遅くなる、fsckが毎回走るtune2fs -c 0 -i 0で自動チェック無効化
UUID重複でマウント不能tune2fs -U randomで再生成
空き容量が足りない(df -h)tune2fs -m 1で予約縮小
障害時に勝手にread-only化されるtune2fs -e continueで切替
XFSなのにtune2fsで弾かれるxfs_adminを使う

変更前にバックアップを取る

スーパーブロック書き換えに失敗するとファイルシステムごとマウント不能になります。重要データを置くディスクへの-j/-O系操作は、必ずdd/rsyncで論理バックアップを取った上で実行してください。

tune2fsによるファイルシステム管理に関するよくある質問

Q. tune2fsはext4でも使えますか

A. ext2/ext3/ext4のいずれにも使えます。ext4には64bit/huge_file/extent等のフラグがあり、tune2fs -O ^機能名で個別にON/OFF可能です。

Q. -c 0 -i 0でfsckを無効化したらファイルシステムの整合性は誰がチェックしますか

A. 自動チェックは止まりますが、運用者がfsck -fを定期実行する責任を負う形になります。SLAが高いシステムでは「メンテナンス窓のときだけfsck」運用に切り替える前提でtune2fs -c 0を使うと安全です。

Q. tune2fs -j(ext3化)の最中に電源断したらどうなりますか

A. ジャーナルinode作成は数秒で終わる短い処理ですが、それでも電源断するとファイルシステムが壊れる可能性があります。-j実行前にdd if=/dev/sdb1 of=backup.imgでフルバックアップを取るのが鉄則です。

Q. tune2fsで変更したラベルがfstabのLABEL=指定に反映されません

A. tune2fs -Lで変更したラベルはblkidキャッシュには即反映されないことがあります。blkid -gでキャッシュクリアまたはudevadm trigger --action=changeで再認識させてください。

Q. -m 1でroot予約を縮めるとシステムに悪影響はありますか

A. ///varなどシステム本体のFSはroot予約5%を残してください。/data//backupなどデータ専用FSなら-m 1や-m 0でも問題ありません。root予約はディスク満杯時にrootユーザーが緊急対応するための余地です。

本記事のまとめ

用途tune2fsコマンド例
自動fsck無効化tune2fs -c 0 -i 0 /dev/sda1
ext2→ext3ジャーナル化tune2fs -j /dev/sdb1
ジャーナル削除tune2fs -O ^has_journal /dev/sdb1
ラベル設定tune2fs -L DATA01 /dev/sdb1
UUID再生成tune2fs -U random /dev/sdb1
予約ブロック縮小tune2fs -m 1 /dev/sdb1
現状確認tune2fs -l /dev/sda1/dumpe2fs -h /dev/sda1
XFSの場合tune2fs不可、xfs_adminを使用
tune2fsによるファイルシステムの管理は、ext2/ext3/ext4の運用において「後から効くチューニング」を可能にする強力な手段です。dumpe2fsで現状を読み、tune2fsで変更し、再度dumpe2fsで反映を確認する3手順型を徹底すると、fsck事故・UUID衝突・空き容量逼迫などのトラブルを未然に防げます。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。