システムハードディスク換装完了
とりあえず復旧までこぎつけた。
3GBのディスクが逝ったので、昔とあるrubyistから譲ってもらった10GBのディスクを使う。何年も使われずに押し入れで眠っていたけれど、捨てなくてよかったと思った瞬間だ。壊れるまで数年ほど頑張ってもらって、その間に起動方法を考えないといけない。
$ sudo hdparm -I /dev/hda /dev/hda: ATA device, with non-removable media Model Number: IBM-DTTA-351010 Serial Number: WF0WFFB0996 Firmware Revision: T56OA73A Standards: Used: ATA/ATAPI-4 T13 1153D revision 17 Supported: 4 3 2 1 Configuration: Logical max current cylinders 16383 16383 heads 15 15 sectors/track 63 63 -- CHS current addressable sectors: 15481935 LBA user addressable sectors: 19807200 device size with M = 1024*1024: 9671 MBytes device size with M = 1000*1000: 10141 MBytes (10 GB) Capabilities: LBA, IORDY(can be disabled) Buffer size: 466.0kB bytes avail on r/w long: 34 Queue depth: 32 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 16 Current = 0 DMA: sdma0 sdma1 sdma2 mdma0 mdma1 mdma2 udma0 udma1 *udma2 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=240ns IORDY flow control=120ns Commands/features: Enabled Supported: * NOP cmd * READ BUFFER cmd * WRITE BUFFER cmd * Host Protected Area feature set Release interrupt * Look-ahead * Write cache * Power Management feature set Security Mode feature set * SMART feature set * READ/WRITE DMA QUEUED Security: supported not enabled not locked frozen not expired: security count not supported: enhanced erase 22min for SECURITY ERASE UNIT.
今回のシステムクラッシュは痛かった。旧ディスクはまだまだやれると思えるほど元気そうに見えたが、実は老体に鞭打ってたのだ。頑張ってきたのだが、悲鳴(異常音)を発することなく突然逝ってしまった。
だけどよく考えたら兆候はあった。パーティションテーブルがいかれてると何度も言われた。mksquashfsでシステムをバックアップとっていたときに、必ずmemory corruptionを起こしてた。昨日ふとsyslogを見てみたらI/O errorが起きていた。
その後、崩壊は一気に加速していった。tarがgzipがmountが…次々と/binのコマンドが読めなくなってしまった。DVD-RAMにsquashfsでシステムをバックアップしているからそこにアクセスしようにもmountが使えなくては意味がない!まさに缶詰のなかに缶切りがある状況だ。
幸いシステムディスクとデータディスクを分けているため、当然のことながら/homeなどのデータにはまったく影響しない。システムとデータ同時に壊れるわけではないので精神衛生上よい!だからこそ小容量ディスクをシステムディスクに使いたいのだ。
これまた幸い数年前にSystemRescueCdを焼いていたから使ってみた。復旧中うかつにも/binを移動させてしまったためシステムが動作しなくなったとき、こいつに助けられた。ただ、バージョンが古いのでsquashfsには対応していなかった。最新版の0.4.0ではsquashfs対応なのでいざディスクがぶっこわれてもSystemRescueCdから復旧できるだろう。
今回はシステムのディスクがやられたので再度Debian GNU/Linuxをインストールすることにした。昔DebianインストーラのCDを作成した気がするのだが、見付からなかったので、Debian -- Network install from a minimal CDからISOイメージをダウンロードしてCDに焼いた。そして最小構成でインストール。このインストールの目的はあくまでカーネルとMBRの設定だからだ。/binなどのシステムはDVD-RAMに毎週バックアップしているので、書き戻せばいいからだ。
書き戻したら、なんとかシステムは復旧した。ふぅ…
今回のクラッシュ→再インストールでliloからgrubに乗り換えられた。aptでカーネルをインストールしたらgrubの設定も自動でやってくれるので乗り換える価値はある。だって楽だから。
今回のクラッシュでリストアのしやすさが大切だと思い知らされた。バックアップを取っているつもりでもリストアに苦労しているようではだめだ。復旧「できる」のはシステム管理者として当たり前であり、少しでも短時間で復旧できないといけないのだ。盲点だったのは手持ちのSystemRescueCdのバージョンが古すぎてsquashfsに対応していないことだった!squashfsに対応していれば、LinuxをインストールしたらすぐにSystemRescueCdを起動してsquashfsから書き戻せばいいだけだったはず。
LinuxでDOSのsysコマンドに対応するのってなんだろうね。ディスクにカーネルを書き込んでMBRを設定するやつ…んん〜
あと、シンボリックリンクを管理するプログラムってあるかな…復旧後にシンボリックリンクを作成しわすれて悲惨なことになったので。