UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

ファイルシステムが壊れた時のfsck 〜Windowsのchkdsk〜


ファイルシステムが壊れた時のfsck

〜Windowsのchkdsk〜


0.更新履歴

  • 2001.02.07 新規作成

1.はじめに

 このドキュメントは,Solaris2.6上でOracleが稼動しているマシンが不用意にOSがダウンしてしまい,Oracleを格納していたディスクが壊れてマウントできなくなった時,fsckコマンドを使って修復した記録を記述するものである.

2.修復ログ

 次の様に,mountしようとしたら壊れているのでダメといわれたので,fsckを実行した.

# mount /oracle
mount: the state of /dev/dsk/c3t0d0s0 is not okay
        and it was attempted to be mounted read/write
mount: Please run fsck and try again
# fsck /dev/rdsk/c3t0d0s0
** /dev/rdsk/c3t0d0s0
** Last Mounted on /oracle
** Phase 1 - Check Blocks and Sizes
INCORRECT BLOCK COUNT I=842705 (432016 should be 426400)
CORRECT? y

PARTIALLY TRUNCATED INODE I=842708
SALVAGE? y

PARTIALLY TRUNCATED INODE I=842709
SALVAGE? y

** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
FREE BLK COUNT(S) WRONG IN SUPERBLK
SALVAGE? y

14501 files, 29031231 used, 111403031 free (5407 frags, 13924703 blocks,  0.0% fragmentation)

***** FILE SYSTEM WAS MODIFIED *****
#

3.fsckが行う処理

 ログのとおり,fsckはいくつかのフェーズでディスクのチェックを行っている. 以下の表に,書くフェーズで行っている内容について説明する.

フェーズ 内容
Phase 1 Check Block and Sizes
 不良または重複するブロックを検査する.そのinodeを表示している.
Phase 2 Check Pathnames
 iノードテーブルが示すパスをチェックする. ファイルを構成するiノードが全部生きているかとか. 不良なiノードがあれば,それを削除する.
 ディレクトリ情報の整合性チェック.
Phase 3 Check Connectivity
 参照されないディレクトリのチェック.
 lost+foundディレクトリのチェック.
Phase 4 Check Reference Counts
 参照されないファイルのチェック.
 不良・重複ブロックのチェック.
 空きinode数のチェック
Phase 5 Check Cyl groups
 inodeマップ中の利用済みinodeの消滅しているinodeの有無チェック.
 フリーブロック総数チェック.

4.パラメータ

パラメータ 動作内容
-A
 全てのファイルシステムのチェックを行う.
-R
 ルートディレクトリ以外のファイルシステムのチェック.
-N
 実際には実行しないが,実行内容の表示を行う.
-t fstype
 ファイルシステムを指定する.
-y  全ての問い合わせにyesと回答する.

 fsckでは,ディスクの検査と修正を行う. 異常個所を見つけると,前述のサンプルのようにSalvage?とたずねてくるが,yesしか回答しようがない. これを自動的にyesと回答するために,-yオプションを用いることができる.

 ただし,サルベージしても絶対修正できるという保証は無いらしく,逆にファイルシステムをクラッシュさせてしまうこともあるようである.



広告スペース
Google