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 Squareフォーラム Linux Tipsカテゴリ別インデックス |
Linux & OSS 記事ランキング
本日
月間