2008年7月3日木曜日

1番じゃなきゃ嫌だという駄々っ子なWindowsをgrubで騙す

昨日に続いてまたgrubネタです。
昨日のエントリーで授業で自作したマシンにLinuxを突っ込んだという話をしましたが、実は面倒なことが起こってたのです。

マシンを自作したというのは実はけっこう前の話で、既にWindowsとFedoraを突っ込んでデュアルブート環境を作ってありました。そこに、いらなくなった他のマシンからHDDを持ってきて増設し、ついでに何かOSをインスコしてみようという流れでした。

既存HDD - WinXP、Fedora
増設HDD - 各々が選んだLinuxディストリビューション
という具合にしたのですが、ここで面倒な事が起こりました。

インストール時に既存HDD上のOSを認識していなかったため、grubの起動メニューにWinとFedoraが出てこなかったり、
そもそも増設HDDはBIOSで2番目になってるので、既存HDDの方のgrubが起動して新しく入れたLinuxが起動できなかったり、e.t.c...
ディストリのインストール時に、grubメニューについて訊いてくるのでちゃんと既存OSを設定しておけばいいんですけど、皆何も知らずにOKボタン連打 orz
Ubuntuだけはちゃんと既存OSを認識してたのには、やっぱこだわってるんだなぁ、と思いました。

まぁ、grubのmenu.lst(grub.conf)を書き変えて解決!と思いきや、1台面倒なことになってるのがありました。

既存HDD側のgrubがおかしなことになっていてgrubが起動しなかったので、ちょっとLiveCDで中を覗いてみたら、、、なんじゃこりゃ??

既存HDDのパーティションが何故か、WinのNTFS領域とあとは全部LVMの中。
grubが入ってる/bootパーティションもおそらくLVMの中。
素のままじゃアクセス出来ないLVMの中。。。 orz
これが、grubが起動出来なかった原因なのか、MBRの方が書き換わってしまっていたのかよく分かりませんが。このマシンを組んだ奴がとちりやがったということはよく分かりました。(#^ω^)

マシンを作った時に、
・/bootは別の基本パーティションにすること。
・Win、/boot、Fedoraのルート、SWAP、WinとFedoraの共有領域、で5つになるので拡張パーティションを使うこと。(基本パーティションは4つまで)
ということを教授に言われた筈だったんですがね。
学生がそれぞれ1台ずつ作ったんですが、危なっかしいのがいたしなぁ。
まぁ正直、MBRとかパーティション回りのことあんまり知らないので、ここいらで文句はやめときます。

んで、来週の授業でWinを使わなきゃならないそうなので、Winだけでも起動するようにしたい。
起動順序を増設HDDを1番にして、こっちのgrubからWinが呼ばれるようにすればいい、と考えたのですが。。。Windowsたんってば1番目のHDDじゃなきゃ起動してくれないのね。。。T T

何とかしてLVMの中が見えないものかと、GpartedのLive CDなんかを使ってみると、、、
おぉ、Live CDの中のgrubがパーティションを指定して起動出来るようになってる〜。
試しにWinが入ってるパーティションを指定してみると、久しぶりのWin起動画面が!
HDDが2番のままでも起動出来る方法があるわけね。

Live CDのgrubのWinのパーティションを起動するオプションの内容をみてみると、
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
chainloader +1
普通、hd1からWinは起動できませんが、hd1とhd0を仮想的に入れ替えて、Winを騙せるようです。
あとはこいつを増設HDDのgrubに書き込んで、作業完了!
とりあえずWinが起動するようになりました。

後に残ったLVM領域は…
…今度考えることにします。 orz

0 件のコメント: