linuxのサーバマシンを5年以上、ほぼ電源入れっぱなしで動かしていたので、そろそろヤバイかなぁと思っていたのですが、一番壊れて欲しくないハードディスクが逝っちゃいました。
結論から言うと、vinelinuxからブログまで、全て構築し直しになりました。
今後は、ブログDBと/var/www/html以下をUSBメモリーへバックアップしようと思います。
以下に、もがき苦しんだ悪戦苦闘の様を、覚え書きのために記します。
キッカケは、大したことではありませんでした。
apacheの調子が悪かったのでリモートで再起動したのですが、その後アクセスできなくなりました。
そのときは、何かの初期化トラブルでサーバが起動できなかったんだな程度にしか考えていませんでした。
今思えばマズイことをし続けたと思うのですが、自宅へ帰っても、良く分からないまま何度も再起動を繰り返してました。
ふとエラーが気になり、ググってみて初めてハードディスクのトラブルだと分かりました。
何度も以下のエラーが続き、
end_request: I/O error, dev hda sector XXXXXX
Buffer I/O error on device hda2, logical block 1
hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=208848, high=0, low=208848, sector=208845
ide: failed opcode was: unknown
最後に 以下のエラーで凍りました。
echo: cannot open /proc/suspend2/do_resume for write: 2
Mounting root filesystem
mount: error 2 ounting ext3
Switching to new root
switchroot: mount failed: 22
Kernel panic - not syncing: Attempted to kill init!
とりあえず、起動だけしてデータを抽出するべく、方法をググって試しましたが、どれも上手くいきませんでした。
<vinelinuxをシングルモードで起動>
GRUBのOS選択画面でeキーを押す。
ブートローダーにパスワードをかけているならpキーを押してからeキー 。
カーソルキーで2行目を選んでeキー 。
スペースキーを1度押して、1キーを押してEnterキー 。
OS選択画面に戻るのでbキーで起動。
init=/bin/shと入力して起動すれば、シングルモードより手前でシェルを起動できるとのことでしたが、これも上手くいきませんでした。
<HDD Regeneratorの試用モードでHDDの修復>
1セクター直すと、主導でマシンの再起動が必要なので、時間がかかりすぎてウンザリ。
バッチ処理するスクリプトで、試用モードを連続動作させるものもあるようだが、時間がかかるのは変わらないのでパス。
製品モードは$59.95が必要なのもで、スグに買いだとは思えず、無料で直せる方法を探す。
<KNOPPIXで起動してHDDを修復>
サーバマシンのUSB-CDではCD-Rブートができず、yak版というのが過去にあったらしいが、ダウンロード先がリンク不通。
我が家の古い(2003年製)WindowsノートPCで、KNOPPIXの起動ディスクを正規の方法で作成しようとするも、「ファイル作成に失敗しました」でインストールできず。
仕方なくWindowsデスクトップPCを修復作業に当てるべく、インストールCDを作成。
起動はしたものの、ビデオケーブルがDVI経由では画像が砂嵐で起動できず、アナログRGBで接続したら起動。
でも、CD-ROM版では、OSの動作にエラく時間がかかる。。。
そこで、USBメモリ版の起動ディスク作成を試みる。
しかし、USBメモリが2GBだったためか、上手くいかない。
(ネットに載っていた方法は、USBメモリが256MBだった)
普通の作成はおろか、2GB以上のUSBメモリをFAT32でフォーマットしても、やはりダメ。
ネットで、手動でファイルをUSBなどにコピーして、起動ディスクを作成する方法を発見。
http://ryusai.hp.infoseek.co.jp/KNOPPIX_on_USB-01.htm
肝は、最後にsyslinuxのインストールを忘れないこと。
(これをしないと、うんともすんとも言わない)
これでサーバマシンを起動。
できた!!やっと起動!!
朝の6:00だよ…。(汗)
USBだけに、CD-ROM版よりは動作が早いが、CPUが800MHz相当のEPIAのため、OSの動作としてはモッサリ。
まずはfsckでHDDを回復を試みる…が、以下のエラーが出てできず。。。
Attempt to read block from filesystem resulted in short read while trying to open /dev/hda2
Could this be a zero-length partition?
2chでエラーをググると、パーティションテーブルが壊れているらしいことが分かる。
TestDiskで壊れたパーティションテーブルを修復できるらしく、KNOPPIX起動中のサーバマシンにrpm -ivh testdisk~.rpmでtestdiskをインストール。
ちなみに、testdiskの起動には端末画面が25行以上分必要。
しかし、HDDの不具合をいじるには、HDDの専門知識が必要で、失敗するとデータが全て壊れると、参考サイトに警告文が書かれており、testdiskを起動したものの見てもチンプンカンプンだったので、testdiskでの修復を断念。
e2fsck -b バックアップスーパーブロック、などの方法もあるらしいが、 良く分からずこちらも断念。
<HDD Regeneratorの製品モードでHDDの修復>
やはり、無料での修復は、かなりの専門知識が必要と感じ、HDD Regeneratorの製品版購入を決めた。
6,250円(当時)である。
先のノートPCでCD起動し、電源付けっぱなしで修復作業をささえた。
いや~製品版は、やっぱり早かったです。
ところが、HDDの壊れ具合が余ほど悪かったのか、badセクターは増える一方で、予想完了時間は天文学的な数値になっていました。
1週間は24時間付けっぱなしで粘ってみたものの、修復が終わる気配が全く無いので、旧HDDの修復は諦め、出来る範囲の手作業で修復をすることにしました。



