Linux Tips

壊れたパーティションを修復するには

北浦訓行
2005/4/21

 パーティションがクラッシュすると、Linuxの起動とは関係ないパーティションであっても以下のようなメッセージが表示されることがある。

Checking root filesystem
fsck.ext3/dev/hda5: : Bad magic number in super-block while trying to open /dev/hda5
(省略)
*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root passwrd for maintenance
(or type Control-D to continue):

 上記の場合、メッセージから/dev/hda5のファイルシステムが壊れているために起動できないことが分かる。このようなときの復旧には、KNOPPIXが便利である()。

注:この方法で必ずパーティションを復旧できというわけではない。最悪の場合を想定して、必要なデータをバックアップしてから行うべきである。

 メッセージの指示どおりに[Ctrl]+[D]を押すとシステムがリブートする。このとき、KNOPPIXのCD-ROMをドライブに入れて、KNOPPIXを起動する(KNOPPIXをコンソールモードで起動するには参照)。KNOPPIXのコンソールが起動したら、mkfs.ext3コマンドでブロックサイズ(Block size)とスーパーブロックのバックアップが保存されている場所(Superblock backups)を調べる。

# mkfs.ext3 -n /dev/hda5
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2) ←ブロックサイズ
Fragment size=4096 (log=2)
1305600 inodes, 2610554 blocks
130527 blocks (5.00%) reserved for the super user
First data block=0
80 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 2294912, 294912, 819200, 884736, 1605632 ←スーパーブロックのバックアップが保存されている場所

 次に、fsck.ext3コマンドでファイルシステムのチェックを行う。その際に、-bオプションでスーパーブロックバックアップの場所、-Bオプションでブロックサイズを指定する。

# fsck.ext3 -b 32768 -B 4096 /dev/hda5

 「Pass 1:〜」のように正常に終了すればいいが、

fsck.ext3: Bad magic number in super-block while trying to open /dev/hda5

のようにエラーが表示されるときは、-Sオプション付きでmke2fsコマンドを実行して、スーパーブロックを再作成してみる。

# mke2fs -S /dev/hda5
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1305600 inodes, 2610554 blocks
130527 blocks (5.00%) reserved for the super user
First data block=0
80 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 2294912, 294912, 819200, 884736, 1605632

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 35 mounts or 180
 days, whichever comes first.  Use tune2fs -c or -i to override.

 以上で復旧作業は終了だ。rebootコマンドでシステムを再起動して、正常に起動できるかどうかを確認する。それでも駄目なら、問題のあるパーティションを削除するしかないだろう。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間