アドバイス情報 - webmasterさんのエントリ |
2013/12/17
Windows 8 CPU Feature Patch導入覚書(保管)
執筆者: webmaster (2:15 pm)
|
以下こちらで調べたことをだらだらとメモ ※長いので興味ない人はスルーで パッチを当てるファイルは基本は2個だけ ・SSE2 & NX回避:\Windows\System32\ntoskrnl.exe ・PAE回避:\Windows\System32\winload.exe Pen4等でHTTを有効にして1コア2スレッドで起動する場合は ntoskrnl.exeにパッチを当てた状態だとWin8のブートに失敗する模様(手元に環境がないので未確認) この場合BIOSでHTTを無効にして1コア1スレッドで起動させるか "Fix hyper-threading in hal.dll"と"Fix hyper-threading in halmacpi.dll"で \Windows\System32\hal.dllと\Windows\System32\halmacpi.dllにもパッチを当てる なおntoskrnl.exeにパッチを当てて改変すると デフォルトの設定ではWin8が警告を出してブートできないので それを回避するためにwinload.exeに別のパッチを当てる("Remove winload patchgard x86") ただしwinload.exeが改変されていても起動時に警告が出るので それを回避するためにbcdeditでブートパラメータを変更する ("bcdedit /set {default} nointegritychecks yes" と "bcdedit /set {default} recoveryenabled no") また普通にWin8を起動した状態だと\Windows\System32以下のntoskrnl.exeやwinload.exeは書き換えできないので Win7のインストールディスク等からブートして作業を行う必要がある あとフォーラムにも書かれている通り ntoskrnl.exe / winload.exe / hal.dll / halmacpi.dll は Windows Updateで新しいバージョンに入れ替わることがあるので その度にWin7のインストールディスク等で起動してWindows 8 CPU Feature Patchでパッチを当て直さないと起動できなくなる 今フォーラムで公開されているWindows 8 CPU Feature Patch v1.4は2013年8月末時点での Win8/8.1用の ntoskrnl.exe / winload.exe / hal.dll / halmacpi.dll の全てのバージョン対応しているが 今後新しいバージョンが出た場合はWindows 8 CPU Feature Patchもそれに対応した新しいバージョンにする必要がある 事前にWin8のインストールディスクをWin8非対応のPCでも使えるように改変するのは 一見簡単そうに思えるけど実際には結構厄介 Vista以降はインストールディスクの起動ファイルやインストールに必要なファイルは 全てinstall.wim(Windowsイメージファイル)のような1個のファイルの中にまとめて格納されている .wimファイルは.zipファイル等と同じような種類のファイルで 中のファイルを展開して取り出すことは例えば7-zip等の汎用ソフトでもできるが .wimファイルを作るのはimagex等の専用ソフトを使う必要がある また.wimファイルの中のファイルを1個だけ入れ替える、みたいな手段は用意されていないので 中のファイルを1個だけ入れ替えたい場合でも 全体を展開→ファイルを入れ替え→.wimファイルを作成 の手順を行う必要がある あとintall.wimの中のファイルには特殊なアクセス権が設定されているので 作業する環境によってはintall.wimを展開しても アクセスが拒否されて中のファイルへのパッチ当てや入れ替えができない、ということもある それとキャンペーン期間中にWin8のダウンロード版を購入して 自分で作成したインストールディスクの場合は install.wimが暗号化されたintall.esd(Electronic Software Downloadファイル)になっていて これはWindowsのインストーラ経由でないと展開できないようになっている(少なくとも現時点では)ので この形式のインストールディスクしか持ってない場合は Win8対応の別のPCを経由する方法でないとインストールできない ついでに手持ちのWin8がアップグレード版の場合も Win8非対応のPCをWin7のインストールディスクでブートする方法だと 新規インストール扱いになってライセンス認証が通らなくなるので Windows 8 アップグレード版でクリーンインストール http://toro.2ch.net/test/read.cgi/win/1353214972/ に書かれているような情報を参考にして Win8対応の別のPCを経由してインストールとパッチ当てを行う必要がある Win8非対応のPCをWin7のインストールディスクでブートする方法や 事前にWin8のインストールディスクをWin8非対応のPCでも使えるように改変する方法で 作業に使うimagexはWindows AIKに含まれているが 普通にダウンロードするとサイズが1GB以上あるので imagexだけを単独でダウンロードしたい場合は下のリンクから http://raidcalculator.wordpress.com/2012/10/19/download-imagex-exe-without-installing-waik/ imagex.exe x86(バージョン6.1.7600.16385) Size: 481,680 bytes CRC32: 54bffad5 MD5: e0ad0c49291d7f63edefcef137e91d4f SHA-1: fc17bac4c13cf3bbb4a39bcd6e43500bfa4d99ed ※このimagexは Windows(R) 7 用の Windows(R) 自動インストール キット (AIK) http://www.microsoft.com/ja-jp/download/details.aspx?id=5753 のKB3AIK_JA.iso(約1.65GB)に含まれているものと同じ ※AIKをダウンロードした場合はAIKをインストールしなくても 7-zip等を使ってKB3AIK_JA.isoに含まれているNeutral.cabからF1_imagexを取り出してimagex.exeにリネームすれば x86版のimagexを単独で取り出せる ※Win8対応の別のPCを経由する場合はimagexは不要 Windows 8 CPU Feature PatchはMDLのフォーラムに登録しないとダウンロードできないが 登録したくない人は"Windows 8 Patches v1.4"で検索すれば登録なしでダウンロードできるサイトもある Windows 8 Patches v1.4 x86(W8CPUFeaturePatch.exe) Size: 69,632 bytes CRC32: 495dccbe MD5: ef42d2b2aaa9012aa3eb1ee89a063ea8 SHA-1: c061df7bb04389dc90798d9f0a3d391f42c5c7f7 W8CPUFeaturePatch.exeを使う場合"Backup original file"にチェックが入っていると パッチ適用前のオリジナルファイルが"〜.bak"という名前で同じフォルダに保存されるが 以前にパッチを適用して同じフォルダに"〜.bak"がある状態で "Backup original file"にチェックが入ったままパッチを当てようとすると "CopyFile failed"のエラーが出てパッチが当てられないので "〜.bak"を消すか"Backup original file"のチェックを外してパッチを当てる必要がある パッチ適用済みのファイルに同じパッチを当てようとすると "Patch failed: Patch loaction not found"のエラーが出る パッチを適用するntoskrnl.exeやwinload.exeを \Windows\System32から別の場所にコピーしてからパッチを当てることも可能 パッチ適用前にオリジナルファイルを手動で別の場所にコピーしておけば "Backup original file"のチェックは特に必要ない Win7やWin8のインストールディスクからブートしている場合は特に問題ないが インストールディスクの改変等で既存のWin起動中に作業する場合は ファイルのアクセス権絡みでパッチが失敗することもあるので注意 各パッチは10バイト程度なのでバイナリエディタ等を使って手動で適用することも不可能ではない "Remove SSE2 and NX check"でWin8 x86インストール時のntoskrnl.exe(バージョン6.2.9200.16384)に パッチを当てた時のパッチ適用ポイント(合計11バイト) 000002E0: 65 FF 000002E1: 01 FC 000002E2: 55 54 00000321: C2 00 00000322: 54 00 00000324: F0 00 00000325: 20 00 001E4C3F: 01 00 001E4C40: 20 00 001E4F10: 01 00 001E4F11: 20 00 オリジナルのntoskrnl.exe x86(バージョン6.2.9200.16384) Size: 5,563,120 bytes CRC32: 2583beac MD5: 23896b23830548fb9af6dbdb636fa758 SHA-1: 90d0e8bd7204d7765f4605ba6d6b0597e77da034 パッチ適用後のntoskrnl.exe x86 Size: 5,563,120 bytes CRC32: 7c794e56 MD5: b7b04b3a167afdd3ea72c749a62c5b36 SHA-1: dd6cfd957b05218d9f748b319fb337c4e55b66e9 "Fix hyper-threading in hal.dll"と"Fix hyper-threading in halmacpi.dll"で Win8 x86インストール時のhal.dll / halmacpi.dll(バージョン6.2.9200.16384)に パッチを当てた時のパッチ適用ポイント(合計8バイト) 00000140: 1B 37 00000141: DA FB 00000142: 05 04 00000181: BE 00 00000182: 04 00 00000184: F0 00 00000185: 20 00 00033B78: 0E 1E オリジナルのhal.dll / halmacpi.dll x86(バージョン6.2.9200.16384) Size: 319,216 bytes CRC32: da71a9a9 MD5: 4ec411f1ac6c9fb3a96c16d0c500a433 SHA-1: 68049ce1b6202889b6c5c27c307baacb36ab5b44 パッチ適用後のhal.dll / halmacpi.dll x86 Size: 319,216 bytes CRC32: 343456f7 MD5: a678403104a35cc497b20bb3673b8318 SHA-1: bd66ca62f310b57e980476f2b43190cae03f8c86 ※Win8 x86インストール時のhal.dll / halmacpi.dllは同一ファイルなのでパッチ適用ポイントも共通 "Remove winload patchgard x86"でWin8 x86インストール時のwinload.exe(バージョン6.2.9200.16384)に パッチを当てた時のパッチ適用ポイント(合計11バイト) 00000138: F8 08 00000139: 9F AD 00000179: F6 00 0000017A: 0F 00 0000017C: 08 00 0000017D: 46 00 00033B3A: 8B 33 00033B3B: FF C0 00033B3C: 55 C2 00033B3D: 8B 14 00033B3E: EC 00 オリジナルのwinload.exe x86(バージョン6.2.9200.16384) Size: 1,063,944 bytes CRC32: ead572b7 MD5: 9275893085fd1574f80e8e3c2096cfee SHA-1: a1d91e22eae37bd5750e8d300f0b2eb5ddd78efc パッチ適用後のwinload.exe x86 Size: 1,063,944 bytes CRC32: 8c03cf7b MD5: f389729d6f1810f010a417cd8f5ad306 SHA-1: 184342f44ba8ede71e265de488ad2d6371256b32 "Remove PAE check"でWin8 x86インストール時のwinload.exe(バージョン6.2.9200.16384)に パッチを当てた時のパッチ適用ポイント(合計12バイト) 00000138: F8 FA 00000139: 9F 90 00000179: F6 00 0000017A: 0F 00 0000017C: 08 00 0000017D: 46 00 000005FC: 0F 90 000005FD: 84 90 000005FE: 88 90 000005FF: 00 90 00000600: 00 90 00000601: 00 90 オリジナルのwinload.exe x86(バージョン6.2.9200.16384) Size: 1,063,944 bytes CRC32: ead572b7 MD5: 9275893085fd1574f80e8e3c2096cfee SHA-1: a1d91e22eae37bd5750e8d300f0b2eb5ddd78efc パッチ適用後のwinload.exe x86 Size: 1,063,944 bytes CRC32: 65f857c6 MD5: aaf6d9985c1cb8fae640b4b3df08de5b SHA-1: 1cb46706df47d2f19d0efa489f2c4d4e36026730 ※初期PenM等のPAE非対応CPUでのみ必要なパッチでNXのみ非対応のPen4等ではこのパッチは不要 (ただしこのパッチを当ててPAE対応CPUで使っても特に害はない模様) ※実際には"Remove winload patchgard x86"も同時にパッチを当てる必要があるので このパッチ単独ではあまり使われないと思われる ※上にも書いた通りこのパッチで実際にPAEチェックを回避できるかどうかは不明 "Remove PAE check"と"Remove winload patchgard x86"の両方のパッチを Win8 x86インストール時のwinload.exe(バージョン6.2.9200.16384)に当てた時のパッチ適用ポイント(合計17バイト) 00000138: F8 22 00000139: 9F DA 00000179: F6 00 0000017A: 0F 00 0000017C: 08 00 0000017D: 46 00 000005FC: 0F 90 000005FD: 84 90 000005FE: 88 90 000005FF: 00 90 00000600: 00 90 00000601: 00 90 00033B3A: 8B 33 00033B3B: FF C0 00033B3C: 55 C2 00033B3D: 8B 14 00033B3E: EC 00 オリジナルのwinload.exe x86(バージョン6.2.9200.16384) Size: 1,063,944 bytes CRC32: ead572b7 MD5: 9275893085fd1574f80e8e3c2096cfee SHA-1: a1d91e22eae37bd5750e8d300f0b2eb5ddd78efc 両パッチ適用後のwinload.exe x86 Size: 1,063,944 bytes CRC32: 49b67d70 MD5: dc2c9eb6900cc46af62d5b0d27885903 SHA-1: 2f3800a23ad1855b2d9f8c15f7d87b8a6d4d0f95 ※"Remove PAE check"→"Remove winload patchgard x86"の順にパッチを当てても "Remove winload patchgard x86"→"Remove PAE check"の順にパッチを当てても結果は同じ ※オフセット0x138と0x139の2バイトはチェックサムなのでそれぞれのパッチを単独で当てた場合とは値が変わる ※Windows 8 CPU Feature Patch導入アドバイス --2014/01/31 追記 http://www.y-pca.jp/modules/weblog/details.php?blog_id=148 |
このエントリのトラックバックURL
http://www.y-pca.jp/modules/weblog/weblog-tb.php/141
投稿された内容の著作権はコメントの投稿者に帰属します。