ディスクの健康診断と修復(smartctl・fsck)
ディスクにも人間ドックのような自己診断があり、それがS.M.A.R.T.です。smartctlコマンドで代替セクタ数や残り寿命の兆候を読み取れます。一方fsckは、ファイルシステムそのものの整合性を検査し壊れを直す道具です。ここでは日頃の健康チェックの見方と、壊れたときの直し方、そして「直すより買い替えが正解」な場面の見極め方まで扱います。
パソコンやサーバーが急に不安定になったとき、真っ先に疑うべき場所の一つがディスクだ。ディスクにも人間ドックのような自己診断機能があり、それがS.M.A.R.T.(スマート)と呼ばれる仕組みになる。
S.M.A.R.T.は、ディスク自身が内部で記録している健康状態の指標だ。これを読み取るためのコマンドがsmartctlになる。壊れる前の「兆候」をつかめるのが最大の価値だ。
🩺 smartctlで健康状態を見る
現在の健康状態の全体像を見るには smartctl -a を使う。-a はallの略で、対応している全項目をまとめて表示させる指定だ。
一番上の overall-health self-assessment test result が PASSED であれば、ディスクは自己診断上は正常と判断している状態だ。ここがFAILEDになっていたら、それだけで即座に対応を検討すべきサインになる。
🔍 見るべき項目はここ
全項目を細かく覚える必要はない。まず注目すべきは代替セクタ系の2つの項目だ。
Reallocated_Sector_Ct(代替処理済みセクタ数)は、読み書きに失敗して既に別の場所へ肩代わりさせたセクタの数を表す。Current_Pending_Sector(保留中の不良セクタ数)は、読み込みに失敗していて今後代替されるかもしれない候補の数だ。
Power_On_Hours(累計稼働時間)も併せて見ておくとよい。ディスクにも寿命の目安があるため、稼働時間が長いディスクほど、他の項目の変化にも敏感になっておく価値がある。
より踏み込んで調べたいときは、smartctl -t short でディスクに短時間の自己テストを実行させることもできる。数分後に結果がログへ記録され、-a で改めて確認できる。
🩹 fsckでファイルシステムを修復する
smartctlが見るのは「ディスクという物理装置」の健康状態だった。一方fsck(file system checkの略)が見るのは、その上に載っているファイルシステムの整合性だ。
突然の電源断や異常終了の後、ファイルシステム内部の管理情報(どのブロックがどのファイルに属しているか等)に矛盾が生じることがある。fsckはこの矛盾を検査し、可能な範囲で修復してくれる。
clean と表示されれば矛盾は見つからなかったということだ。矛盾が見つかった場合は、修復してよいかを1件ずつ尋ねられることが多く、-y を付けるとすべて自動でyesとして進められる。
🚫 鉄則: マウント中のディスクにfsckをかけない
fsckを使ううえで絶対に守るべき鉄則が一つある。検査・修復の対象にするディスクは、事前にumountでアンマウントしておくということだ。
マウントされたまま、つまりOSが読み書きし続けている最中のファイルシステムにfsckをかけると、fsckが見ている情報とOSが今まさに書き換えている情報が食い違い、かえってデータを壊しかねない。
🔄 交換が正解な場面を見極める
smartctlで代替セクタが増え続けている、fsckをかけても同じ場所のエラーが繰り返し検出される。こういうサインが出始めたディスクに対しては、延命よりも交換を選ぶのが実務での正解になることが多い。
S.M.A.R.T.で日頃から兆候をつかみ、fsckで整合性を保ちつつ、危ないサインが続くディスクは潔く交換する。この3つの組み合わせが、実務でデータを守るための基本姿勢になる。