2023/11/22(水) [n年前の日記]
#1 [windows] sptd2.sysを無効化できなかった
Windows10 x64 22H2をインストールしてあるメインPCが、またブルースクリーン(BSOD)になった。sptd2.sys が悪さをしているのかなと思えてきたので、レジストリを修正して無効化できないものかと試してみた。
以下のレジストリの「start」を4にすることで、sptd2.sys のファイルや各種レジストリ値は残しつつ、サービスとしては無効にできる、という話を見かけたので試してみたのだけど…。
レジストリを修正後、再起動してみたら、Windows10が起動しなくなった…。「停止コード : INACCESSIBLE_BOOT_DEVICE」が表示された。SSDにもHDDにもアクセスしている気配が無い。そもそもアクセスLED自体が全く光っていない。
今回はファイル(sptd2.sys)を移動したわけではなく、レジストリを修正してこうなってしまったので、元に戻すためにはレジストリを修正しないといけない。しかし、Cドライブにインストールした Windows10はセーフモードすら起動しないので、どうやってレジストリを修正したらいいのか…。
USBメモリに入れてあるWindows10インストールディスクで起動して、コマンドプロンプトが起動するところまでは行けたけど。そこで試しに regedit と打ってレジストリエディタを起動してみても、インストールディスクから起動したWindowsのレジストリ内容しか表示されない。修正したいのは、SSDにインストールされてるWindows10のレジストリ内容なわけで…。
本来のCドライブはGドライブになっているので、G:\Windows\regedit.exe を起動してみたものの、やはりインストールディスク版のレジストリ内容しか表示されない。参った。
以下のレジストリの「start」を4にすることで、sptd2.sys のファイルや各種レジストリ値は残しつつ、サービスとしては無効にできる、という話を見かけたので試してみたのだけど…。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\sptd2
レジストリを修正後、再起動してみたら、Windows10が起動しなくなった…。「停止コード : INACCESSIBLE_BOOT_DEVICE」が表示された。SSDにもHDDにもアクセスしている気配が無い。そもそもアクセスLED自体が全く光っていない。
今回はファイル(sptd2.sys)を移動したわけではなく、レジストリを修正してこうなってしまったので、元に戻すためにはレジストリを修正しないといけない。しかし、Cドライブにインストールした Windows10はセーフモードすら起動しないので、どうやってレジストリを修正したらいいのか…。
USBメモリに入れてあるWindows10インストールディスクで起動して、コマンドプロンプトが起動するところまでは行けたけど。そこで試しに regedit と打ってレジストリエディタを起動してみても、インストールディスクから起動したWindowsのレジストリ内容しか表示されない。修正したいのは、SSDにインストールされてるWindows10のレジストリ内容なわけで…。
本来のCドライブはGドライブになっているので、G:\Windows\regedit.exe を起動してみたものの、やはりインストールディスク版のレジストリ内容しか表示されない。参った。
◎ レジストリエディタのハイブ機能を使って解決 :
以下のページの解説が参考になった。
_Windowsを起動せずにレジストリを修正する - PCと解
レジストリエディタには「ハイブの読み込み」という機能があって、コレを使えば別ドライブ/別パーティションに保存されているレジストリを一時的に読み込んで編集できるらしい。
HKEY_LOCAL_MACHINE\temp\ 以下の、ControlSet001\Services\sptd2 内の、start の値を 0 に修正して、レジストリエディタを終了してみた。
この状態で再起動したら、修復はできないと一旦表示されたものの、Enter を叩いて Windows 10 を選んだらOSが起動してくれた。
再度、USBメモリ内のインストールディスクから起動して、コマンドプロンプトを起動。bootrec を使って、起動関係のアレコレを修復してみた。
再起動したところ、いつものように Windows10 が起動してくれた。助かった。
_Windowsを起動せずにレジストリを修正する - PCと解
レジストリエディタには「ハイブの読み込み」という機能があって、コレを使えば別ドライブ/別パーティションに保存されているレジストリを一時的に読み込んで編集できるらしい。
- コマンドプロンプト上で regedit と打って、レジストリエディタを起動。
- HKEY_LOCAL_MACHINE を選択した状態で、ファイル → ハイブの読み込み、を選択。
- G:\Windows\System32\config\SYSTEM というファイル(レジストリファイル)を選択。
- マウントキー名の入力を求められるので temp と打った。
- HKEY_LOCAL_MACHINE\temp 以下に、G:\Windows\System32\config\SYSTEM の内容が読み込まれた。
HKEY_LOCAL_MACHINE\temp\ 以下の、ControlSet001\Services\sptd2 内の、start の値を 0 に修正して、レジストリエディタを終了してみた。
この状態で再起動したら、修復はできないと一旦表示されたものの、Enter を叩いて Windows 10 を選んだらOSが起動してくれた。
再度、USBメモリ内のインストールディスクから起動して、コマンドプロンプトを起動。bootrec を使って、起動関係のアレコレを修復してみた。
bootrec /FixMbr bootrec /FixBoot bootrec /RebuildBcd
再起動したところ、いつものように Windows10 が起動してくれた。助かった。
◎ stpd2.sysはヤバイ :
Alcohol 52% 等のソフトをインストールすることで、一度、Windows10に stpd2.sys をインストールしてしまうと、sptd2.sys のアンインストールも、無効化も、できなくなってしまうようだなと…。
参った。これはもうOSを再インストールするしかないよな…。
参った。これはもうOSを再インストールするしかないよな…。
[ ツッコむ ]
以上です。