仙石浩明の日記

2008年1月18日

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 メモリを抜くのを忘れずに。

Filed under: ハードウェアの認識と制御 — hiroaki_sengoku @ 09:40

27件のコメント »

  1. 当方、ThinkPad T60ですが、この症状になりまして、この方法で復旧できました。大変感謝しております。ありがとうございました。
    ちなみに機種はThinkPad(2007PKJ)ですが、hdparmの出力によると、
    Model=Hitachi HTS541612J9SA00
    と、同一のHDDの様です。

    コメント by 通りすがり — 2008年1月18日 @ 14:41

  2. レッツノート以外でも発症しているのですね。情報ありがとうございます。
    日立製ディスク & VISTA KB943899 が発症の条件でしょうか。
    Power-Up In Standby 機能をサポートしていないか禁止しているハードディスクであれば当然発症しないわけで、おそらく日立以外のノート用ハードディスクは、この機能をサポートしていないから助かってるのでしょうね。

    コメント by 仙石浩明 — 2008年1月18日 @ 16:20

  3. WindowsアップデートでHDD突然死

    R6 の HDD からサルベージしようと思って「LINUX経由でどうにかできるはず」ってことで方法調べてたら、仙石氏のサイトを発見。その内容に突然死した原因そのものずばりが書かれていて愕然。どうも逝き方が変だなだと思ってたんですが、まさかVistaのアップデートが原因で死…

    コメント by gizmo sign — 2008年1月19日 @ 03:39

  4. レッツノートR6が起動しなくなった

    午前中、ごく普通にノートPC(レッツノートR6, Vista)を使っていて、出かけるときに蓋を閉じてそのまま部屋に置いておき、お昼過ぎに帰ってきて、さて続きをしようとしたら画面が真っ暗。Windowsに戻らない。 HDDへのアクセスランプが点きっぱなしだったものの、耳を当てて…

    コメント by のらくら談義 — 2008年1月19日 @ 16:53

  5. KB943899で検索していてたどり着きました。
    こちらはDELLのXPS M1330なのですが、KB943899をインストールすると、HDDはお亡くなりにはならないのですが、KB943899インストール>再起動>一瞬ブルースクリーン>再起動のループ状態になりました。
    結局再セットアップをする羽目になりましたが・・・
    ちなみにHDDはSeagateのST9160823AS(160GB)でしたので、日立製HDDのみの問題でもなさそうです。

    コメント by ててて — 2008年1月20日 @ 21:11

  6. 仙石様
    私も同様の症状でした。
    修理センターに出してKB943899が原因であると言う回答でした。
    パナソニックのホームページでBIOSのupdateが出ています。
    http://blog.gcd.org/archives/51128784.html
    しかし、HDDを認識しなくなってはLINUXから復帰するのが妥当ですね。

    コメント by U-RON — 2008年1月21日 @ 22:07

  7. WINDOWS VISTA update KB943899でLet’s R6のHDDが逝った。

    1月11日朝、Panasonic Let’s R6のハードディスクが逝ってしまっ

    コメント by SMART_LIFE — 2008年1月21日 @ 23:09

  8. Let’s note R6 でのハードディスク不具合の原因

    やはりKB943899が原因だった。 まず、仙石氏のブログのエントリ「1/9 以

    コメント by ぽこログ — 2008年1月22日 @ 02:44

  9. BIOS アップデートにより、ハードディスクが Power-Up In Standby 状態になっていても起動できるようになった

    「1/9 以降、Windows VISTA 搭載 レッツノートのハードディスクが突然死する可能性がある」問題を解決するための BIOS が公開された。
    レッツノート (1/21):
    本BIOSの導入によって現象を回避することが可能ですが、
    詳細が判明次第、弊社Webサイトにてご報告い….

    コメント by 仙石浩明の日記 — 2008年1月22日 @ 11:02


  10. 仙石様 おしえてください。
    >Windows のコマンド プロンプト にて、 D:\syslinux.exe を以下のように実行する。
    のところで、実行すると
    filetype ”
    と表示されて実行されません。
    何か私の操作が間違っているのでしょうか?
    どうかご教授下さい。

    コメント by くる — 2008年1月22日 @ 12:14

  11. 「filetype “」がどのように表示されるのでしょう?
    コマンドプロンプトのスクリーンショット(Alt-PSc を押して適当なお絵かきソフト(ペイント等)へペーストする)を取って、どこかに置いてもらえますでしょうか?

    コメント by 仙石浩明 — 2008年1月22日 @ 15:13

  12. 失礼しました。
    filesystem type ”
    と表示されます。
    念のため、アップさせていただきました。

    コメント by くる — 2008年1月22日 @ 15:58

  13. 「filesystem type」でしたか、なるほど。なぜ ” 以降が表示されていないのかは分からないのですが、このメッセージは USB メモリが未知のフォーマットであるときに出力されます。
    USB メモリをフォーマットしなおすか、あるいは別の USB メモリで試してみてはいかがでしょうか。

    コメント by 仙石浩明 — 2008年1月22日 @ 17:10

  14. そういえば昔、ubuntuをインストールして遊んでたUSBメモリでした(^^;
    指示通り、フォーマット後に実行したところ無事に終了し、復旧も正常に終了しました。
    ありがとうございました。

    コメント by くる — 2008年1月22日 @ 19:36

  15. 本当に何とお礼を言ったらいいかわかりません。妻のPanasonic CF-R6が仙石様の「お手軽パック」で見事に生き返りました。いま米国在住なのですが、これは妻が日本で買ったパソコンなので、また日本に送り返して、きっと修理して戻ってくるまで何ヶ月もかかってHDDは初期化されて…と憂鬱になっていたところです。パソコンが死んだのも仙石様のように妻の出張初日でした。マイレッツ倶楽部からのメールにあったKB943899を検索して仙石様の記事にたどり着いたのは前に書いている方と同じです。
    本当にありがとうございました。

    コメント by 原田 浩明 (「こうめい」と読みます) — 2008年1月22日 @ 19:52

  16. 助かりました。本当にありがとうございました。

    コメント by ペンギン — 2008年1月24日 @ 11:18

  17. 同じトラブルに見舞われたため参考にさせていただきました、、が当方BIOSに入ろうにも電源押下直後に該当のエラーで、Linux起動に至りません。。たぶんデフォルトの起動オーダです。USB FDDぐらいはIDEより前なんですかね。何とかできないかやってみます。

    コメント by 社内SEの悩み — 2008年1月24日 @ 17:33

  18. はじめまして
    プロンプト表示までは出たのですが、
    (/bin/sh/ can’t access tty; job control turned off
    # )
    USBメモリーの”カーネル・ログ”が表示されません
    USBのディレクトリを調べるやり方はあるのでしょうか?
    それとも、UBSメモリーのBootファイルがうまく作れていないのでしょうか?
    初心者ですが
    DellのInspiron 9400とSeagate ST910021ASで同じ症状となってしまい
    何とか生き返らせようとやっております
    よろしくお願いします

    コメント by いちろう — 2008年1月28日 @ 13:43

  19. boot 自体は正常に行われているようです。
    「プロンプトの後」にカーネルログが表示されるのは、
    あくまでレッツノートの場合ですから… (^^;)
    fdisk -l
    を実行してみると、USB メモリが表示されるかもしれません。
    もし何も表示されない場合は、
    dmesg | grep ‘\[sd[a-z]\]’
    などと実行して、カーネルログ中に USB メモリ関連のログが出ていないか確認してみてください。
    見つからない場合は、
    mount -t sysfs none /sys
    cat /sys/bus/usb/devices/*/product
    と実行して、接続されている USB デバイスの一覧を表示させてみると何か分かるかもしれません。表示された一覧中に USB メモリの名前が含まれているでしょうか。

    コメント by 仙石浩明 — 2008年1月29日 @ 17:01

  20. ありがとうございました
    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
    のエラーメッセージを確認できました
    レジストリー関連のエラーとの事、
    私の手には負えませんので、
    後は、メーカーに任せることにしたいと考えております

    コメント by いちろう — 2008年1月30日 @ 18:29

  21. 仙石様
    はじめまして。
    株式会社ヒットの平川と申します。
    この度、仙石様の「お手軽パック」でR6起動ができました!
    大変有難うございます。
    一時はどうなる事かと思いましたが、無事に復旧する事が出来き感謝の限りです。
    重ね重ね有難うございました。

    コメント by 平川実 — 2008年1月30日 @ 23:55

  22. 仙石様
    当方もHDDもメモリもまったく同じタイプで本日発症しました。
    前回購入後3カ月程度でマザーボードを交換した経緯もあり(その時は当然ながらハードディスク初期化でした)
    怒り心頭でしたが、貴重なプログラムとご説明によりデータを救出することができました。
    本当にありがとうございました。
    そういえば、1週間前にデスクトップでも同じような症状が出てフォーマットしてしました。もしかして…。Vistaって

    コメント by P — 2008年2月1日 @ 00:25

  23. 突然ハードディスクが読み込めなくなり、途方にくれていたのですが、このサイトに書いてあったことを実行すれば万事うまく直りました☆
    感謝、感激です。ありがとうございました!

    コメント by ありがとうございました! — 2008年2月12日 @ 23:35

  24. WindowsUpDateでパソコン死亡!!(緊急)

    普段何気なく行われているWindowsUpDate…でも、それを実行することによってパソコンが起動しなくなってしまったら。。。大切な修正も含まれてはいるのでしないというわけにもいきませんし。。。あなたはどうしますか?そんなことが実際に起きているようです。問題の修正…

    コメント by こんな商品使ってみました — 2008年2月14日 @ 10:37

  25. 仙石様
    はじめまして。桜と申します。本日、所有しているCF-R6が突然立ち上がらなくなり、会社にてこのページにたどり着きました。会社のWINDOWS XPにて上記内容を試みたのですが、ダウンロードしたEXEアーカイブを展開、クリックしても何の変化もありません。リナックスはさっぱりわからないので、この後どうしたらよいのか教えていただきたいと書き込みをします。

    コメント by 桜 — 2008年2月14日 @ 11:08

  26. USBメモリに zip アーカイブを展開したところまでは OK ということでしょうか?
    Windows XP だと、「アクセサリ」の中に「コマンド プロンプト」があると思うので、それを実行して、上述したように「syslinux.exe -ma D:」を実行するのですが、もし今まで「コマンド プロンプト」を使ったことがなければ、厳しいかもしれませんね。
    内容を理解しないまま実行することは危険をともなうので、身近に詳しい人がいないのであれば、無理をせずにメーカへ修理を依頼することをお勧めします。

    コメント by 仙石浩明 — 2008年2月14日 @ 23:11

  27. 仙石様
    おはようございます。丁寧な説明をありがとうございました。一応、コマンドプロプントを出して実行してみようとしたのですが、”操作可能なプログラムまたはバッチファイルとして認識できません”と出ました。自宅のパソコンでやってみてもダメでしたので、修理に出すことにしました。ありがとうございました。

    コメント by 桜 — 2008年2月15日 @ 09:27

この投稿へのコメントの RSS フィード。

コメントする