SSD見失い病

私の使用しているPCが"SSD見失い病"というものにかかって早2年ほど経過しています。
応急処置的な解決方法を見つけてから、再起動のたびに毎回対応していましたが
なんやかんやでその作業が面倒になってきて、ちょっと進展したことを書きます。

※使用は自己責任でお願いします。





SSD見失い病は、突然SSDが読み込めなくなる症状のことです。
原因は不明で、ちょっと調べたところでちゃんとした原因も解決方法も見つかりませんでした。

「読み込めなくなっただけで、突然中身の削除が行われているわけではない!」
と信じて調べた結果、ドライバを一度無効、再度有効にすることで読み込まれるのを発見。
これでとりあえず読み込めるようになりました。


ただ問題があって・・・
再起動のたびにこれがリセットされます。
つまり、再起動の度に毎回コンピューターの管理を開いて、デバイスマネージャーを開いて、
該当のディスクドライバを切り替えて・・・とする必要があります。

最近この作業が面倒くさいなーと思えてきたので対処したので、それを残しておきます。
パソコンを再起動した際に読み込まれないのが問題なので、それを自動化します。

毎回Steamの状態がこうなるんだよぉ・・・

該当のドライブが読み込めないためファイルが見つけられないのです。
※DMC4SEの場合、ゲームをインストールしているsteamフォルダを再び指定すれば、インストール作業なしで全てのゲームが正常な状態(プレイボタン)に戻ります。
他のゲームだと再インストール作業が入って時間がかかる場合があります。
と思って久々にやってみたらインストール始まった・・・。
フォルダを指定して、インストール直前になれば全ゲーム蘇ります。
インストールはしなくても大丈夫みたい。


さて、対策をしよう。

参考にしたのはこの辺だった気がします。
WindowsTips/デバイスの有効・無効をコマンドプロンプトから行いたい
一発でデバイスを有効・無効にするdevcon.exeを使ったバッチファイルの作り方
 タスクスケジューラの基本的な使い方




1.WDKをダウンロードする
ダウンロードサイトここから

使っているのはWindows7なので真ん中の列の"WDK 8.1 Updateのダウンロード"をクリックします。



"Continue"をクリックします。



"wdksetup.exe"の方を選択してNextをクリックします。
自動的にダウンロードが始まります。


2.WDKをインストールする

選択しないといけないのはここだけだった気がします。
他は全部デフォルトでok。


3.batファイルを用意する
対象のドライバが何なのか確認する必要があります。
まず、マイコンピューターを右クリックして[管理]をクリックします。
コンピューターの管理が開くので、デバイスマネージャーから該当のドライバのプロパティを開きます。

今回は、最近話題の東芝さんのディスクです。

詳細タブを開いて、ハードウェアIDを選択します。
必要な項目の値をコピーします。
色んなサイトで見る通り、一番上・・・と見せかけて、今回は2番目をコピーしました。
というのも試してみると一番上ではダメだったからです。
値の見極め方は・・・わかりません・・・。

メモ帳を開いて、コピーした値を元にbatファイルを作ります。

:: devcon
@set DEVCON="C:\Program Files (x86)\Windows Kits\8.1\Tools\x64\devcon.exe"
:: 無効化
%DEVCON% disable "[コピーした値]"
:: 有効化
%DEVCON% enable "[コピーした値]"

::上記の内容をコピーして拡張子を[bat]にして保存します
::[]の部分はいらないよ
::DEVCONの値は1.のパスによって変化するよ

保存場所は問題のドライブ以外ならどこでもいいです。
私はCドライブの直下にしました。


4.タスクスケジューラーに登録する
[コントロールパネル] ⇒ [管理ツール] ⇒ [タスク スケジューラ]を開きます。

基本タスクの作成をクリックします。


名前を決めます。
適当でもokです。


ログイン時に設定します。
※"コンピューターの起動時"を選ぶとうまくいきませんでした。


"プログラムの開始"を選びます。


プログラムを選びます。
起動するのは先ほど作成したbatファイルです。

これで完了です。



○設定を変更する場合

左の"タスク スケジューラ ライブラリ"を選択すると、真ん中上段に表示されます。
たぶん名前の順なので、大抵一番したにあると思います。
追加したものを右クリックしてプロパティを開けば詳細を変更できます。





この話のオチは、東芝君はSSDじゃなくてHDDだったってことですね。
SSDだと思い込んでいる一般HDD。
確か、レジストリをいじくってる時にこの問題が発生した気がします。
原因は突然だったのでよくわからない・・・。
結局この話はSSDの話じゃなかったので、意味があるのかどうかわからないですね。

問題を解決する手段は、たぶんあるんですよ。
該当のドライバを削除すればいいんです。
そうすれば、再び読み込ませたときに全部直るはずです。
やらないのは・・・そら、USBと違って再度接続できる可能性があるわけじゃないので・・・
怖くてできるわけがなかった。

同じ症状の人はやってもいいけど、何も保障しませんよ。
読み込めなくなったらそれまでよ・・・。
今回はSSDではなかったのですが、Cドライブでこの症状が起きたらどうするんですかね?
詰んでるような・・・何か方法あるのかな?



それにしても納得いかない。
ドライバをいじくるのは既存の機能でできるはずなのに
batファイルからの操作はWDKを入れないとできないのだから・・・。

あ、そういえばタイムスケジューラは管理者権限で起動してくれます。
今回作ったbatファイルは管理者権限じゃないとダメみたいなので調度よかったですね。
管理者権限のくだりで、Windows PowerShellに触れようと思ったんですが
コマンドプロンプトと何が違うのかわからなかったので断念しました。
管理者権限のあるコマンドプロンプトだと思ったのに・・・。



○補足
1.の手順はWindows10なら左の方の日本語版をダウンロードできるんですが・・・。
Windows10の場合は手順が少し違うようなので、この記事は参考にならない可能性があります。

3.の1番目のハードウェアIDは未だによくわかっていません。
何を無効にして有効にしてしまったのか・・・。



以上、ちょっと残しておこうと思ったことでした。