
Ubuntu日本語フォーラム

ログインしていません。
こんにちは
以前こちらに質問させていただいて解決したと思った問題が再発してしまったので再度投稿させていただきます。
以前の質問>https://forums.ubuntulinux.jp/viewtopic.php?id=8218
内容
外付けHDDへubuntuをインストール、インストールしたPCでは起動した。
その後、新しく買ったPCに接続して起動。
ターミナルのos選択画面が現れず
GNU GRUB ~~略~~
grub>
といったコマンド入力画面が現れる。
外付けHDDを認識して読み込みブートローダを起動、という段階までうまくいっているようなのですが、そこからubuntuのカーネルを見つけられていないということなのでしょうか?
何でもかまわないので何かご存知の方がいたらよろしくおねがいします。
オフライン
う〜ん、取り敢えず以下を実行してみてください。
grub>search -f /boot/grub/grub.cfg
で検索結果を使用して以下のコマンドを実行してください。
(結果が (hd1,1)と表示された場合の例です)
grub> configfile (hd1,1)/boot/grub/grub.cfg
オフライン
hir0さん、回答ありがとうございます。
hir0さん による投稿:
grub>search -f /boot/grub/grub.cfg
で検索結果を使用して以下のコマンドを実行してください。
(結果が (hd1,1)と表示された場合の例です)
grub> configfile (hd1,1)/boot/grub/grub.cfg
と指示にしたがって実行したところ、grub.cfgはhd0,1で発見され
configfile を実行したのですが
unknown command ’記号’
というものがいくつも表示されただけでした。
オフライン
通常はunknown commandはスペルミスやコマンドと(の間に半角スペースが無い場合に表示されます。
取り敢えず保留で、以下を実行してみてください。
grub> ls (hd0,1)/boot
表示される「vmlinuz-2.6.32-22-generic」等ののバージョンを確認してください。
複数有る場合はどれか一つで大丈夫です。
grub> root (hd0,1)
grub> linux /boot/vmlinuz-2.6.32-22-generic root=/dev/sda1
grub> initrd /boot/initrd.img-2.6.32-22-generic
grub> boot
全て小文字半角英数です。
テキストエディタなどにコピペして半角スペースを確認してみてください。
オフライン
hir0さん による投稿:
grub> ls (hd0,1)/boot
grub> root (hd0,1)
grub> linux /boot/vmlinuz-2.6.32-22-generic root=/dev/sda1
grub> initrd /boot/initrd.img-2.6.32-22-generic
grub> boot
以上を実行しました。
まず ls (hd0,1)/boot を実行したところいくつか表示されましたが、
vmlinuz-2.6.32-21-generic
config-2.6.32-22-generic
などが表示されました。
次に、set root (hd0,1) 以下を実行しましたが、
initrd /boot/initrd.img-2.6.32-22-generic
まで、入力しても特に反応はなく、
boot を実行したところ、いろいろな表示が流れた後、
(initramfs)_
というようなコマンドを表示する場所みたいなものがでました。
ためしにlsと打ったところdev root sbin …といった表示がいくつかでました。
入力中どのファイル名もtabキーで出てきたので打ち間違いは無かったと思います。
あと
grub> linux /boot/vmlinuz-2.6.32-22-generic root=/dev/sda1
のsda1はlinuxをインストールしたドライブのsdb1へと勝手にかえました。
まずかったでしょうか?
オフライン
ありがとうございます。
操作的には全く問題なく私の意図した事を実行してくれてます。
予想としてはGRUBでのデバイス、(外付けHDD)のパーティションの認識かと読んだのですが外れた様です。
(initramfs)なので、そのままハード面つまりPC側との問題かもしれません。
新しいPCの製品名かスペックから情報が出るかもしれません。
ライブCD等のお試しで上手く起動するでしょうか? もし起動オプションでの問題などでしたら道が開けるのですが取り敢えずマシンの情報とUbuntuのバージョンは要るでしょう。
オフライン
失礼いたしました、重要なこと書き忘れていましたね。
PCは HP Desktop PC HPE 190jp
スペックは メモリ6G 、CPU corei7 、 ビデオカードはgeforce の割とよいもの(正確に覚えてなくてすみません。) 、CD/DVDドライブあり
Ubuntuは、デスクトップ用 10.04 日本語Remix CD を用いたインストール。
といったところでしょうか。
あと、BIOSは起動優先順位を光学ドライブ、外付けHDD、内蔵HDD(windows)に設定して、外付けHDDをはずした状態でCD起動を試みました。
結果、普通に起動できました。
いかがでしょうか。
オフライン
返事が有ったのですね。
すみません、少し挫折気味です。
次のUDLを試してみてください。
https://wiki.ubuntulinux.jp/UbuntuTips/Others/RepairMbrWithGrub
意図としては(initramfs)で止まるので、起動できるライブCDの物を使うとどうなるか?です。
10.04ではCD起動後直ぐに何かキーを押して下さい。
ポップアップが出れば[esc]キーでキャンセルされます。wikiにしたがって「boot=casper」を「root=/dev/sdb1」で。
CDからは内蔵HDDを/sda 外付けを/sdb と認識するはずです。
よく有る失敗は boot を root に替え忘れることです。
何か状況の変化が現れて解決の糸口が見えれば良いのですが。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
おー、kiyopさんフォローありがとうございます。
あと
grub> linux /boot/vmlinuz-2.6.32-22-generic root=/dev/sda1
の sda1はlinuxをインストールしたドライブのsdb1へと勝手にかえました。
まずかったでしょうか?
インストール時には外付けHDDを/dev/sdb と判断しますが、外付けHDDのGRUBから起動した場合は起動デバイスを/dev/sda として扱います。
もしダメなら#10を試してください、UUIDはデバイスに振られた固有の番号ですので/dev/sdaか/dev/sdbかの違いは気にかけなくても良くなります。
オフライン
hir0さん遅くにありがとうございます。
kiyopさんはじめまして、お世話になります。
hir0さん による投稿:
grub> ls (hd0,1)/boot
grub> root (hd0,1)
grub> linux /boot/vmlinuz-2.6.32-22-generic root=UUID="省略"
grub> initrd /boot/initrd.img-2.6.32-22-generic
grub> boot
と、kiyopさんのおっしゃったUUIDを試したところやや処理する時間があったものの通常の様にUbuntuが起動しました!
しかし、再起動したところgrub>の画面でした。
この後、何らかの設定が必要かと思うのですが方法を教えていただけないでしょうか。
私の時間帯がお二人と合わず返信が遅れてしまうと思いますがよろしくお願いします。
オフライン
方法は#2の延長になるのですが、上手く起動した設定を設定ファイル/boot/grub/grub.cfgに反映させる必要があります。
まだ問題が残っています。
現在の方法で起動して、端末から
$ sudo grub-update
を実行してどちらのPCでも起動できるならOKです。
もし最初は起動できていたPCが起動しなくなった場合はUUIDでの指定を止めて任意の名前を付ける必要が有ります。
ライブCDでUbuntuを起動してUSB-HDDを接続して下さい。
「システム」→「システム管理」から「GParted」を起動して上段右隅からUSB-HDDを選択して下さい。
Ubuntuをインストールしたパーティションを選択して右クリック、「アンマウント」が指定可のであればクリックしてアンマウントして下さい。アンマウントされた状態で右クリックで「ラベル」を選択。
任意の名前(半角英数 例: usb-ubuntu )を付けて終了させます。
端末から
$ sudo gedit /etc/grub.d/40_custom
テキストエディタが開きます。
青い色の文字で数行書かれている箇所の下に次を書き込み保存します。
保存後に
$ sudo grub-update
を実行して下さい。
menuentry 'Ubuntu, on USB-HDD'{
recordfail
insmod ext2
set root='(hd0,1)'
search --no-floppy --fs-uuid --set LABEL=usb-ubuntu
linux /vmlinuz root=LABEL=usb-ubuntu ro quiet splash
initrd /initrd.img
}
起動時のメニューで「Ubuntu, on USB-HDD」(任意の名前)を選択すれば良いはずですが(すみません時間が無かったので未検証)。
メニューの見た目にかなり難が有ります。
原因はデフォルトで「UUID」を使用する仕組みに成っているのでカーネルの更新等が有ると書き換えた項目が自動でUUIDに書き戻されてしまう為に影響を受けない位置に新しい「LABEL」でのエントリーを書き込んだためです。
スッキリさせるには、デフォルトの自動更新を止めるか指定したラベルを使って自動更新するようにソースを変更するか、メニューに表示される順番を変えて(必様な物は上に、使わない物は下に)良とするか。
他にも「こんな方法がアルよ」と意見が出るかもしれません。
取り敢えず実行後、使用感と希望を書き込んでください。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
kiyopさん による投稿:
$ sudo update-grub
今まで起動できなかった方のPCで上記コマンドを実行したところ、自然にブートローダがOSの選択肢を出すようになりました。
ただし、一台目のPCが選択肢から消え、二台目のPCへと変わりました。
現在一台目の方が手元に無いため起動の確認は明日させていただきます。
成功にせよ、失敗で記載された方法を試すにせよ、明日また報告させていただきます。
オフライン
無事にすべてのPCで起動を確認しました。
お二方が説明しながら教えて下さったおかげで問題解決だけでなく、勉強にもなりました。
hir0さん、kiyopさん、ありがとうございました。
オフライン