実機 PC の仮想化 (2/4) [VirtualBox]

0
投稿者 AlbertSteins on 2017年1月14日土曜日 , in , , , , , ,
P2V の第 2 回.

仮想マシンを作成し,前回[仮想化したディスク]を接続して起動する.


□ 仮想マシンの作成と設定

仮想ディスクを接続させるための仮想マシンのスペックは,実機に近いほうが無用なトラブルを避けられる.

準備として実機[SONY VAIO VGN-SZ93 シリーズの仕様]を取説やネットで収集.

ネットワーク アダプタはできれば MAC アドレス(物理アドレス)も控えておく.
実機が動くならコマンド プロンプト (cmd.exe) で「ipconfig /all」すれば調べられる.
動かない場合でも,IP アドレスを固定割当していたならルータの設定に残っていることもある.

  • チップセット:インテル 945GM Express ※ VAIO はデフォルト設定では,インテル バーチャライゼーション・テクノロジーには非対応.
  • CPU:インテル Core 2 Duo プロセッサー T7200 (2 GHz) / CPU 内蔵 2 次キャッシュメモリー 4MB / システムバス 667MHz
  • GPU:NVIDIA GeForce Go 7400 GPU / インテル グラフィックス・メディア・アクセラレーター 950(チップセット内蔵)の二者択一 ※ 物理スイッチで SPEED / STAMINA モード切替え
  • メモリ(メイン):2GB (1GBx2 = 2048MB) / 最大 2GB,DDR2 SDRAM,DDR2 533 対応,メモリーバス  533MHz,SO-DIMM スロットx2,デュアルチャンネル転送対応(同じ容量でも 1 枚のシングルチャンネル構成より同種のメモリモジュール 2 枚 1 組のほうがパフォーマンス向上)
  • メモリ(ビデオ):最大 335MB (SPEED) / 最大 224MB (STAMINA) ※ メインと一部共用,動的確保
  • OS:Windows Vista Business SP2 (32bit)
  • ディスプレイ:13.3 型,1280x800
  • HDD:SAMSUNG HM160JI,SATA150 インタフェース,160GB・5400rpm・2.5in・9.5mm 厚
  • 光学ドライブ:MATSHITA DVD-RAM UJ-825S,SlimATAPI (IDE) インタフェース,9.5mm 厚
  • ネットワーク アダプタ:100BASE-TX / 10BASE-T(MAC アドレス未調査)
  • ネットワーク アダプタ(無線):Intel PRO/Wireless 3945ABG Network Connection (Model: WM3945ABG, MAC: N/A),mini PCI Express カード(フルサイズ)
  • Bluetooth:Bluetooth 2.0+EDR(BTO 選択時のみ搭載) ※ WLAN カードとは別モジュール
  • USB ポート:USB2.0(2 基)
  • オーディオ:DSD (Direct Stream Digital) 対応高音質サウンドチップ「Sound Reality」(Intel High Definition Audio 準拠)

これらの仕様を [VirtualBox] で作成する仮想マシンの設定でできるかぎり再現する.

仮想ハードディスクの作成時に,用意した仮想ディスク (*.vhd) を接続 (SATA) する.
※ 古い実機の HDD は接続インタフェースが IDE のため,HDD は空にしておく.
※ 仮想マシン作成後,ストレージの設定で「IDE コントローラー」を追加して仮想ディスクを接続.

VMware の場合,仮想マシンの作成時には既存の仮想ディスクを指定できない.
ひとまず空のディスクを作成しておき,あとからこれを削除して,用意したディスクのほうを接続させる.

仮想マシンが出来たら,[設定]で先に調べておいた実機の仕様をできるだけ反映させる.

システム.
コア数は実機の CPU に合わせて「2」,メモリは 2048MB とする.

ディスプレイ.
解像度の設定は OS 起動後になる.
ビデオメモリー (V-RAM) は最大でも 128MB までしか取れないので,(実機が 128MB 未満でないかぎり)128MB としておく.

オーディオ.
オーディオコントローラーは実機に合わせて「Intel HD オーディオ」.
 
