
Ubuntu日本語フォーラム

ログインしていません。
WindowsXP のPC に HDD を増設して 増設した HDD にUbuntu 10.04をインストールしました。
WindowsXP の調子が悪くなったので、HDD のフォーマットを実行してWindowsXP をクリーンインストールしたところ、GrubメニューでWindowsを選択しても "error: no such device:..."と表示されてWindowsが起動しません。UUID が変更されたのが原因と推測しています。(上記エラー表示の後の...部分にはフォーマット前のUUIDが表示されるので…)。いろいろ調べてみましたが、Grub2 でのUUID 変更方法が見つからず困っています。一体どのようにすれば現在のUUIDに変更できるのでしょうか?なお、ためしにGrub2を削除し再インストールしてみましたが結果は同じでした。
オフライン
$ sudo update-grub
新規構成に合わせてgrub.cfg(設定ファイル)が書き換えられます。
WindowsのHDDにGRUBをインストールしているのでしょうか?
オフライン
hir0さん、コメントありがとうございました。アドバイスの内容を試してみましたが、残念ながら結果は同じでした。
オフライン
> WindowsのHDDにGRUBをインストールしているのでしょうか?
はい。そのつもりです。
オフライン
Ubuntuの方は起動するのですよね?
GRUB2の設定はシステムが自動で行います。
ユーザーカスタマイズのメニューを登録する方法も用意されていますが、今回は根本的な原因を改善しないといけない様です。
次のコマンドの結果をください。
$ sudo fdisk -l
$ sudo os-prober
$ gedit /boot/grub/grub.cfg
$ sudo blkid
一つ確認です。
GRUBがインストールされているHDDにWindowsをインストールされたのですよね。
そうすると起動時にはGRUBではなくWindowsのブートローダが起動するはずですが、GRUBが起動してしまうということはWindowsのブートローダがインストールに失敗開いた可能性も有ります。
幾つかの事例と対策は出ていますが、取り敢えずは状況の確認の為に上記のコマンドの出力結果をお願いします。
オフライン
hir0さん、コメントありがとうございます。
まず今日は、$ sudo fdisk -l の結果のみご連絡します。警告が出ていますが、以前GrubをUbuntuのHDDにインストールしてしまったのが原因かも知れません。
<ここから>
ディスク /dev/sda: 320.1 GB, 320072933376 バイト
ヘッド 255, セクタ 63, シリンダ 38913
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0xfa05fa05
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 34003 273129066 7 HPFS/NTFS
/dev/sda2 34004 38912 39431542+ f W95 拡張領域 (LBA)
/dev/sda5 34004 38912 39431511 e W95 FAT16 (LBA)
警告: GPT (GUID パーティションテーブル) が '/dev/sdb' に検出されました! この fdisk ユーティリティは GPT をサポートしません。GNU Parted を使ってください。
ディスク /dev/sdb: 2000.4 GB, 2000398934016 バイト
ヘッド 255, セクタ 63, シリンダ 243201
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x716c716c
デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 1 243202 1953514583+ ee GPT
tugiani@tugiani-desktop:~$ sudo fdisk -l > temp1.txt
警告: GPT (GUID パーティションテーブル) が '/dev/sdb' に検出されました! この fdisk ユーティリティは GPT をサポートしません。GNU Parted を使ってください。
<ここまで>
実はWindowsXPの再インストールの後のアップデートがうまくいかず、ヘトヘトに疲れてしまいました。続きは後日ご連絡します。
オフライン
GPTは次世代?新方式のパーティションテーブルなので気にしなくても大丈夫です。
使用した「fdisk」と言うコマンドが新しいタイプを分析して表示する機能が無いだけです。
WindowsのHDD=/dev/sda
UbuntuのHDD =/dev/sdb
ですね。
もう一度確認しますが、Ubuntuは起動するのですよね。そして 「$ sudo update-grub」 の実行後も変化無しで良いでしょうか。
明日は遅くなりそうなので、他のメンバから書き込みが有りましたら続けてください。
オフライン
hir0さん、 お忙しいところ、ありがとうございます。
1.「$ sudo update-grub」 を今日も試してみましたが、やはり結果は同じでした。
2.HDD と OS の関係はご指摘のように、以下のとおりです。
WindowsのHDD=/dev/sda
UbuntuのHDD =/dev/sdb
3.Ubuntu 9.10完全ガイドを見てGrubを再インストールしましたので、Ubuntuは起動します。ここで一つ気がつきましたが、ネットワーク経由で10.04にバージョンアップしているにも拘らず、再インストールは上述の雑誌の付録のライブCDを使用してしまいましたので、不整合が起こっているのかもしれません。10.04 の CD を作成後、その CD を使用して再インストールすべきでしたでしょうか?
4.「$ sudo os-prober」の結果は以下のとおりです。
/dev/sda1:Microsoft Windows XP Home Edition:Windows:chain
5.「gedit /boot/grub/grub.cfg」の結果は長くなりましたので、後ほどご報告します。
オフライン
hir0さん、
「$ gedit /boot/grub/grub.cfg」の結果は以下のとおりです。
<ここから>
#
# 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='(hd1,2)'
search --no-floppy --fs-uuid --set fbfea167-5351-4f37-92db-1c0806c167e2
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='(hd1,2)'
search --no-floppy --fs-uuid --set fbfea167-5351-4f37-92db-1c0806c167e2
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-28-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd1,2)'
search --no-floppy --fs-uuid --set fbfea167-5351-4f37-92db-1c0806c167e2
linux /boot/vmlinuz-2.6.32-28-generic root=UUID=fbfea167-5351-4f37-92db-1c0806c167e2 ro quiet splash
initrd /boot/initrd.img-2.6.32-28-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-28-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd1,2)'
search --no-floppy --fs-uuid --set fbfea167-5351-4f37-92db-1c0806c167e2
echo 'Loading Linux 2.6.32-28-generic ...'
linux /boot/vmlinuz-2.6.32-28-generic root=UUID=fbfea167-5351-4f37-92db-1c0806c167e2 ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-28-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-27-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd1,2)'
search --no-floppy --fs-uuid --set fbfea167-5351-4f37-92db-1c0806c167e2
linux /boot/vmlinuz-2.6.32-27-generic root=UUID=fbfea167-5351-4f37-92db-1c0806c167e2 ro quiet splash
initrd /boot/initrd.img-2.6.32-27-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-27-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd1,2)'
search --no-floppy --fs-uuid --set fbfea167-5351-4f37-92db-1c0806c167e2
echo 'Loading Linux 2.6.32-27-generic ...'
linux /boot/vmlinuz-2.6.32-27-generic root=UUID=fbfea167-5351-4f37-92db-1c0806c167e2 ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-27-generic
}
menuentry 'Ubuntu, with Linux 2.6.31-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd1,2)'
search --no-floppy --fs-uuid --set fbfea167-5351-4f37-92db-1c0806c167e2
linux /boot/vmlinuz-2.6.31-22-generic root=UUID=fbfea167-5351-4f37-92db-1c0806c167e2 ro quiet splash
initrd /boot/initrd.img-2.6.31-22-generic
}
menuentry 'Ubuntu, with Linux 2.6.31-22-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd1,2)'
search --no-floppy --fs-uuid --set fbfea167-5351-4f37-92db-1c0806c167e2
echo 'Loading Linux 2.6.31-22-generic ...'
linux /boot/vmlinuz-2.6.31-22-generic root=UUID=fbfea167-5351-4f37-92db-1c0806c167e2 ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.31-22-generic
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod ext2
set root='(hd1,2)'
search --no-floppy --fs-uuid --set fbfea167-5351-4f37-92db-1c0806c167e2
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod ext2
set root='(hd1,2)'
search --no-floppy --fs-uuid --set fbfea167-5351-4f37-92db-1c0806c167e2
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows NT/2000/XP (loader) (on /dev/sda1)" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 1AC4A9A6C4A9851B
drivemap -s (hd0) ${root}
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.
### END /etc/grub.d/40_custom ###
<ここまで>
先週末、「とにかくGrubの設定ファイルと思しきものの中の Windowsをインストールした HDDの旧UUIDを新しいUUIDに書き換えればうまくいくはず。」と考え、関連しそうなgrub.cfgの内容を書き換えました。ところがうまくいかないのでさらに調べてみると、grub.cfgは出力結果なので編集すべきでない、というような記述を読みました。このファイルの先頭にも編集しないよう注意書きがあることに今気づき、愕然としています。grub.cfgの内容は敢えて元には戻していません。
grub.cfgを書き換えた後は、GrubメニューでWindowsを選択しようとした際に表示されるエラーメッセージには新しい UUID が表示されます。しかしWindowsは依然として起動しないままです。長くなりましたので、次のコマンドの実施結果は後ほどご連絡します。
オフライン
hir0さん、
「$ sudo blkid」の実行結果は以下のとおりです。
/dev/sda1: UUID="1AC4A9A6C4A9851B" TYPE="ntfs"
/dev/sdb3: UUID="aea6875b-d804-4f10-9a5c-e3d8155f7c39" TYPE="swap"
/dev/sdb2: UUID="fbfea167-5351-4f37-92db-1c0806c167e2" TYPE="ext4"
お気づきの点がありましたら、またアドバイス願います。
オフライン
う~ん、全て正常に見えます。
システムも全て/dev/sda,/dev/sda1を認識してNTFSでありWindowsであると認識しています。
もちろん、その認識はGRUB2の設定に反映されています。
何か特殊な状態に陥ってしまったか、単純な落とし穴にハマってしまっているのか。。。
何かアドバイスが出なければ、最初からGRUB2を入れ直してみましょう。
次のコマンドを一行ずつ実行してみてください。
$ sudo apt-get update
$ sudo apt-get --reinstall install grub2
$ sudo grub-install /dev/sda
$ sudo update-grub
再起動です。
起動しない場合は、GRUB2のOS選択画面で[C]キーを押してください。
プロンプトが
grub>
と表示されていると思いますので
grub> ls
と入力すると認識しているデバイスが表示されます。
WindowsのHDDは(hd0)、Windowsのパーティションは(hd0,1)もしくは(hd0,msdos1)と表示されるはずです。
表示されればGRUB2はHDDと、そのパーティションを認識しています。
(便宜上(hd0,msdos1)は(hd0,1)と書きます、環境に合わせて読み替えてください)
grub> ls (hd0,1)/
Cドライブの中が表示されれば(windowsフォルダ等)NTFSファイルシステムも理解できています。
Windowsに制御を渡してみます。
grub> set root=(hd0,1)
grub> chainloader +1
[ctrl] + [X] キー
オフライン
hir0さん、アドバイスありがとうございます。
2つ目のコマンド「$ sudo apt-get --reinstall install grub2」を実行すると、色つきの(グラフィック?)画面が表示され、「パッケージの設定 | grub-pc を設定しています | (英文省略) <了解>」と表示されました。その画面で<了解>部分をクリックすることもできず、次に進めません。強制終了して続行して再起動しましたが効果はありませんでした。
上述の色つきの画面で何らかの操作が必要でしょうが、英文を読んでも具体的な指示は記載されていません。この画面でどのように操作すれば良いのでしょうか?
オフライン
自己レスです。
あまりhir0さんばかりに頼っているのも情けない気がして調べたところ、以下のサイトに説明がありました。
https://help.ubuntu.com/community/Grub2
Tab を使って<OK>を選択後、Enter キーを押せば良いことが分かりました。
まだ完了していませんが、少しあがいてみます。
オフライン
そのカラフルな画面はGRUB2を初めてインストールするときに現れるものです。
再インストールでは表示されません。
変ですね?
了解の部分はクリックでは無くカーソルキーでフォーカスを移してEnterキーで行ってみてください(それでもダメだったのかな?)
何かが狂って(勘違い)要るようなので#11の操作で元に戻る期待は有りそうですが、まだ全貌が見えてこないですね,,orz
オフライン
#11の操作を正常終了しました。
実は昨日色つきの画面を強制終了した後何らかの操作をしていたら、プロセスが完了していないので、あるコマンドを実行するようメッセージが表示されたので、そのとおりに実行したら、色つきの画面が立ち上がり、その後を継続することができました。期待しつつ再起動しましたが、結果はうまくいきませんでした。エラーメッセージは以下のとおりでした。
error: no such device: <UUID>.
error: no such partition. ←この行が追加されたようです。
続けるには何かキーを押してください…
本日#11の操作を再実行し、正常終了しました。しかし、再起動後の結果は上記と同じでした。
>何か特殊な状態に陥ってしまったか、単純な落とし穴にハマってしまっているのか。。。
後者ではないかといろいろ考えをめぐらし、「(CDやFDDを優先させる必要があったので)BIOSのBOOT設定を何度もいじった際、HDDの指定を誤ったかも?」と思い、確認してみましたが、WindowsのHDDを指定しており問題ありませんでした。(というか、UbuntuのHDDを指定することはできないようでした。)
いずれにせよ、Windowsが起動しない問題は未だに解決せず、ますます難しい局面に陥っているようです。
hir0さんがこれまでくださったアドバイス以外に、現状を打開するような策はないものでしょうか?
オフライン
行った操作が正しく実行されているのでしたら全て正常です。
GRUB2は(hd0,1)/を認識しCドライブの中を見れます、システムは上ではos-proberは以下の様にWindowsを認識しています。
「/dev/sda1:Microsoft Windows XP Home Edition:Windows:chain」
grub.cfgの記述はupdate-grubで更新されUUIDはblkidで表示される物と一致します。
GRUB2は/dev/sda に再インストールを行いBIOSは/dev/sdaを起動順位一位に指定しています。
ここまでは正常です。
この状態で何故OS選択画面でWindows を選択すると
error: no such device: <UUID>.
error: no such partition
となるのかが不思議です、降参です。
GRUBから離れてみませんか?
内蔵HDDから起動して
$ sudo apt-get update
$ sudo apt-get install lilo
メッセージが表示されますが「yes」や「OK」の方を選択してり過ごしてください。
$ sudo lilo -M /dev/sda mbr
再起動後にWindowsが起動しますが少し待ってください。
これはbootフラグの有るパーティションをアクティブにするものです。bootフラグは#6のfdisk -l の内容で言うと「ブート」欄に表示されている「*」マークがそうです。
Windows のパーティションに付いていますね。
HDDが二つ有るのでUbuntuにも付いているかもしれません、2つ有ると混乱して思わぬエラーを招くかも知れないので「システム」→「システム管理」→「GParted」を起動してください。
「GPartedが「無い場合」
ライブCDでは標準付属ですがインストール後のシステムでは入っていないのでインストールします。
$ sudo apt-get install gparted
GParted を起動したら上段右端の「/dev/sda」と表示されている部分の▼マークをクリックして/dev/sdb(UbuntuのHDD)を選択してください。
Ubuntuのパーティションの「フラグ」欄に「boot」と表示されていたら外します。
表示されている欄をシングルクリックで選択して、右クリックでウィンドウを開きます。
「フラグを編集」を選択して「boot」に付いているチェックを外します。
最終的にWindowsのパーティションのみにbootフラグが付いている状態にします。
これでWindowsは起動するので、次にUbuntuの起動方法の確保です。
[ulr=http://download.gna.org/grub4dos/grub4dos-0.4.4.zip]grub4dos-0.4.4.zip[/url]
ダウンロードしたアーカイブを解凍して出来上がったフォルダから「grldr」と言うファイルを取り出して(移動、もしくはコピペ)Cドライブに置いてください。
Cドライブは上部パネルの「場所」から開けます。
「アプリケーション」→「アクセサリ」→「gedit テキストエディタ」を開いてください。
title Ubuntu 10.10 uuid fbfea167-5351-4f37-92db-1c0806c167e2 kernel /vmlinuz root=UUID=fbfea167-5351-4f37-92db-1c0806c167e2 ro quiet splash initrd /initrd.img title Ubuntu 10.10 uuid fbfea167-5351-4f37-92db-1c0806c167e2 kernel /boot/vmlinuz-2.6.32-28-generic root=UUID=fbfea167-5351-4f37-92db-1c0806c167e2 ro quiet splash initrd /boot/initrd.img-2.6.32-28-generic title Microsoft Windows root (hd0,0) savedefault chainloader +1
Cドライブに「menu.lst」の名前で保存してください。
c:\grldr="Ubuntu"
次にCドライブに有る「boot.ini」ファイルを開きます。
最後に一行追加して保存します。
再起動です。
テキストエディタを使用する部分は文字コードの関係でmenu.lstはUbuntuのエディタ、boot.iniはWindowsからノートパッドを使用して行う方が良いかもしれません。
オフライン
>GRUBから離れてみませんか?
文面からははっきりしませんがgrubのコマンドモードを試していないようなので、grubでもう少しあがいたら新しい発見があるかもしれない。
オフライン
一応Ubuntuは起動できるようなのでモジュールは読み込めていると思います。
試して頂いた
grub> ls (hd0,1)/
grub> set root=(hd0,1)
grub> chainloader +1
[ctrl] + [X] キー
を試して貰いました、ただ回答が「実行しましたがダメでした」系なので `ls'等の結果は本当に問題なかったかは確認していません。
これ以外にNTFSに対するアプローチが分からないので、何かお気付きの事が有ればよろしくお願いします。
オフライン
hir0さん、
どうも文脈を取り違えていたようです。
#6における「grub> ls (hd0,1)/」以降の一連のコマンドは、再起動しない場合に実行すべきものと思い込んでいました。「grub>」なるプロンプトはどのようにして表示させるのでしょうか?
オフライン
いえ、私の文面は崩れまくっていると自他ともに認めている所でも有ります。
#11の中程に書いてあります[C]キーを押す事で実現します。
#11を実行しましたと有りましたので、その部分も実行されたものと思いました。
トピックのやりとりに行き違いが有ったようですね。
もう一度実行して下さい。
キーボードの配列が狂ってしまっているかもしれません。
[ ( ]は [shift] + [ 9 ]、 [ ) ] は [sift] + [ 0 ] の様になる場合が多い様です。
現在の一番の問題はGRUBがHDDを見つけられないことです。
error: no such device: <UUID>.
error: no such partition.
grub> ls
認識されるデバイスが全て表示されます。
そこに、(hd0) が有れば、それがWindwsが有るデバイス/dev/sda にあたります。
(hd0,1)はWindowsが有るパーティション、/dev/sda1 を表します。
この時点で/dev/sdaを認識して要れば、問題のエラーメッセージを回避していることになります。
認識していなければ謎(あり得ないと泣きを入れたい)な状態と言うことになりそうです。
加えて
grub> ls (hd0,1)/
としてCドライブの内容が表示されるなら問題は全くないです。
未知のファイルシステムと表示されるようでしたら
grub> insmod ntfs
grub> ls (hd0,1)/
として下さい。
デフォルトでNTFを認識するモジュールが読み込まれていないかもしれません。
無事にNTFSを認識できるようになりましたら
grub> set root=(hd0,1)
grub> chainloader +1
[ctrl] + [X] キー
です。
一つ疑問が起きたのですが、インストールの順番から行くとWindowsが最後ですよね。
Windowsインストール後はUbuntuは起動できなくなるはずですが、どの様に対処なされたのでしょうか。
この部分に別問題ですがトラブルが起きた事例が有りますので、状況をお願いします。
オフライン
昨夜は寝ぼけていました。参照すべきは#6ではなく、#11でした。
#11で、再起動の話の後で「起動しない場合は、…」と続いていましたので、てっきり「再起動しようとしても起動しない場合は…」の意味と誤解して、その後は読み飛ばしていました。失礼致しました。
jackalopeさん、つっこみありがとうございました。おかげで誤解に気づくことができました。
さて、grub のプロンプトに続いてコマンドを実行した結果は以下のとおりです。
(ここから)
grub> ls
(hd0) (hd1) (hd1,3) (hd1,2) (hd1,1) (fd0)
grub>
no such device ←きちんとメモを取らなかったので多少違っているかもしれません。
(ここまで)
Windows のパーティションを認識していませんね…。
次の一手をご教示願います。
なお、Windowsをインストールした後は、#8の3.に記載しましたように、Grubを再インストールしましたので、Ubuntuは起動します。
オフライン
脱字がありました。先ほどの情報を以下のように訂正します。
(ここから)
grub> ls
(hd0) (hd1) (hd1,3) (hd1,2) (hd1,1) (fd0)
grub> ls (hd0) ←きちんとメモを取らなかったので多少違っているかもしれません。
no such device ←きちんとメモを取らなかったので多少違っているかもしれません。
(ここまで)
オフライン
grub> ls
(hd0) (hd1) (hd1,3) (hd1,2) (hd1,1) (fd0)
UbuntuのHDDは認識してパーティションが3つ切られていると認識しています。
WindowsのHDDは認識しているが、パーティションを認識していません。
起動したUbuntuのシステム上からは全て問題なく認識をしています。う~ん、どういうことでしょうか?(って質問なんですよね)
$ sudo apt-get install grub
$ sudo grub-install /dev/sda
$ sudo update-grub
#11 と似ていますが一行目がgrub2 → grub に変更です。
この三行を実行してみてください。9.04(だったかな)以前のブートローダがインストールされます。
システムは正常にHDDを認識しているので現在MBRに有るGRUBのバージョンを変えて見ることで(バージョンと言うよりはシステム的に別物)問題を切り分ける糸口が見つかるかもしれません。
ダメな場合は#16 の $ sudo lilo -M /dev/sda mbr を試してみてください。
これは、ほぼ通常の動作でWindowsのブートローダを呼び起こします。
もしこれでもダメな場合はMBRのGRUBを削除してからWindowsを再インストールしてみませんか。
過去にMBRにGRUBが残っていることでWindowsの再インストールが失敗する事例が2~3上がっています。
まずは一つずつ確認後に報告を頂ければと思います。
オフライン
#23のアドバイスに従い、(grub2でなく)grub をインストールしました。再起動後、grubメニューにはWindowsの項目がなく、2秒程度でWindowsが立ち上がります。
「$ sudo lilo -M /dev/sda mbr」も実行したように思いますが、メモを取るのを忘れてしまいました。今度はUbuntuが立ち上がらないので、(実行したかどうか)端末で確認することができません。WindowsがHDDから起動できるようになったので、(これまで解決不能なエラーが発生していたため、)今日は再フォーマットとWindowsのインストール及びアップデートを行いました。(しかも最初修復インストールを選択したのに上述のエラーが直らず、改めてクリーンインストールせざるを得ませんでした。)延々と続くインストール作業とアップデートで疲れ果てました…。苦労の甲斐あって、Windowsは思うとおりの状態になりつつあります。
ところで、#16において、「grldr」はCドライブのどこに置けば良いのでしょうか?また、「Cドライブは上部パネルの「場所」から開けます。」とありますが、これはUbuntuの操作説明ですよね?今Ubuntuは起動しないのですが???
オフライン
ところで、#16において、「grldr」はCドライブのどこに置けば良いのでしょうか?また、「Cドライブは上部パネルの「場所」から開けます。」とありますが、これはUbuntuの操作説明ですよね?今Ubuntuは起動しないのですが???
こちらがお願いしたことが上手く通じなかった様ですね。
もちろん文章の構成に難が有るのでしょうが、、、
実行して頂いた lilo -M はWindowsが起動するよう二とお願いしたコマンドなのでWindowsが起動することは期待していた事です。
それによってシステムから正常に認識されているWindowsがGRUBからは認識されない原因の切り分けになるかと思いました。
結果は「Windowsが起動した」で良いのですよね(Windowsのシステム、もちろんパーティションやファイルシステムに異常は無いと私は判断します)
いよいよ持って、GRUB2のみが違う挙動をしている可能性が色濃くなってきますね。
質問の回答に付いてはWindowsの起動法を確保したら、そのままUbuntuの起動法も確保してから再起動です。
説明不足のようでした。
#16 hir0 による投稿:
再起動後にWindowsが起動しますが少し待ってください。
これはbootフラグの有るパーティションをアクティブにするものです。bootフラグは#6のfdisk -l の内容で言うと「ブート」欄に表示されている「*」マークがそうです。
Windows のパーティションに付いていますね。
HDDが二つ有るのでUbuntuにも付いているかもしれません、2つ有ると混乱して思わぬエラーを招くかも知れないので「システム」→「システム管理」→「GParted」を起動してください。
「GPartedが「無い場合」
ライブCDでは標準付属ですがインストール後のシステムでは入っていないのでインストールします。
$ sudo apt-get install gparted
GParted を起動したら上段右端の「/dev/sda」と表示されている部分の▼マークをクリックして/dev/sdb(UbuntuのHDD)を選択してください。
Ubuntuのパーティションの「フラグ」欄に「boot」と表示されていたら外します。
表示されている欄をシングルクリックで選択して、右クリックでウィンドウを開きます。
「フラグを編集」を選択して「boot」に付いているチェックを外します。
最終的にWindowsのパーティションのみにbootフラグが付いている状態にします。
これでWindowsは起動するので、次にUbuntuの起動方法の確保です。
~~中略~~
Cドライブに「menu.lst」の名前で保存してください。
c:\grldr="Ubuntu"
次にCドライブに有る「boot.ini」ファイルを開きます。
最後に一行追加して保存します。
再起動です。
> 「grldr」はCドライブのどこに置けば良いのでしょうか?
こちらの質問は何と説明したら良いのでしょうか。
Windows上で(マイコンピュータだったかな?)Cドライブを開いてそこにコピペしてください。
boot.iniと同じ階層です。
#16の再起動の後に書き込んでいますが、Windows上で作成したmenu.lstだと文字コードによる問題が起きるかも知れません。(取越し苦労かな)
その場合はライブCDを活用するか可能であればノートパッド等で保存する際の文字コードをUTF-8に指定してみてください。
オフライン