ねんがんの ばいお を てにいれたぞ!
ということで特売キャンペーンに釣られてついうっかりポチってしまったVaio type S(VGN-SR93JS; Vista 64bit)にWindows XP 32bitを突っ込んでデュアルブートにするメモ。ご利用は計画的に。当然Sonyのサポートも無くなるのはお約束。
構成は以下の通り。これで10万円ちょっとだからかなりお得。
OS: Windows Vista Home Premium SP1 64bit
CPU: インテル Core 2 Duo プロセッサー P8600; 2.40GHz; Cache 3MB
Chipset: モバイル インテル PM45 Express チップセット
Memory: 4GB(2GB×2); DDR2 SDRAM; PC2-6400(800MHz)
Graphics: ATI Mobility Radeon HD 4570; VMem 512MB
HDD: 320GB; Serial ATA; 5400rpm
Drive: DVDスーパーマルチドライブ
まずは黙ってVistaのリカバリディスクを作成。デフォルトではHDDの先頭パーティションに約10GBのリカバリ領域があり、その後ろが全てVista専用という男気溢れる状態になっているので、適当にパーティションを切り直して(以後C[Vista]:)リカバリする。その際リカバリ領域を消すかどうか聞かれた気がするけど、消さないでいいと思う。
Vistaのリカバリは結構時間がかかるので、その間に別のPCにnLiteでXP SP3+AHCIの統合CDを作っておく。何故AHCIドライバが必要なのかとか、具体的な統合方法とかはgoogle先生に聞いてくだちい。CDサイズが大きくなりすぎるのでHotFixは当てない方がよさげ。
Windows XP用のAHCIドライバはIntel Download Center > Chipsets > Chipset Software > Intel(R) Matrix Storage Manager > 32-bit Floppy Configuration Utilityにある。展開してnLiteで見ると中に「Intel(R) ICH9M-E/M SATA AHCI Controller」が入っているのでこれを選択。
無線LANドライバも同様にIntel Download Center > Wireless Networking > Intel(R) WiFi Products > Intel(R) WiFi Link 5300 and Intel(R) WiFi Link 5100 products > Intel(R) PROSet/Wireless WiFi Connection Utility for Windows XP 32-Bitと辿ってダウンロード。適当に展開するなりどこかに仮インストールするなりしてドライバを引っこ抜いてくる。
ついでに有線LANのドライバはMarvell: Consumer Driver Search > Network Controller > Windows XP x86(32-bit) > Windows Vista x86 Driver (32-bit) for Yukon Devicesにある。どうでもいいけどいまさら100BASEかよ、という気もする。
そうこうしている間にVistaのリカバリが完了。1つ目の基本パーティションにリカバリデータが格納されている。2つ目の基本パーティションであるC[Vista]:の後ろに未使用領域が200GB近く残っており、適当にWindows XP用の領域(以後C[Xp]:)を3つ目の基本パーティションとして切る。ここでC[Xp]:に対してドライブ文字を与えないようにしておく。C[Xp]:のフォーマットが終わったらアクティブのマークをつける。
XP SP3以下略のCDで起動してXPをC[Xp]:にインストール。このときC[Xp]:はC[Vista]:よりも後ろにあるのだが、アクティブなので「Cドライブ」として見えるのがミソ。 C[Vista]:は「Dドライブ」として見えている。インストール終了後再起動するとMBRがWindows XPのものに書き換わり、XPシングルブート状態になる。
ここから普通にMBR→Bootmgr→BCD→Winload(Vista) or ntldr(XP)を呼ぶように書き戻すだけではVistaのシステムフォルダがCドライブとして固定されるため、XPのシステムフォルダがDとかEとかになってしまう。特に不具合があるわけではないのだが微妙に気持ち悪い上に、何らかの原因でシステムフォルダのドライブ文字がずれると悲惨な状態になる。従ってVistaとのデュアルブートかつ両方のシステムフォルダを常に「Cドライブ」にするには少し工夫が必要になる。
Windows XPを起動した状態でCドライブ(C[Xp]:)直下にある「ntldr」「ntdetect.com」「bootfont.bin」「boot.ini」の4つのファイルをDドライブ(C[Vista]:)の直下にコピーする。次にC[Vista]:のドライブ文字(D)を消してさらにアクティブとしてマーク。これをしないといつまでもC[Xp]:を見に行くのでハマる。
改めてVistaのリカバリディスクで起動し、「Windows 回復環境 64bit」(うろ覚え)のコマンドプロンプトに入り、「bootrec /FixBoot」でブートセクタを書き直す。当然ながらここで再起動するとVistaシングルブート状態になるので、引き続きbcdeditでXP用のエントリを書き足してから再起動する。
bcdedit /create {ntldr} (エラーが出るが無視)
bcdedit /set {ntldr} description "Windows XPふにふに(適当に)"
bcdedit /set {ntldr} device partition=C:
bcdedit /set {ntldr} path ntldr
bcdedit /displayorder {ntldr} /addlast
これでXP・Vistaどちらを起動しても自身のシステムフォルダがCドライブ、かつDVDドライブがDドライブとなり、互いのシステムフォルダが見えない状態になる。必要時のみ適当なフォルダにマウントしてやればよいので、誤って破壊してしまう可能性を減らせるはず。
しかしようやくデュアルブートにこぎつけたはいいのだけれど、Sonyの事だからXP用ドライバを提供しているわけもなく、ドライバ周りで苦しむことになるのであった。その内ビデオコントローラとサウンドコントローラはどうにか解決できたのでメモしておく。
ビデオコントローラはXP標準のドライバのままだと1024x768を無理に横に引き伸ばしたような感じになってにょろーんな感じ。ATI Mobility Radeon HD 4570のドライバはこの辺に落ちている。setup.exeを叩いても何故か認識されずに終了してしまうので、デバイスマネージャからドライバファイルを直接指定。なぜか「〜4570 」「〜4570 」「〜4570 」の3つがあるけど違いはよく分からない。とりあえず一番最後のを選択したら画面が切り替わり、1280x800まで選択できるようになる。
サウンドコントローラは最初は認識されないので音が出ない。Realtek High Definition AudioとATI HDMI Audio(これはATI Mobility Radeon HD 4570上にあるらしい)の2つがあり、それぞれこことここに落ちているので拾ってきてさっくり入れるだけ。Fn+F2(ミュート)、Fn+F3(音を小さく)、Fn+F4(音を大きく)は有効なようだ。
まだまだ?マークが付いたデバイスはたくさんあるし、Fn+F5/F6(モニタ輝度調整)も効かないけれど、とりあえずそれなりには使えるようになったのでここでひとまず終了。またそのうち気が向いたらということで。
2009/09/21追記。
Upek Touchstrip Fingerprint Sensor (指紋認証)も一応動いた。ドライバはここ。ソフトウェアのProtector Suite QLはUS Sonyのこの辺に落ちている(無かったら右上のSearch boxに「Protector Suite QL」と入れて検索)。どうやら多言語化されているようで、インストール直後から日本語で使えるようになった。ただしバージョンが5.6.xなのでFirefox 3.5に対応してない。ぐんにょり。