ストレージ.
SSD をサポートしている Windows 7 以降なら「SSD(Solid-state drive)」にチェックすれば,ストレージが SSD として扱われ,パフォーマンスが向上する.
但し,実機のストレージが SSD でないなら,ライセンス認証の判定結果を左右することもあるので,OS を起動して認証結果を見てから有効にする.

光学ドライブは実機に付いていなくても「VirtualBox Guest Additions」のインストールに必要.
あとから追加するのでも構わない.

USB.
VirtualBox はバージョン 5 から USB3.0 をサポートしているが,Windows Vista プリインストール機が搭載しているのはほとんどが USB2.0.
NEC 製の一部のノート PC には USB3.0 ポートが実装されているが,Vista には OS 標準の USB3.0 ドライバはないため, Renesas 社製の独自ドライバが入っている.
公式サイトでも配布されているこのドライバ]を試しに仮想マシンに入れてみたが,USB3.0 コントローラは残念ながらデバイス マネージャー上で認識に成功しなかった.

ネットワーク.
更新プログラムの先入れ(詳細次回)まではオフラインでの作業が望ましい.
この場合,都合が良い割り当て方式は「ホストオンリーアダプター」だが,仮想マシン起動時に何故かエラーが出る.
「高度」の項目にある「アダプタータイプ」に自動選択される仮想アダプタ「VirtualBox Host-Only Ethernet Adapter」が問題らしい.
エラーが出るようなら割り当てを「ブリッジアダプター」に変更する.
※ オフライン作業後,実際のオンラインでの運用も「ブリッジアダプター」を使う.

実機のアダプタがギガビット対応ならアダプタータイプは「Intel PRO/1000」.
3 種あるが「Desktop (82540EM)」で問題なく動作した.

非対応なら「PCnet-FAST III」が近いが,これを選ぶと OS 起動後,イーサネット コントローラー(ネットワーク アダプタ)のドライバがインストールされず,デバイスが正常に認識できなかった.

MAC アドレスは実機アダプタが不明な場合は,ランダムで自動生成されたものをそのまま使う.
実機と同じに設定できた場合は,アドレスの競合が起こるので同時に起動させてはならない.


□ 仮想ディスクへの修正(レジストリ編集)

作成した仮想マシンを起動するとほとんどの場合,BSoD (Blue Screen of Death) 「死のブルースクリーン」の洗礼を受けることになる.

実際はブルースクリーンが表示されるのは一瞬で,すぐに「Windows エラー回復処理」の画面に移る.
ここで「Windows を通常起動する」を選べば再起動,「スタートアップ修復の起動」を選ぶと,真っ黒な画面のまま反応がなくなる.
その場合は,仮想マシンのメニューから[仮想マシン]-[リセット]すれば,強制再起動できる.
何度か試しても進展がないようなら[ファイル]-[閉じる...]で「仮想マシンの電源オフ」で強制終了させる.


Windows Error Repairing

苦労して撮ったブルースクリーンの SS を確認すると「STOP: 0x0000007B」の記述がある.
※ 仮想ディスク化の前に実機で「システムのプロパティ (sysdm.cpl)」の「詳細設定」タブにある「起動と回復」の[設定]でシステム エラーの「自動的に再起動する」のチェックを外しておけば,BSoD のまま停まる.


BSoD (0x0000007B)

検索してみると,原因と対処法に関する記事がいくつかヒットする.
それらを要約すると,

  • Windows はインストールして初めて起動するときにハードウェア構成をチェックして,OS 起動時にブート コントローラが必要とするドライバの情報をレジストリに記録する.
  • 2 回目以降の起動時にはこのレジストリ情報に従って,必用なドライバを読み込む.
  • ハードウェア構成が変更された場合,必要となるドライバも変わる.しかし,レジストリ情報はそのままのため,起動に新たに必要となったドライバが読み込まれずエラーとなる.
以下は[Microsoft の知識ベース]からの抜粋.

  • コンピュータのブート コントローラが必要とするデバイス ドライバが、スタートアップ処理時に開始するように構成されていない。
  • Windows XP レジストリ内の情報 (スタートアップ処理時に読み込まれるデバイス ドライバに関する情報) が破損している。
