- ベストアンサー
linuxのgrubについてですが、先日からパソコンを起動すると、
linuxのgrubについてですが、先日からパソコンを起動すると、 GNU GRUB version 1.97~beta4. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ shgrub> みたいなシェルが出てきて、手動でgrub?をロードしないといけない状態になってしまったんですが、 自動に切り替えるにはどうしたらいいんでしょうか? grub2という最新バージョンに切り替えないとダメなのでしょうか? 以前は自動でロードしていました。 よろしくお願いします。。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
もう少し情報があればなぁ・・・と思います(ちょっと苦しい状況です)。「自動」だけが問題なのか、それともLinuxが起動しないままのか。これがわかりません。ただ、両面作戦でオマジナイはあります。しかし、環境によっては空振り三振になるので、ご自身の環境でテキトーに変更してください(なお、インストールされているのはGRUB2です)。まずはgrubプロンプトで、 sh:grub> linux /boot/vmlinuz-2.6.31-xx-generic root=/dev/sd● loop=/ubuntu/disks/root.disk ro splash と入力します。オマジナイは長いので注意してください(これで1行です)。“xx”は、起動できていたときのカーネルバージョンです。たとえばUbuntu9.10で、インストール後に何もしてなければxxは14です。ただ、アップデートしたときに、古いカーネルを削除してしまった場合は存在しませんから、そのときは“・・・2.6.31-”まで入力し、TABキーでファイルを展開して見つけます。 もうひとつの環境、“sd●”は、Linuxがインストールされているディスクを指しますから、ご自身のインストール状況に合わせてください。これでエラーが返ってこなければ続いて、 sh:grub> initrd /boot/initrd.img-2.6.31-xx-generic というオマジナイを入力します。ここの“xx”も上記のものと同じカーネルを指定します。これで幸運にも問題なくプロンプトが登場したら、 sh:grub> boot で起動するはずです。もし、「これでいつもやっていて、知っています」なら、起動後に端末から sudo update-grub2 を実行することで、GRUBが再構築されますから、その後は自動になるはずです。
その他の回答 (4)
- otokam1947
- ベストアンサー率63% (92/145)
「ubuntuはHDDにインストールしています」という補足と、"sudo update-grub2"のエラー結果(/dev/sdcがOpenできないと叱られた)から、このコンピュータには少なくとも3台のディスクが存在し、GRUBはそこにインストールされているのでしょうか。 しかし、grub.cfgの内容では、Ubuntuは/dev/sda1にインストールされているようです。また、grub.cfgが複数存在するとの記述もあり、まことに不思議な状況との印象をもちました。不思議がっていてもショーガナイなので、私としては、手動であっても起動できたUbuntuで、"fdisk -l"と"blkid"の結果を得ないと解決にはいたらないように感じましたのですが・・・。 ただし、ここまで書いてきて、誤りを恐れずに想像すると、『情報にはないけれど、このUbuntu、ひょっとしてWubiではないか・・・』との疑問をもちました。Wubiは使っていないので確認できないのですが、UUIDの値からも、そんな気が・・・です。これまでは、「ディスクが複数あるなら、Windowsもあるだろうからgrub4dosを使って起動だけしてしまえ」とも思っていたのですが、わからなくなってしまいました。
お礼
自分も少しごちゃごちゃしてしまったんで、少々考えてみることにしました。。 ありがとうございます!
> 自動に切り替えるにはどうしたらいいんでしょうか? > grub2という最新バージョンに切り替えないとダメなのでしょうか? > 以前は自動でロードしていました。 shgrub> は、いわゆるgrub2環境です。 grub.cfgに致命的エラーが発生しているので、いわゆる「shell落ち」しているのでしょう。 問題なかった時に比較して、デバイス環境を変えた(/dev/sdcがあやしいです)からでしょう。 手動で起動出来ているわけですのでgrub.cfgをじっくり確認してください。 原因は単純なことだと思います。 ---蛇足ですが、私なら下記の手順で対応します。 1. とりあえず手作業でgrub.cfgのlinux行(kernel行)を修正する。 手動で起動できているとおりに修正すれば、必ず起動する。 2. grub-mkdevicemapコマンドでデバイスの確認を行なう。 device.mapを最新の状態にする。 3. grub-mkconfigコマンドを -o オプション無しで画面に表示し、致命的エラーが無いことを確認する。 エラーが無ければgrub.cfgに出力すれば必ず動作します。
お礼
回答ありがとうございます! つまり、すでにgrub2にアップデート済みということですね。 今、grubの中を見てみたんですが、 確かにいつもの起動できているコマンド入力文が記述されていました。 内容は以下になります。 menuentry "Ubuntu, Linux 2.6.31-20-generic" { insmod ntfs set root=(hd0,1) search --no-floppy --fs-uuid --set a474b83474b80b56 loopback loop0 /ubuntu/disks/root.disk set root=(loop0) linux /boot/vmlinuz-2.6.31-20-generic root=/dev/sda1 loop=/ubuntu/disks/root.disk ro quiet splash initrd /boot/initrd.img-2.6.31-20-generic } menuentry "Ubuntu, Linux 2.6.31-20-generic (recovery mode) " { 上記の内容と違うところは linux /boot/vmlinuz-2.6.31-20-generic root=/dev/sda1 ~~~~ ro single のみ。 } menuentry "Ubuntu, Linux 2.6.31-17-generic " { 2.6.31-17-genericに変わったことを除いて初めの内容と一緒。 } 上記が内容なのですが、違うところは、コマンド入力のときは2.6.31-20-generic のタイプではエラーが生じ、pcがフリーズするので、 2.6.31-17-genericのタイプでコマンド入力をしているということです。 ちなみにそのときのエラー内容は Kernel panic - not syncing : VFS : Unable to maunt root fs on unknown - block (8,1) です。 なので2.6.31-20-genericの二ヶ所のコードをコメントアウトして、2.6.31-17-genericが先頭になるようにして再起動してみましたが、ダメでした。。 ちなみに確かにコメントアウトはしたんですが、grub-mkconfigで表されてたgrub.cfgではコメントアウトされてませんでした。 どういうことでしょう。。grub.cfgは二つあるのでしょうか。。 僕はこんな分野に触れたことすらないので、全くのド素人なんでお手上げ状態です...\(__)/ ん~これは久々に疲れますね。。 学期末試験思い出します(笑)
- otokam1947
- ベストアンサー率63% (92/145)
もう、少々眠いので思いつきだけを記しておきます。補足いただいたエラーは、「ディスク(/dev/sdc)が見つけられん」状態ではないでしょうか。間違っている可能性大ですが、お使いの環境で、 1. UbuntuがUSBにインストールされていて、いろいろなコンピュータで使っている。 2. Ubuntuをインストールしたときとディスクの構成が変わった。 というヨーなことはありませんか。この状態を文章のヤリトリで修復するというのは、私の能力では限界を超えています。まことにすみません。それに、上記の前提も「エイ、やーーー」の想像で、外しているかもしれません。経験者・識者の登場を期待します。
お礼
ubuntuはHDDにインストールしています。 もう少し回答を待って対処してみようと思います! 眠たい中ありがとうございます!(__)
- 486HA
- ベストアンサー率45% (1013/2247)
Linuxと言っても幾つかのdistributionがあります。 「GNU GRUB version 1.97~beta4」(Grub2)ということはUubuntu 9.10あたりでしょうか? 最新のUbuntu 10.04ではverson 1.98になっています。 kernelのバージョン・アップを行ったり、ハード・ディスク上に他のOSのパーティションがあると Grubが認識して追加されてゆきます。 .
補足
情報不足ですみません。。 まさにUbuntu9.10です。 自動で起動できない原因はなんでしょうか?? 何かをアップデートしなければならないんでしょうか??
補足
まさに最初の二行のやり方でubuntuを立ち上げてます! それからなんですが、三行目の $ sudo update-grub2 をコマンド入力すると error: cannot open '/dev/sdc' while attempting to get disk size Generating grub.cfg ... Found linux image: /boot/vmlinuz-2.6.31-20-generic Found initrd image: /boot/initrd.img-2.6.31-20-generic error: cannot open '/dev/sdc' while attempting to get disk size Found linux image: /boot/vmlinuz-2.6.31-17-generic Found initrd image: /boot/initrd.img-2.6.31-17-generic error: cannot open '/dev/sdc' while attempting to get disk size Found linux image: /boot/vmlinuz-2.6.31-16-generic Found initrd image: /boot/initrd.img-2.6.31-16-generic error: cannot open '/dev/sdc' while attempting to get disk size と出てきて、インストールができません。。 これはディスク容量が足りないということですか??