テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

デュアルブート(ドライブは別々)

先日, 新しいマシンを買いました. 主な目的は, 開発中(残念ながらクローズド)のdm-lcを追い込むことですが, GPGPUもしたいしゲームもしたいのでGTX660を積んでいます. Linuxをメインで使いたいがWindowsも使いたい. そんなおれの願いを叶えてくれ!!神龍!!!

第一感はデュアルブートですが, デュアルブートでなくても, Linux上の仮想マシンにWindowsを入れるなど, 色々な方法があり得ます. それぞれのトレードオフを検討し, 自分の持っている資産や用途に合うものを検討しました. 結果,

  • LinuxとWindowsは別々のドライブに入れる.
  • ブートローダはGRUB2を使う. GRUB2からWindowsをチェインロードする.

というのが手頃で, 環境としてもクリーンかなと思いました. ごちゃごちゃといじった環境はなんとも気持ち悪いものです. 特にLinuxとWindowsのデュアルブートは, 色々ときな臭いことも起こり得ます. ここではMBR/GPTの違いが紹介されています. そして, 嵌ったということも書いてあります. 意外にきな臭いものです. カーネルや計算機に十分詳しい人が時系列的に, 綿密に調査したあとですら嵌っているという事実. ここで攻めるのは, 度胸が入ります.
もちろん , 実現可能であることも分かりました. 同じディスクの上にパーティションを切って必死こくくらいなら, ドライブを一台追加してそれぞれにOSを入れるのが良いかと思います. オススメです. 検討内容は, 書くと長くなるしごちゃごちゃするので省略します.

2点だけ, 嵌った点について紹介します.

まず1点目は, Windows 8 Proのインストールをする時は, インストール先のドライブ以外は(DVDドライブはつけててもいいですが)外しましょう. でないと, インストール出来ません (参考).

2点目, /etc/grub.d/40_customに書く内容です. ここに, GRUB Legacyでのやり方が書いてあります. このうち, mapとchainloaderって何?というのが気になるところです.

mapは, disk swappingという定型トリックです (参考). 2行セットで使われます. なぜそんなことが必要かというと, ここに書いてあるように, 「Windowsは本来プライマリマスターのMBRにWindowsのブートローダー以外をインストールすると起動できません」からです. このテクニックは常套であるため, GRUB2では, drivemap -s (sはswapの意味かとおもわれ)で提供されています (参考). ちなみにおれは, "map"という単語が定義も曖昧に使われていることがすごく嫌いです. mmap, device-mapper, map f xs, std::map, google map, 何でもmapです. 人類アホなん?

chainloaderは, これも定型文だと思いましょう. Linux以外のブートローダをキックするためのお作法です. 設定が間違っていれば全くロード出来ないはずですから, 動けば良いというくらいで割り切ります.

動作確認済の設定ファイルが以下です.

akira@Lyle> cat /etc/grub.d/40_custom                                   ~
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Windows" {
set root=(hd1,1)
drivemap -s hd0 hd1
chainloader +1
}

最後に, Windows 8 Proを使ってた感想. 激しく後悔しました. マシンを買う時に, 5000円追加して8 Proにしました. 理由は, Client Hyper-Vを試してみたいと思ったからです. これは, 8 Proでなければ使えません. でもふつうに7 Proにしておくべきだった. なぜか?UIが糞です. 使いづらい. 重い!イライラする!もともと, Windowsは使い方が直感的でないし, 良くわかんねーなでしたが, さらに良く分からなくなりました. これってどういう人が得するんですかね. 分かりやすいUIを作る技術が軒並みAppleにパテントされていて分かりづらいUIしか作ることが出来ないのでしょうか.