パーティションテーブルを吹っ飛ばしたりしておきながら結局何もせずに終わりましただと悔しすぎるので今度はちゃんと入れる
まずはMBRをWindowsのものにする, 446バイト(←ここ重要)
これでWindowsしかあがらなくなる
DVD-Rを買ってきてx64版Vista RC1のイメージを焼く
インストール先マシン以外からプロダクトキーを調べられる忘れさえしなければ普通にメモを用意するだけでいいはずなんだけどねぇ環境を用意する
再起動, Vistaのディスクから起動する
メッセージに従って適当にすすむ
2度ほど再起動してユーザアカウント作成, パフォーマンス測定をして利用可能に
ビデオカードのドライバは最初からnVidiaのものが入ってくれていたので特に何もせずにAeroが使えた
ちなみにCPUのドライバはMicrosoftのものだった, AMDのCPUでCnQを使いたい人は注意
適当に色々ウィンドウを開いてみたスクリーンショットはこちら(約1MB)
パフォーマンステストの結果, 一番足を引っ張っているのは当のグラフィックカード, まぁファンレスにこだわって少し遅いのを選んだから仕方がないか
まぁ[Windows]+[TAB]の画面切り替えとかはいろいろなところですでに触れられていることなのであえて触れないが, ほかにもいろいろな所で見た目をVistaっぽく変化させているのが伺える
特に面白いのはマインスイーパ, 無駄にめちゃくちゃきれいなのです
さて, もう少し遊んでからMBRを書き戻すとしましょうか
GRUBのchainloaderでVistaを呼び出すことを画策してMBRをGRUBのものにする
Vistaのブートローダにchainするまではいいのだが, そこからVistaやxpのntldrとか個別のブートローダに何故かチェインできない
MBRを元のものに戻すとうまくチェインできる, chain先のPBRをMBRの中身で置き換えてもNG
因みにMBRがVistaのローダの状態でGRUBにチェイン(後述)して, そこからVistaのローダにチェインしてxpを起動という芸当はできる
どうやらMBR側の(sda1にチェインするだけの)ローダにWindows起動に必要ななにかが埋まっている模様
仕方がないのでVistaのローダをメインにしてGRUBはそこからチェインして使うことにする
必要な準備は, GRUBが書き込まれたブートセクタをファイルの形で用意すること, ddで一発
Vistaのブートローダは従来のntldrと違い, 設定はboot.iniではなく, 専用のコマンドラインアプリケーションbcdeditで行う
Vistaに入ってコマンドプロンプトへのショートカットを右クリックして管理者権限で実行する, これをやらないとブートローダの設定はいじれない
GRUBのエントリを作るには, 以下のような感じのコマンドでいけたはず, 詳細はこの文書を参考にすべし
bcdedit /create /d Linux /application BOOTSECTOR bcdedit /set 直前のcreateの最後に表示されているものをコピペ{GUID} device partition=(ブートセクタのあるファイルがあるドライブのドライブレターX: bcdedit /set {GUID} path ブートセクタのあるファイルのパス, ドライブレターを除いて最初の\から\path\to\bootsetcor bcdedit /displayordeer {GUID} /addlast
ついでにxpのエントリの名前を直してデフォルトにする
bcdedit /set {ntldr} description "Microsoft Windows XP" bcdedit /default {ntldr}
とりあえずこんな感じでxp, Vista, Linuxのマルチブート環境が作れた
ところで, このブートセクタってPBRを見に行かせることはできないのだろうか, 今度試してみよう…
(追記 @ 09/19 朝)
GRUBからBCDにchainしていると思しき例を発見, だとするとこっちが失敗した理由は何なんだろうか
もう一度試してみてもいいけど, 面倒なのよね…
なにはともあれVistaのブートローダ, 2進化10進数のことではない, そもそも何でこんな語に衝突する名前にしたのだろうか…BCDに関する情報が現時点では少なすぎるのが問題