Windows 7 の SP1 が ERROR_NOT_FOUND(0x80070490) で失敗する場合の対処法
環境
- Windows 7 Ultimate (64bit)
背景
Windows 7 の SP 1 を当てようとすると
ERROR_NOT_FOUND(0x80070490) 要素が見つかりません
と言われて失敗してしまう。
と Windows を dis ったところ、
@mallowlabs こんにちは。MSHelpsJPです。こちらのページはご参考になるでしょうか。 URL URL なんとかうまくインストールできるのいいのですが... 突然失礼しました。 #Win7 ^KK
というありがたいメンションが飛んでくるもまったく解決せず。
というか MS のフォーラムを検索しても
同じ問題が解決してるものはひとつも無い。
安易に「OS を再インストールしてください」とか言っちゃうサポートページって…。
試したこと(ダメだったこと)
- Windows Update トラブルシューティング ツール
- システム更新準備ツール
- SP1 のインストーラを予めダウンロードしてインストール
- セーフモードでのインストール
- Windows Update のディレクトリを空にする
- スキャンディスク
MS のサポートフォーラムは信じてはいけない。
解決方法
以下の手順を実行する場合は、必ずバックアップを取ってください。
(1) コマンドプロンプトを管理者として実行し、以下のコマンドを実行。
sfc /scannow
結果
C:\Windows\system32>sfc /scannow システム スキャンを開始しています。これにはしばらく時間がかかります。 システム スキャンの検証フェーズを開始しています。 検証 100% が完了しました。 Windows リソース保護は、整合性違反を検出しませんでした。
一見問題が無いように見えるが MS の言うことは信じてはいけない。
(2) CBS.log を確認する
C:\Windows\Logs\CBS\CBS.log を確認する。
直接は開けないので、デスクトップにコピーしてメモ帳で開く。
「Failed uninstalling driver」で検索する。
2012-05-02 14:21:21, Info CBS Perf: Doqe: Uninstall started. 2012-05-02 14:21:21, Info CBS Doqe: [Forward] Uninstalling driver updates, Count 60 2012-05-02 14:21:22, Info CBS DriverUpdateUninstallUpdates failed [HRESULT = 0x80070490 - ERROR_NOT_FOUND] 2012-05-02 14:21:22, Error CBS Doqe: Failed uninstalling driver updates [HRESULT = 0x80070490 - ERROR_NOT_FOUND] 2012-05-02 14:21:22, Info CBS Perf: Doqe: Uninstall ended. 2012-05-02 14:21:22, Info CBS Failed uninstalling driver updates [HRESULT = 0x80070490 - ERROR_NOT_FOUND] 2012-05-02 14:21:22, Error CBS Startup: Failed while processing non-critical driver operations queue. [HRESULT = 0x80070490 - ERROR_NOT_FOUND] 2012-05-02 14:21:22, Info CBS Startup: Rolling back KTM, because drivers failed. 2012-05-02 14:21:22, Info CBS Setting ExecuteState key to: CbsExecuteStateStageDrivers | CbsExecuteStateFlagRollback | CbsExecuteStateFlagDriversFailed 2012-05-02 14:21:22, Info CBS Progress: UI message updated. Operation type: Service Pack. Stage: 1 out of 1. Rollback.
ということでドライバのアンインストールで失敗していることがわかる。
「0x80070490」で検索しても大量に出てきてしまうので、
エラーコードは信じてはいけない。
(3) setupapi.app.log を確認する
C:\Windows\inf\setupapi.app.log を確認する
「Failed to find driver update」で検索する
!!! sto: Failed to find driver update 'C:\Windows\WinSxS\amd64_usbvideo.inf_31bf3856ad364e35_6.1.7600.16543_none_8a1a2513d42628c3\usbvideo.inf' in Driver Store. Error = 0x00000490 <<< Section end 2012/05/02 14:21:22.137 <<< [Exit status: FAILURE(0x00000490)]
ということで usbvideo.inf のアンインストールで失敗していることがわかる。
(4) ドライバの上書きインストール
コマンドラインを管理者として実行し、以下のコマンドを実行する
pnputil -a C:\Windows\WinSxS\amd64_usbvideo.inf_31bf3856ad364e35_6.1.7600.16543_none_8a1a2513d42628c3\usbvideo.inf
という恐ろしい色のダイアログが表示されるが
迷わずに「このドライバーソフトウェアをインストールします」をクリックする。
MS の警告は信じてはいけない。