お仕事で使っている Oracle サーバのディスクにおいて、Ext3 のジャーナルファイルが怪しくなってきたので再作成する事にしました。ジャーナルの再構築って、過去に幾度か失敗した経験があるので怖いのですが今回は無事に成功しました。備忘録として手順をまとめてみました。
お仕事で使っている Oracle サーバのディスクにおいて、Ext3 のジャーナルファイルが怪しくなってきたので再作成する事にしました。ジャーナルの再構築って、過去に幾度か失敗した経験があるので怖いのですが今回は無事に成功しました。備忘録として手順をまとめてみました。~
~
1. まず始めに Ext3 上でファイルシステムの破損状況を調査する ~
umount /dev/hda1 e2fsck -fn /dev/hda1 正常時 ~
Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/hda1: 150/4308992 files (10.7% non-contiguous), 3486771/8614848 blocks Parallelizing fsck version 1.20-WIP (17-Jan-2001)~
異常時 ~
Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Entry 'pmon_14940.trc' in /oradata/bdump (212993) has deleted/unused inode 213170. Clear? no ~
Entry 'arc0_14960.trc' in /oradata/bdump (212993) has deleted/unused inode~
213171. Clear? no~
~
Pass 3: Checking directory connectivity~
Pass 4: Checking reference counts~
Pass 5: Checking group summary information~
Block bitmap differences: -5386571 -5386572 -5386574~
Fix? no~
~
Free blocks count wrong for group #164 (14151, counted=14148).~
Fix? no~
~
Free blocks count wrong (4880041, counted=4880038).~
Fix? no~
~
Inode bitmap differences: -213170 -213171~
Fix? no~
~
Free inodes count wrong for group #13 (16195, counted=16193).~
Fix? no~
~
Free inodes count wrong (4301413, counted=4301411).~
Fix? no~
~
/dev/hda1: 7579/4308992 files (24.7% non-contiguous), 3730799/8610840 blocks~
Parallelizing fsck version 1.20-WIP (17-Jan-2001)~
~
~
~
2. 破損箇所を特定する~
~
find / -inum inode番号~
~
inode でファイルを検索して、削除しても問題がない inode かを確認する。問題があるファイルの場合もあるけど、今回はそこまで踏み込まないものとします。かなりの破損状況が確認された場合は、「nemuiDoc: あるext3復旧レポート」が参考になります。~
~
~
3. Ext3 を いったん Ext2 に戻す~
~
tune2fs -O^has_journal /dev/hda1~
~
~
4. ファイルシステムの修復を行う~
~
fsck -y /dev/hda1~
~
fsck -fn 時に出力された破損 inode に相当するファイル(find で調査した値)は~
lost+found ディレクトリに移動されます。~
~
~
5. クリーンな状態になったところで、Ext2 を Ext3 に戻す~
~
tune2fs -j /dev/hda1~
~
~
以上で、クリーンな状態のジャーナルファイルが再作成されます。こんなので効果があるかどうか分かりませんが・・・。そもそもファイルシステムが破損した場合は、ファイルシステムデバッガ debugfs を使って調査するみたいです。~
~
勉強不足で未経験ですが、下記の方法でもジャーナルファイルを無効化し、Ext2 に戻すことができるようです。~
~
~
debugfs -w /dev/hda1~
debugfs 1.32 (09-Nov-2002)~
debugfs: features -needs_recovery -has_journal~
Filesystem features: dir_index filetype sparse_super~
debugfs: quit~

1. まず始めに Ext3 上でファイルシステムの破損状況を調査する 
umount /dev/hda1 e2fsck -fn /dev/hda1 正常時 
Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/hda1: 150/4308992 files (10.7% non-contiguous), 3486771/8614848 blocks Parallelizing fsck version 1.20-WIP (17-Jan-2001)
異常時 
Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Entry 'pmon_14940.trc' in /oradata/bdump (212993) has deleted/unused inode 213170. Clear? no 
Entry 'arc0_14960.trc' in /oradata/bdump (212993) has deleted/unused inode
213171. Clear? no

Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Block bitmap differences: -5386571 -5386572 -5386574
Fix? no

Free blocks count wrong for group #164 (14151, counted=14148).
Fix? no

Free blocks count wrong (4880041, counted=4880038).
Fix? no

Inode bitmap differences: -213170 -213171
Fix? no

Free inodes count wrong for group #13 (16195, counted=16193).
Fix? no

Free inodes count wrong (4301413, counted=4301411).
Fix? no

/dev/hda1: 7579/4308992 files (24.7% non-contiguous), 3730799/8610840 blocks
Parallelizing fsck version 1.20-WIP (17-Jan-2001)



2. 破損箇所を特定する

find / -inum inode番号

inode でファイルを検索して、削除しても問題がない inode かを確認する。問題があるファイルの場合もあるけど、今回はそこまで踏み込まないものとします。かなりの破損状況が確認された場合は、「nemuiDoc: あるext3復旧レポート」が参考になります。


3. Ext3 を いったん Ext2 に戻す

tune2fs -O^has_journal /dev/hda1


4. ファイルシステムの修復を行う

fsck -y /dev/hda1

fsck -fn 時に出力された破損 inode に相当するファイル(find で調査した値)は
lost+found ディレクトリに移動されます。


5. クリーンな状態になったところで、Ext2 を Ext3 に戻す

tune2fs -j /dev/hda1


以上で、クリーンな状態のジャーナルファイルが再作成されます。こんなので効果があるかどうか分かりませんが・・・。そもそもファイルシステムが破損した場合は、ファイルシステムデバッガ debugfs を使って調査するみたいです。

勉強不足で未経験ですが、下記の方法でもジャーナルファイルを無効化し、Ext2 に戻すことができるようです。


debugfs -w /dev/hda1
debugfs 1.32 (09-Nov-2002)
debugfs: features -needs_recovery -has_journal
Filesystem features: dir_index filetype sparse_super
debugfs: quit



http://www.drk7.jp/MT/archives/000948.html


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS