
Ubuntu日本語フォーラム

ログインしていません。
元の環境
WD製HDD 250GB
msdosパーティションテーブル
/sda1 NTFS Vista
/sda5 NTFS DATA用
/sda6 NTFS 作業用
HITACHI製HDD 500GB
/sdb1 ext3 / Ubuntu 9.10
/sdb2 ext3 home
/sdb3 swap
/sdb4 ext3 DATA用
次のように変更しました。
まず物理的にWD製HDD 250GBとWD製HDD 2TB(WD20EARS)の2つにし、HITACHI製はPCから外しました。
250GBのパーティションはそのままを維持し、新HDDにUbuntu10.04をクリーンインストールしました。
big sectorの扱いについてどうなるのか知りたかったのでディスク全体を初期化し、10.04をいれるメニューを選択。
(ちなみにパーティションの先頭のほうを1MBほど自動で切ったみたいです)
WD製HDD 2TB (WD20EARS)
GPTパーティションテーブル
/sdb1 bios_grub
/sdb2 ext4 Ubuntu 10.04
/sdb3 swap
すると、GRUB2メニューでVistaが起動しなくなりました。
error : no such device : $UUID
error : no such partition.
-- grub.cfg --
menuentry "Windows Vista (loader) (on /dev/sda1)" {
insmod ntfs
set root='(hd0,1)'
chainloader +1
}
UUIDのエラーについてはバグなのかよくわかりませんが、
以下のトピックをみて編集し解消しました。
https://forums.ubuntulinux.jp/viewtopic.php?id=6494
error : no such partition.
こちらのエラーについてはhd0,1で間違っていないと思うし、
何が原因でおこるのかわかりませんでした。
どうすればgrub2からvistaを起動できるようになおりますか?
9.10を使っていたときにはGRUB2メニューから起動でき、何も問題ありませんでした。
以前の状態からHDDを交換してインストールしたことに問題があったのでしょうか?
vistaのCDでfixmbrしてgrub2を入れ直したらなおるような気もしますが、
扱いが怖いのでそこはまだ試していませんがどうなのでしょうか?
http://ubuntuforums.org/showthread.php?t=1437599
↑ 似た内容でしたがウェブ翻訳した限り、解決しなかったように読めました。
オフライン
とりあえず、Liveでディスク・ユーティリティを起動して、
Vistaパーティションの記号(/dev/sda4など)を確認、
そして、Live上でVistaのパーティションがマウント(開ける)ことを確認してください。
※Vistaのパーティション消えてたら諦めてくださいね。
実際にパーティションがないのなら、再インストールしかないので。
nautilus等で見えるけど、マウント時にエラーが出るという場合もあります。
こちらの情報を載せてください。
オフライン
お返事ありがとうございます。
10.04 LiveCDにて起動、ディスクユーティリティにてVistaパーティションは/dev/sda1と確認。
Live上にてマウントできることも確認、nautilusで中のファイルを覗くことも可能な状態です。
また、sdb2にインストールしたUbuntu10.04からもsda1,5,6どれもマウント可能であり、
ファイルをコピーまたは閲覧などできる状態にあります。
以下にsudo parted -l の情報をコピペしておきます。
モデル: ATA WDC WD2500JS-55N (scsi)
ディスク /dev/sda: 250GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 32.3kB 52.4GB 52.4GB primary ntfs boot
2 52.4GB 250GB 198GB extended
5 52.4GB 240GB 187GB logical ntfs
6 240GB 250GB 10.5GB logical ntfs
モデル: ATA WDC WD20EARS-00M (scsi)
ディスク /dev/sdb: 2000GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 1991GB 1991GB ext4
3 1991GB 2000GB 9285MB linux-swap(v1)
オフライン
Viva! Ubuntu!!さんのサイト(http://viva-ubuntu.com/?p=3410)を参考にして
Super Grub DiskをダウンロードしてCDに焼きました。
そのSuper Grub Diskで起動、メニューから「Detect any OS」を選択して
検出されたVistaを選択するとあっさりとWindows Vistaが起動しました。 驚愕です。
よって、NTパーティションが破壊されてたりNTローダーに異常があるということはないようです。
/dev/sda1のMBR、/dev/sdb1のコアイメージ、/dev/sdb2にUbuntuと共にインストールされているGRUB2の
どこかに異常があるかまたは自分の使い方に何か問題でもあるのか、バグなのかがはっきりしません。
まったく詳しくないので素人考えなんですがGPTパーティションでコアイメージで動作しているあたりがなにかあやしいような気もします。
もしかするとGRUB legacyのほうがすんなり動作するかもしれない(泣)
とりあえずはSuperGrubDiskでなんでも起動できるので急場はしのげますが、
スッキリしないのでこの現象については自分でも調べ続けてみますけど(なによりいつもCDいれなきゃいけないのが嫌だ)
何か考えられる点や情報などお持ちでしたら教えてください。
また私が開示すべき情報が足りないようでしたらご指摘ください。
まだ初心者に毛がはえた程度なのでその際は具体的なコマンドや操作方法などもそえて頂けると助かります。
オフライン
GRUB2の起動選択画面で「C」キーでコマンドラインモードになり、手入力で
起動するかどうか試すのもいいと思います。
grub> ls
(hd0) (hd0,1).....etc
このような出力からVistaのCドライブを選びます。PACさんの場合は(hd0,1)ですか。?
grub> insmod ntfs
grub> set root=(hd0,1)
grub> chainloader +1
grub> boot
もし、これでVistaが起動したらgrub.cfgを書き換えてみて下さい。
オフライン
レスありがとうございます。
Super Grub Diskで起動、コマンドラインモードに入りlsすると正常に全部みえました。
(hd0) (hd0,6) (hd0,5) (hd0,1) (hd1,3) (hd1,2) (hd1,1) (hd31)
インストールされているGRUB version 1.98-1ubuntu7でコマンドラインモードに入り、
lsしたところ(hd0,1)がみえてません!!!
(hd0) (hd1) (hd1,3) (hd1,2) (hd1,1)
Ubuntu10.04上から端末でgrub-mkdevicemap、update-grubをする限りでは
Found Windows Vista (loader) on /dev/sda1
done
とはでるのですが、なぜ起動時のGRUB2にはパーティションがみえてないんでしょう???
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
レスありがとうございます。
biosdisk part_gptはありましたが、part_msdosがありませんでした。
そこでコマンドラインでinsmod part_msdosを実行してlsしたところ
part_gptと競合して問題が起きる気配はなく、すべてのパーティションが認識されました。
そのまま続けてvistaを起動させたところちゃんと起動しました。
(ちなみにBIOS起動順は光学・HDD250・HDD2Tです)
search --nofloppy ..."で始まる行を削除しないといけないerror: no such device問題、
恐らくmsodosパーティションディスクとgptパーティションディスクが
同時に存在している場合におきるモジュールロード不足でおきるerror : no such partition.問題、
これGRUB2のバグってことなんでしょうか?
またsearch --nofloppy ..."で始まる行を削除したように
grub.cfgにinsmod msdosを記述すればいちいちコマンドラインしなくてよさそうですが
どこに書いたらわりとスマートになるでしょうか? (update-grubをしたときに生成されるようにしたいです)
オフライン
>インストールされているGRUB version 1.98-1ubuntu7でコマンドラインモードに入り、
lsしたところ(hd0,1)がみえてません!!!
(hd0) (hd1) (hd1,3) (hd1,2) (hd1,1)
Vistaのパーティションが見えてないのはなぜなのかは、自分もわかりませんが
幸いにも(hd0)としてVistaのHDDは認識しているように思われます。
そこで、PBRではなくMBRに対してチェーンロードしてみるのもいいと思います。
grub> set root=(hd0)
grub> chainloader +1
grub> boot
以上です。
オフライン
#9の投稿中に解決されたようですね。失礼しました。
オフライン
biosdisk part_gptはありましたが、part_msdosがありませんでした。
そこでコマンドラインでinsmod part_msdosを実行してlsしたところ
part_gptと競合して問題が起きる気配はなく、すべてのパーティションが認識されました。
そのまま続けてvistaを起動させたところちゃんと起動しました。
(ちなみにBIOS起動順は光学・HDD250・HDD2Tです)
まさにそれ という感じのようです。
grubは、いろいろと、環境やらを調査してそれに合わせてmoduleを組み込んでゆく形になっていますが、ターゲットとなるデバイス(起動したい、Ubuntuをインストールしたデバイス)に対して「デバイスを読む方法」「パーティションを読む方法」を設定するようです(biosdiskとpart_gptが該当)
その後、他のパーティションやらOSやらを探しに行く際には、あくまでも、ファイルシステムのレベルまでしかモジュールを追加しない為に、それらが異なると、結果として読めない と。
UUIDによる検索に失敗しているのも、検索しようとした段階でそのパーティションを認識できなかった(検索対象になっていなかった)為かと思いますので、先に修正・対応したUUIDによる検索の失敗は、修正する必要は無かったかもしれません(現在のままでも問題は無いかと思いますので、再修正(元に戻す)必要は無いと思います)
おそらく、バグとして直されるのではないか と思っています。
# 条件の抽出がやたらと面倒そうなので、ちょっと大変そうですが。30_os-proberや10_linuxの中でOSを起動可能な発見した時にファイルシステムと合わせてチェック・追加するべきなんですかね。
grub2をインストールしたOSとは異なるパーティションの管理方式や、デバイスのアクセス方式を必要とするデバイス(ハードディスク)上にインストールしたOSは、起動に失敗する という感じだと思います。
grub.cfgにinsmod msdosを記述すればいちいちコマンドラインしなくてよさそうですが
どこに書いたらわりとスマートになるでしょうか? (update-grubをしたときに生成されるようにしたいです)
未確認ですが、以下の方法ではどうでしょうか。
/etc/default/grubに、「GRUB_PRELOAD_MODULES="part_msdos"」という行を記述(追記)する。
もし、既に「GRUB_PRELOAD_MODULES」が定義されていれば、そこに追加する(モジュール毎にスペースで区切る)
オフライン
皆さん本当にレスありがとうございます。
weykさんが教えてくださったように/etc/default/grubを修正したうえで動作することを確認しました。
皆さんのおかげで原因とおぼしきものがわかり、その対処もできました。
本当にありがとうございます。
GRUB2はweykさんのgrubの解説のように動作しているんでしょうね。
環境調査しきれないというか、こういう構成を想定していないことによるのでしょうが、
きっとどこぞかに報告すればGRUB2そのものを修正していただけるのでしょうけれど
英語もよくわからないので自分は報告できません。
もしこの件が報告に値する事例であれば、
よろしければどなたかしかるべきところにレポートをだしていただけるとありがたいです。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン