お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-10-29 17:39:05

niwatako
新しいメンバ
登録日: 2010-10-29

vistaとubuntuが入ったパソコンへXPをインストールしたらGRUB2がXPを認識しない

Vista、Ubuntu、XPのマルチブートにしようと、
VistaとUbuntuが入ったパソコンへXPをインストールしました。

結果、XPしか立ち上げることの出来ない状態になったので
http://collab.mynu.jp/wiki/pages/viewpage.action?pageId=7275329
を参考にしてGRUBを復旧しました。

しかし、update-grubを行っても、Vistaしか見つからず、XPが認識されません。


必要となりそうな情報は以下の通りです。



XPを入れるパーティションはVistaから、
EASEUS Partition Manager というソフトを利用して作りました。


$ sudo fdisk -l

ディスク /dev/sda: 160.0 GB, 160041885696 バイト
ヘッド 255, セクタ 63, シリンダ 19457
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x54b13640

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1               1         936     7512064   27  不明
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2   *         936       13765   103054274+   7  HPFS/NTFS
/dev/sda3           13766       16375    20964825    7  HPFS/NTFS
/dev/sda4           16376       19458    24754177    f  W95 拡張領域 (LBA)
/dev/sda5           16376       19324    23683072   83  Linux
/dev/sda6           19324       19458     1070080   82  Linux スワップ / Solaris



grub.cfg内の30_os-proberの結果内容

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows Vista (loader) (on /dev/sda1)" {
    insmod ntfs
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set aa94e13294e10225
    chainloader +1
}
menuentry "Windows Recovery Environment (loader) (on /dev/sda2)" {
    insmod ntfs
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set 70bce43dbce3fc0a
    drivemap -s (hd0) ${root}
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###



GRUB2の40_customに次の様に記述してみました。

menuentry "Windows XP" {
    insmod ntfs
    set root='(hd0,3)'
    search --no-floppy --fs-uuid --set 2834ACDB34ACACEE
    drivemap -s (hd0) ${root}
    chainloader +1
}

『--set 2834ACDB34ACACEE』は"場所"の"ファイルシステム"を開いた際のタイトルを使用しています。


これで再起動すると、
電源ON→GRUB、XP選択 では
『NTLDR is missing 』と表示されます。


一体なにがどうなっているのでしょうか。
起動後のGRUB画面でXP、VISTA、Ubuntuの3OSを選択して無事起動できるようにするにはどうしたら良いのでしょうか。

オフライン

 

#2 2010-10-29 17:44:21

niwatako
新しいメンバ
登録日: 2010-10-29

Re: vistaとubuntuが入ったパソコンへXPをインストールしたらGRUB2がXPを認識しない

書き足しておきますとパソコンはソニーのVAIOで
menuentry "Windows Vista (loader) (on /dev/sda1)" はリカバリ用の領域
menuentry "Windows Recovery Environment (loader) (on /dev/sda2)" はVista本体です。

オフライン

 

#3 2010-10-29 18:02:00

niwatako
新しいメンバ
登録日: 2010-10-29

Re: vistaとubuntuが入ったパソコンへXPをインストールしたらGRUB2がXPを認識しない

ごめんなさい、事態は少し異なるようです。
Vistaの起動を試しておらず、ただ今試したところ、

menuentry "Windows Vista (loader) (on /dev/sda1)"
は、リカバリ用の領域でVAIOリカバリセンターが立ち上がります。

しかし
menuentry "Windows Recovery Environment (loader) (on /dev/sda2)"
は、Vista本体だったはずなのですが、いま起動してみたらXPでした。

XPインストール前、
menuentry "Windows Recovery Environment (loader) (on /dev/sda2)" という
menuentryの名称を変えるため40_customを編集してあり、
ここにVistaを起動するためのメニューがあるのですが、

内容はXPインストール後にできた
menuentry "Windows Recovery Environment (loader) (on /dev/sda2)"
と同一で、起動時にそのメニューを選んでもVistaではなくXPが起動するようになっています。

ファイルシステムから見るにVistaをXPで上書きしたということではないようです。

オフライン

 

#4 2010-10-30 00:35:55

hir0
メンバ
登録日: 2008-09-28

Re: vistaとubuntuが入ったパソコンへXPをインストールしたらGRUB2がXPを認識しない

ん?
後は/dev/sda3 しか残ってないよ。
確認はされまいたか?

Ubuntuの「場所」からもパーティション内のファイルにアクセスできるので存在の有無等をビジュアルで確認できますよ。

オフライン

 

#5 2010-10-31 13:26:21

niwatako
新しいメンバ
登録日: 2010-10-29

Re: vistaとubuntuが入ったパソコンへXPをインストールしたらGRUB2がXPを認識しない

WindowsOSはMBR→PBRと二段階の起動ステップを踏む様ですね。

XPインストール後、MBRにGRUBを上書きして、
各OSのパーティションにはアクセスできるようになった。
というのが私の調節出来た段階だった様です。

そして分かったことは、
Vistaが入っているパーティション(cドライブ)に
XPのPBRが書き込まれていたということです



したがって、


XPのパーティションにGRUBから直接行くと、

XPの起動に必要な二段回目のPBRの読み込みが出来ず、
「NTLDR is missing」と表示されてしまう。

そしてVista(=cドライブ)だったメニューを読み込むと、

cにあるXPのPBRが読み込まれ、XPのパーティションへ行ける。



と同時に、つまりVistaにはアクセスできない、と。



(UbuntuはPBRを必要としないのでそのまま使える)



なので、
XPのパーティションにXPのPBRを書き込もうと、

XPからCドライブにアクセス、

フォルダオプション⇒表示⇒

詳細設定:保護されたオペレーティングシステムファイルを表示しない

のチェックを外し、

「ntldr」

「boot.ini」

「NTDETECT.COM」

の三つのファイルをXPのパーティション

(当方の場合 ローカル ディスク (I:) )へコピーしました。



そうしたところ、

40_customで次の様に作成したメニューからXPが起動できるようになりました。

menuentry "Windows XP" {

    insmod ntfs

    set root='(hd0,3)'

    search --no-floppy --fs-uuid --set 2834ACDB34ACACEE

    drivemap -s (hd0) ${root}

    chainloader +1

}

また、Ubuntuから sudo grub-update を行うと
Found Microsoft Windows XP Professional on /dev/sda3
と、XPを認識してくれるようになりました。


次の課題はCにVistaのPBRを修復することです。

インストールディスクの『コンピュータを修復する』で修復する方法がある様ですが、
メーカー製(VAIO)のためOSインストールディスクはありません。

どこかから手に入れる必要がありますが、
どうやらVista以降のWindowsOSなら同じ起動システムのため
WindowsServer2008体験版等からでも修復できるようですね。

体験版をダウンロード・CD作成してやってみます。

オフライン

 

Board footer

Powered by FluxBB