Windows VISTA 用の更新プログラム KB943899 が原因で突然死したハードディスクを復旧させる方法
昨日書いた
「1/9 以降、Windows VISTA 搭載 レッツノートのハードディスクが突然死する可能性がある
」を大変多くの方に読んで頂けた。
頂いたコメントで目立ったのが、
復旧方法が万人向けではない、という点。
確かに Linux 2.6.22 以上の LiveCD を自前で調達しなければならないというのは、
よほど普段から Linux を使いこなしていない限りは難しいだろう。
というわけで、 突然死したハードディスクを復旧させる「お手軽パック」を作ってみた。 もちろん無保証である。 いかなる損害が発生しても私は何の責任も負えない、 ということに同意して頂けるかたのみに対して使用を許諾する。
まず、この zip アーカイブ をダウンロードして、 USB メモリへ展開する。 以下の例では USB メモリが「ドライブ D」になっているが、 実際の USB メモリのドライブ名で読み替えて欲しい。
D:\>dir
ドライブ D のボリューム ラベルがありません。
ボリューム シリアル番号は 0000-0000 です
D:\ のディレクトリ
2007/07/16 08:49 23,040 syslinux.exe
2008/01/18 07:33 537,844 hdparm
2007/12/25 08:07 2,411,333 initz
2007/12/24 09:50 1,423,768 linuz
2008/01/18 08:18 58 syslinux.cfg
5 個のファイル 4,396,043 バイト
0 個のディレクトリ 510,672,896 バイトの空き領域
D:\>
Windows のコマンド プロンプト にて、 D:\syslinux.exe を以下のように実行する。 もちろん、引数の「D:」は USB メモリのドライブ名で読み替える。
D:\>syslinux.exe -ma D: D:\>
これで Linux 2.6.23.12 がブート可能な USB メモリができた。 このメモリをレッツノートに差して起動する。 BIOS 設定で USB から起動可能にしておくのを忘れずに。
ハードディスクが回転しないのであるから、 以下のメッセージが表示されて止まってしまうが、
Phoenix TrustedCore(tm) NB Copyright 1985-2004 Phoenix Technologies Ltd. All Rights Reserved Copyright (C) Matsushita Electric Industrial Co.,Ltd. 2007 BIOS Version 1.00-L13 CPU = 1 Processors Detected, Cores per Processor = 2 Intel(R) Core(TM) Duo CPU U2400 @ 1.06GHz 2048MシステムRAMテスト完了。 システムBIOSがシャドウされました。 ビデオBIOSがシャドウされました。 ハードディスク0: マウスが初期化されました。 エラー 0200: ハードディスクエラーです。 0 <F2>キーを押すとセットアップを起動します。
ここで構わず <F1>キーを押すと、 USB メモリからの起動が始まる。
linux が起動すると /bin/sh が実行されてプロンプト「#」が表示されるが、 その後 USB メモリが認識されてカーネル・ログが出力される。
... PWD='/' ROOTPARM=' -o ro' TERM='linux' initrd='initz' /bin/sh: can't access tty; job control turned off # [ 31.556958] scsi 6:0:0:0: Direct-Access Multi Flash Reader 1.00 PQ: 0 ANSI: 0 [ 32.077952] sd 6:0:0:0: [sdb] 1006592 512-byte hardware sectors (515 MB) [ 32.079952] sd 6:0:0:0: [sdb] Write Protect is off [ 32.080089] sd 6:0:0:0: [sdb] Mode Sense: 03 00 00 00 [ 32.080094] sd 6:0:0:0: [sdb] Assuming drive cache: write through [ 32.085449] sd 6:0:0:0: [sdb] 1006592 512-byte hardware sectors (515 MB) [ 32.087574] sd 6:0:0:0: [sdb] Write Protect is off [ 32.087699] sd 6:0:0:0: [sdb] Mode Sense: 03 00 00 00 [ 32.087704] sd 6:0:0:0: [sdb] Assuming drive cache: write through [ 32.087830] sdb: sdb1 [ 32.090803] sd 6:0:0:0: [sdb] Attached SCSI removable disk [ 32.091527] usb-storage: device scan complete
プロンプトの後にカーネル・ログが出力されてしまっているため紛らわしいが、 Enter キーを押せばプロンプトが表示される。
このカーネル・ログでは [sdb] と表示されているが、 レッツノートに接続した USB デバイスが他にもあれば、 sdc や sdd になっているかもしれない。 その場合は、以下の sdb を sdc なり sdd なりで読み替えて欲しい。
以下のように mount コマンドを実行して、 USB メモリを /mnt へマウントする。 そして USB メモリ上の hdparm コマンドを実行してみる:
# mount -t vfat /dev/sdb1 /mnt
# /mnt/hdparm -i /dev/sda
/dev/sda:
Model=Hitachi HTS541612J9SA00 , FwRev=SBDOC70P, SerialNo= SBXXXXXXXXXXXX
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=DualPortCache, BuffSize=7516kB, MaxMultSect=16, MultSect=?16?
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=234441648
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: mode=0x80 (128) WriteCache=enabled
Drive conforms to: ATA/ATAPI-7 T13 1532D revision 1: ATA/ATAPI-2,3,4,5,6,7
* signifies the current active mode
#
以上のように、 レッツノートのハードディスク (/dev/sda) の諸元が表示されれば成功である。 以下のように hdparm を実行して「Power-Up In Standby feature」を無効にすれば、 ハードディスクの復旧が完了する。
# /mnt/hdparm -s0 /dev/sda /dev/sda: spin-up: setting power-up in standby to 0 (off) #
後は、Ctrl-Alt-Del を押すなどして再起動すれば、 ハードディスクから正常にブートする。 USB メモリを抜くのを忘れずに。
トラックバックURL
この記事へのトラックバック
この記事へのコメント
ちなみに機種はThinkPad(2007PKJ)ですが、hdparmの出力によると、
Model=Hitachi HTS541612J9SA00
と、同一のHDDの様です。
日立製ディスク & VISTA KB943899 が発症の条件でしょうか。
Power-Up In Standby 機能をサポートしていないか禁止しているハードディスクであれば当然発症しないわけで、おそらく日立以外のノート用ハードディスクは、この機能をサポートしていないから助かってるのでしょうね。
こちらはDELLのXPS M1330なのですが、KB943899をインストールすると、HDDはお亡くなりにはならないのですが、KB943899インストール>再起動>一瞬ブルースクリーン>再起動のループ状態になりました。
結局再セットアップをする羽目になりましたが・・・
ちなみにHDDはSeagateのST9160823AS(160GB)でしたので、日立製HDDのみの問題でもなさそうです。
私も同様の症状でした。
修理センターに出してKB943899が原因であると言う回答でした。
パナソニックのホームページでBIOSのupdateが出ています。
http://blog.gcd.org/archives/51128784.html
しかし、HDDを認識しなくなってはLINUXから復帰するのが妥当ですね。

仙石様 おしえてください。
>Windows のコマンド プロンプト にて、 D:\syslinux.exe を以下のように実行する。
のところで、実行すると
filetype "
と表示されて実行されません。
何か私の操作が間違っているのでしょうか?
どうかご教授下さい。
コマンドプロンプトのスクリーンショット(Alt-PSc を押して適当なお絵かきソフト(ペイント等)へペーストする)を取って、どこかに置いてもらえますでしょうか?
filesystem type "
と表示されます。
念のため、アップさせていただきました。
USB メモリをフォーマットしなおすか、あるいは別の USB メモリで試してみてはいかがでしょうか。
指示通り、フォーマット後に実行したところ無事に終了し、復旧も正常に終了しました。
ありがとうございました。

本当にありがとうございました。

プロンプト表示までは出たのですが、
(/bin/sh/ can't access tty; job control turned off
# )
USBメモリーの”カーネル・ログ”が表示されません
USBのディレクトリを調べるやり方はあるのでしょうか?
それとも、UBSメモリーのBootファイルがうまく作れていないのでしょうか?
初心者ですが
DellのInspiron 9400とSeagate ST910021ASで同じ症状となってしまい
何とか生き返らせようとやっております
よろしくお願いします
「プロンプトの後」にカーネルログが表示されるのは、
あくまでレッツノートの場合ですから... (^^;)
fdisk -l
を実行してみると、USB メモリが表示されるかもしれません。
もし何も表示されない場合は、
dmesg | grep '\[sd[a-z]\]'
などと実行して、カーネルログ中に USB メモリ関連のログが出ていないか確認してみてください。
見つからない場合は、
mount -t sysfs none /sys
cat /sys/bus/usb/devices/*/product
と実行して、接続されている USB デバイスの一覧を表示させてみると何か分かるかもしれません。表示された一覧中に USB メモリの名前が含まれているでしょうか。
fdisk -l
でUSBメモリーが表示され
/dev/sda
で認識されていました
ハードディスクも認識されましたので
hdmarm -s0
を実行しましたところ
hdmarm: invalid option --s
hdmarm: invalid option --0
と表示されました
Dell Inspiron 9400, Seagate ST910021AS の組み合わせでは
power-on in standby
はサポートされていないようです
症状が似ていましたので、早とちりしてお騒がせしました
ファイルが生きているのが確認できましたので
外付けハードディスクとしてUSB接続し、
ファイル、写真などを他のPCに無事移せました
その後、再起動やWindows Vistaの再インストールを試みていますが、
非常に動作が不安定で
stop:0X00000050
のエラーメッセージを確認できました
レジストリー関連のエラーとの事、
私の手には負えませんので、
後は、メーカーに任せることにしたいと考えております
はじめまして。
株式会社ヒットの平川と申します。
この度、仙石様の「お手軽パック」でR6起動ができました!
大変有難うございます。
一時はどうなる事かと思いましたが、無事に復旧する事が出来き感謝の限りです。
重ね重ね有難うございました。
当方もHDDもメモリもまったく同じタイプで本日発症しました。
前回購入後3カ月程度でマザーボードを交換した経緯もあり(その時は当然ながらハードディスク初期化でした)
怒り心頭でしたが、貴重なプログラムとご説明によりデータを救出することができました。
本当にありがとうございました。
そういえば、1週間前にデスクトップでも同じような症状が出てフォーマットしてしました。もしかして…。Vistaって
感謝、感激です。ありがとうございました!
はじめまして。桜と申します。本日、所有しているCF-R6が突然立ち上がらなくなり、会社にてこのページにたどり着きました。会社のWINDOWS XPにて上記内容を試みたのですが、ダウンロードしたEXEアーカイブを展開、クリックしても何の変化もありません。リナックスはさっぱりわからないので、この後どうしたらよいのか教えていただきたいと書き込みをします。
Windows XP だと、「アクセサリ」の中に「コマンド プロンプト」があると思うので、それを実行して、上述したように「syslinux.exe -ma D:」を実行するのですが、もし今まで「コマンド プロンプト」を使ったことがなければ、厳しいかもしれませんね。
内容を理解しないまま実行することは危険をともなうので、身近に詳しい人がいないのであれば、無理をせずにメーカへ修理を依頼することをお勧めします。
仙石様おはようございます。丁寧な説明をありがとうございました。一応、コマンドプロプントを出して実行してみようとしたのですが、”操作可能なプログラムまたはバッチファイルとして認識できません”と出ました。自宅のパソコンでやってみてもダメでしたので、修理に出すことにしました。ありがとうございました。