つまり,ブート コントローラが必要とする可能性のあるドライバを「全て」読み込むようにしてやれば,冗長にはなるが起動に成功させることができる.

参考記事:[[Vista] OS再インストールなしにマザーボード交換Vista編 速報版

そのために,該当のレジストリ情報を書き換える.
※ 実機がまだ動かせるなら,仮想ディスク化する前にしておけば,BSoD を回避できる.

起動できない OS のレジストリを編集することになるので,作業用の PC が必要となる.
理想としては同じ仮想化ソフトウェア上で稼働している,同じ OS の仮想マシン.
用意できない場合は他バージョンの Windows OS やホストを使っても構わない.

作業用マシンに仮想ディスクを接続する.
仮想マシンを使うなら,ストレージ設定から HDD をひとつ追加して,仮想ディスクを接続.
ホストを使うなら,「ディスクの管理」(diskmgmt.msc, Win + X - K) のメニューから[操作]-[VHD の接続].
※ Windows 10 の場合,「ディスクの管理」で既存ボリュームのいずれかを選択した状態でないと[VHD の接続]の選択肢が有効にならない.
 
接続した仮想ディスクの SYSTEM レジストリ(実体は通常のインストール構成で C:\Windows\System32\config\system ファイル)を作業マシンのレジストリ エディタ (regedit.exe) で HKEY_LOCAL_MACHINE のハイブとして読み込ませる.

  • HKEY_LOCAL_MACHINE を選択した状態でメニューの[ファイル]-[ハイブの読み込み].
  • 仮想ディスクの system ファイルを指定.※ 作業マシン本体のものと間違えないように!
  • キー名を「OLD_SYS」など適当に指定すれば, HKEY_LOCAL_MACHINE 配下に読み込まれる.
実機と同じ OS の作業用仮想マシンが用意できた場合は,最も確実な「OS 起動のための正しいレジストリ情報」が手に入る.
このときは[XPの物理PC実行環境を仮想マシンとして保存]を参考にして,ハイブ読み込みした仮想ディスクの ControlSet001 の情報を作業マシンの CurrentControlSet の情報で上書きするだけで済む.

対して,同じ OS の仮想マシンが用意できなかった場合は,関係するレジストリ キーをひとつひとつ確認,必用があれば修正する.

レジストリ エディタ上で次のキーに移動する.

HKEY_LOCAL_MACHINE\OLD_SYS\ControlSet001\Services

その配下に以下のキー(計 10 個)があるか確認.

Aliide / Amdide / Atapi / Ataport / Cmdide / Intelide / Msahci / Pciide / Pciidex / Viaide

存在した場合,該当キーの右側ペインで DWORD 値「Start」が「0」以外だったら「0」に修正する.

修正が完了したら,ハイブ「OLD_SYS」を選択して[ファイル]-[ハイブのアンロード]する.

多少荒っぽい処置だが,これで OS 起動に必要となる可能性のあったドライバが全て読み込まれるようになり,BSoD が出なくなる.
(「Windows のエラー回復処理」画面がまた出たら,「Windows を通常起動する」を一度試す)

余分なドライバも読み込む可能性があり,OS 起動はそのぶん遅くなるので,あとから時間に余裕がある時にでも,本当に必要なものを見極めると良い.

VGN-SZ93 シリーズの場合,青字のキーのみ存在し,Atapi (= IDE) / Intelide が初期値「0」.
残りは初期値が「4」で,このうち下線を付したものだけ値を「0」に変更すれば起動できた.
※ BTO のカスタマイズで構成が異なる場合,既存キーや値は上述とは違うかもしれません.

必要=Msahci(SATA 用標準 AHCI ドライバ)/ Pciide(SATA 用標準 IDE ドライバ)
不要=Aliide / Amdide / Cmdide / Viaide
※ VirtualBox の SATA コントローラーは(IDE 互換モードではなく)AHCI モードのみサポート.


これで OS が起動すれば,とりあえず仮想化は成功.
次回は[仮想化した VAIO 特有の問題への対処と長期間起動していなかった Windows のオフライン環境整備]をします.

Share This Post

0 コメント:

コメントを投稿