
Ubuntu日本語フォーラム

ログインしていません。
ubuntu10.04,windows7,windowsxpのマルチブートにしているのですがgrubのos選択画面でxpが表示されません。
040_customを編集してみたのですがupdateで下記のようなエラーがでました。
xpはsdb1に入ってます。どうしたらエラーが消えるのでしょうか?教えてください。
$ sudo update-grub2
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-22-generic
Found initrd image: /boot/initrd.img-2.6.32-22-generic
Found linux image: /boot/vmlinuz-2.6.32-21-generic
Found initrd image: /boot/initrd.img-2.6.32-21-generic
Found linux image: /boot/vmlinuz-2.6.31-21-generic
Found initrd image: /boot/initrd.img-2.6.31-21-generic
Found memtest86+ image: /boot/memtest86+.bin
ERROR: nvidia: wrong # of devices in RAID set "nvidia_ahjidbgc" [1/2] on /dev/sdb
Found Windows 7 (loader) on /dev/sda1
done
オフライン
windows7,windowsxp等のOSのサーチに関するファイルは「30_os-prover」ですが、「40_custom」を特別な事情で編集されているようですが、次の情報を提示してください。
sudo fdisk -l の内容
/boot/grub/grub.conf の内容
オフライン
返事ありがとうございます。
sudo fdisk -l の内容は
「
ディスク /dev/sda: 1000.2 GB, 1000204886016 バイト
ヘッド 255, セクタ 63, シリンダ 121601
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x285769e3
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 13 102400 7 HPFS/NTFS
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2 13 121602 976657408 7 HPFS/NTFS
パーティション 2 は、シリンダ境界で終わっていません。
ディスク /dev/sdb: 250.1 GB, 250059350016 バイト
ヘッド 255, セクタ 63, シリンダ 30401
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x08e308e2
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 * 1 30400 244187968+ 7 HPFS/NTFS
ディスク /dev/sdc: 40.0 GB, 40020664320 バイト
ヘッド 255, セクタ 63, シリンダ 4865
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x951e26df
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdc1 * 1 4660 37431418+ 83 Linux
/dev/sdc2 4661 4865 1646662+ 5 拡張領域
/dev/sdc5 4661 4865 1646631 82 Linux スワップ / Solaris
ディスク /dev/sdd: 4002 MB, 4002910208 バイト
ヘッド 124, セクタ 62, シリンダ 1016
Units = シリンダ数 of 7688 * 512 = 3936256 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00025ab2
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdd1 * 1 1016 3905473 b W95 FAT32
hisahiro@hisahiro-desktop:~$ sudo fdisk -l
ディスク /dev/sda: 1000.2 GB, 1000204886016 バイト
ヘッド 255, セクタ 63, シリンダ 121601
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x285769e3
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 13 102400 7 HPFS/NTFS
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2 13 121602 976657408 7 HPFS/NTFS
パーティション 2 は、シリンダ境界で終わっていません。
ディスク /dev/sdb: 250.1 GB, 250059350016 バイト
ヘッド 255, セクタ 63, シリンダ 30401
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x08e308e2
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 * 1 30400 244187968+ 7 HPFS/NTFS
ディスク /dev/sdc: 40.0 GB, 40020664320 バイト
ヘッド 255, セクタ 63, シリンダ 4865
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x951e26df
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdc1 * 1 4660 37431418+ 83 Linux
/dev/sdc2 4661 4865 1646662+ 5 拡張領域
/dev/sdc5 4661 4865 1646631 82 Linux スワップ / Solaris
ディスク /dev/sdd: 4002 MB, 4002910208 バイト
ヘッド 124, セクタ 62, シリンダ 1016
Units = シリンダ数 of 7688 * 512 = 3936256 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00025ab2
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdd1 * 1 1016 3905473 b W95 FAT32
」
/boot/grub/grub.conf の内容は
「
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
set saved_entry=${prev_saved_entry}
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z ${boot_once} ]; then
saved_entry=${chosen}
save_env saved_entry
fi
}
function recordfail {
set recordfail=1
if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
insmod ext2
set root='(hd2,1)'
search --no-floppy --fs-uuid --set 16a2aef1-ec71-4ec4-82a8-29ea8ca2305b
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
fi
fi
insmod ext2
set root='(hd2,1)'
search --no-floppy --fs-uuid --set 16a2aef1-ec71-4ec4-82a8-29ea8ca2305b
set locale_dir=($root)/boot/grub/locale
set lang=ja
insmod gettext
if [ ${recordfail} = 1 ]; then
set timeout=-1
else
set timeout=10
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd2,1)'
search --no-floppy --fs-uuid --set 16a2aef1-ec71-4ec4-82a8-29ea8ca2305b
linux /boot/vmlinuz-2.6.32-22-generic root=UUID=16a2aef1-ec71-4ec4-82a8-29ea8ca2305b ro quiet splash
initrd /boot/initrd.img-2.6.32-22-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-22-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd2,1)'
search --no-floppy --fs-uuid --set 16a2aef1-ec71-4ec4-82a8-29ea8ca2305b
echo 'Loading Linux 2.6.32-22-generic ...'
linux /boot/vmlinuz-2.6.32-22-generic root=UUID=16a2aef1-ec71-4ec4-82a8-29ea8ca2305b ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-22-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd2,1)'
search --no-floppy --fs-uuid --set 16a2aef1-ec71-4ec4-82a8-29ea8ca2305b
linux /boot/vmlinuz-2.6.32-21-generic root=UUID=16a2aef1-ec71-4ec4-82a8-29ea8ca2305b ro quiet splash
initrd /boot/initrd.img-2.6.32-21-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-21-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd2,1)'
search --no-floppy --fs-uuid --set 16a2aef1-ec71-4ec4-82a8-29ea8ca2305b
echo 'Loading Linux 2.6.32-21-generic ...'
linux /boot/vmlinuz-2.6.32-21-generic root=UUID=16a2aef1-ec71-4ec4-82a8-29ea8ca2305b ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-21-generic
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod ext2
set root='(hd2,1)'
search --no-floppy --fs-uuid --set 16a2aef1-ec71-4ec4-82a8-29ea8ca2305b
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod ext2
set root='(hd2,1)'
search --no-floppy --fs-uuid --set 16a2aef1-ec71-4ec4-82a8-29ea8ca2305b
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set aea0b49ea0b46e89
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# 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 XP (on /dev/sdb1)" {
insmod ntfs
set root=(hd1,1)
drivemap -s (hd1) ${root}
chainloader +1
}
### END /etc/grub.d/40_custom ###
」
になってます。念のため全部コピーしました。
30_os-proverを編集した方がよかったのでしょうか?初心者なもので40を編集してしまいました。
よろしくおねがいします。
オフライン
### BEGIN /etc/grub.d/40_custom ###
# 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 XP (on /dev/sdb1)" {
insmod ntfs
set root=(hd1,1)をset root='(hd1,1)'に修正し sudo update-grubとしてみてください。
drivemap -s (hd1) ${root}
chainloader +1
}
### END /etc/grub.d/40_custom ###
オフライン
さっそく、40を編集しなおしてupdateしましたが、次のエラーがまだ残ってしまいました。
ERROR: nvidia: wrong # of devices in RAID set "nvidia_ahjidbgc" [1/2] on /dev/sdb
再起動したところgrubでXPの表示が出たので起動してみようと思ったのですが、ブランクスクリーンになって動きませんでした。
オフライン
Xpの非表示、nvidiaのエラー表示される前にどのような事をされました。
/etc/grub.d/40_custom の
insmod ntfs
set root='(hd1,1)'
search --no-floppy --fs-uuid --set aea0b49ea0b46e89この1行を追加赤字の部分は下記
drivemap -s (hd1) ${root}
chainloader +1
赤字部分について端末で sudo blkid を実行します。下記(一部略例)のように表示されます。(hd1,1)に該当する部分をコピー&ペースト
root@ssd64-desktop:/home/ssd64# blkid
/dev/sda2: UUID="346022D360229C1C" TYPE="ntfs" 赤色の部分のみ
/dev/sdc1: UUID="11b49727-e916-4549-bd9e-f7c83f0e76e3" TYPE="ext4"
とりあえず、Xpに関するとこだけです。
オフライン
いつのまにか、xpがsdcになってました。
nvidiaのエラーはupdate-grubで端末に表示されていたものです。
# blkidの結果は
「
/dev/sda1: UUID="16a2aef1-ec71-4ec4-82a8-29ea8ca2305b" TYPE="ext4"
/dev/sda5: UUID="916d6187-2eba-4da0-8d81-720d048225d9" TYPE="swap"
/dev/sdb1: LABEL="M-cM-^BM-7M-cM-^BM-9M-cM-^CM-^FM-cM-^CM- M-cM-^AM-'M-dM-:M-^HM-gM-4M-^DM-fM-8M-^HM-cM-^AM-?" UUID="AEA0B49EA0B46E89" TYPE="ntfs"
/dev/sdb2: UUID="EA88BD9688BD61AD" TYPE="ntfs"
/dev/sdc1: UUID="868C6FAF8C6F9907" TYPE="ntfs"」で
grub.cfgの内容は
「
## BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sdb1)" {
insmod ntfs
set root='(hd1,1)'
search --no-floppy --fs-uuid --set aea0b49ea0b46e89
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# 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 XP (on /dev/sdc1)" {
insmod ntfs
set root='(hd2,1)'
search --no-floppy --fs-uuid --set 868C6FAF8C6F9907
drivemap -s (hd2) ${root}
chainloader +1
}
### END /etc/grub.d/40_custom ###
」です。
再起動の結果、またgrubでxpが表示されたのですが、勝手に再起動してしまいました。
オフライン
Windows7が/dev/sdb になっていますよ。
デバイスファイルは接続順に割り当てられるのですがHDDを接続したり外したりされているのでしょうか?
その辺のハード構成が分からないと状況を判断出来ないのでお願いします。
Windowsは一番目のHDDに無ければ起動しないと言う制約が(XPの初期までは確認)有りました。
つまり/dev/sda (hd0)でなければ行けないのでmapで入れ替えます。
drivemap -s (hd2) ${root}
これはどこの情報でしょうか? オプション [s]を知らないのですが、(hd2)と${root}を入れ替えるオプションなら${root}を(hd0)に変えてください、分からずに設定しているのでしたら下記の様に変更してみましょう。
drivemap (hd0) (hd2)
drivemap (hd2) (hd0)
と2行記述する事で(hd2)にあるWindowsを(hd0)であるように認識させます。
set root (hd@) ここは
set root=UUID='@@@-@@@@-@@@@'
「@」は起動デバイスのUUID
こうすることで、デバイスが外付けのUSB-HDDで接続順序でデバイスファイル名が変更になっても「場所」を認識します。
ですが「外付け」等も含み想像でしかないので、ハード構成と何故デバイスファイル名が変わったか?
現在は何を/dev/sdaと認識しているのか、状況を知らなければ識者の方もコメントが付けれないと思います。
ubuntu10.04,windows7,windowsxpのマルチブートにしているのですがgrubのos選択画面でxpが表示されません。
以前はどうでしたでしょうか、今回始めてのマルチブート環境で現象が出たのでしょうか?
オフライン
返事ありがとうございます。
sdaがUBUNTU sdbがWINDOWS7 sdcがXPになっています。
今までbiosのF12のブートメニューでOSを選択してました。
WINDOWS7を起動させたときにXPがsdbからsdcに変わったのでしょうか??よくわからないです。
UBUNTUをインストールした時点でWINDOWS7だけgrubに表示されていました。
ハード構成は
グラボ radeon hd5770
マザー GA-M-720-US3
メモリ 1ギガ*4
CPU AthlonⅡx2 235e
hdd IDE マスターUBUNTU
sata マスターwindows7, スレーブXP
になっています。
40_customを編集しなおしました。
grub.cfgの内容
「
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sdb1)" {
insmod ntfs
set root='(hd1,1)'
search --no-floppy --fs-uuid --set aea0b49ea0b46e89
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# 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 XP (on /dev/sdc1)" {
insmod ntfs
set root=UUID='868c6faf8c6f9907'
search --no-floppy --fs-uuid --set 868c6faf8c6f9907
drivemap (hd0) (hd2)
drivemap (hd2) (hd0)
chainloader +1
}
」
同じようにXPを起動させようとしても勝手に再起動します。
オフライン
何となく状況が分かりました。
BIOSの起動順位の変更でWindowsは起動するのですよね?
現在grubからXP以外が起動できりのでしたら以下の操作は行わないでください。
Ubuntuの起動優先順位を一番初めにしてください。
/dev/sdaと認識されているはずです。 ライブCD/USB を入れて起動、最初の画面が表示されたら素早く?何かキーを押してください。
もし言語選択などが現れたら「日本語」を。
メニューが表示されますので一番上(だったかな)のHDDに変更を加えないで起動(お試し)にカーソルを合わせて[F6]キーを押します。
POPアップが表示されますが[esc]キーでキャンセル。
下段に起動オプションが表示されています、[カーソル]キーでカーソルが移動できますので「boot=casper」と書かれている所を変更します。
root=/dev/sda1
エンターキーを押します
boot を root に変更し忘れないでください。
$ sudo grub-install /dev/sda
再起動してUbuntuが無事に起動するのでしたらら問題はないでしょう。
40_custom の編集を行います。
bb
menuentry "Windows 7 (on /dev/sdb1)" {
insmod ntfs
insmod chain
set root=(hd1,1)
drivemap (hd0) (hd1)
drivemap (hd1) (hd0)
chainloader +1
}
menuentry "Windows XP (on /dev/sdc1)" {
insmod ntfs
insmod chain
set root=(hd2,1)
drivemap (hd0) (hd2)
drivemap (hd2) (hd0)
chainloader +1
}
オフライン