
Ubuntu日本語フォーラム

ログインしていません。
すいません。遅くなりました。
私もTemplerさんの意見に賛成です。
なぜ変わってしまったのかは判りませんが、menu.lstの中でkernelの位置を指定するパラメータがおかしくなってしまっているように思います。
具体的な手順は#48のTemplerさんのコメントを参照願います。
オフライン
返信ありがとうございます。
#48を実行してみました。
root=UUID=.... の部分は、もともと正しい値だったので修正しませんでしたが、
Ubuntuも正常に起動するようになりました!
感動です。今はUbuntuから書き込んでいます^^
あ、あと さいごに
# groot=... と # kopt=... は、
# groot=(hd 0,5) と # kopt=(sda10のUUID) に修正すれば良いのでしょうか?
お願いします。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
「arngさん、お疲れさまです」と言いたかったのですが、kiyoshiさんの#53を読んで不可解な状況であることに気づきました。(sda6にbootフォルダがあるのを見落としていました)
どうやら、kiyoshiさんの#49での疑問の通り、grub-installでおかしな状況になっているようです。
本来、/bootのパーティションであるsda6にはbootフォルダは無いはずです。それがgrub-installで作成され、状況もが変わってしまったのでしょう。(詳しいことは私も分かりませんが)
これでは元に戻ったとは言えません。「授業の一環」ということであれば元に戻さねば。
(kiyoshiさんの仰るようにupdate-grubしても/boot/grub/menu.lstが更新されて、/boot/boot/grub/menu.lstは更新されない可能性もあります)
arngさん、すみませんが、HDDからUbuntuを起動した後に、/boot/grub/menu.lstも同様に変更し、さらに端末から以下の2行を実行して再起動してもらえますか。
sudo mv /boot/boot /boot/boot.bak
sudo grub-install /dev/sda
これで、起動が確認できましたら/boot/boot.bakフォルダは必要ありませんので以下のコマンドで削除してください。
sudo rm -r /boot/boot.bak
とりあえず、ここまでの作業をお願いします。他にもやり残しがありますので。
※「mv」コマンドはファイルやフォルダの移動や名前の変更をするコマンドです。
「sudo」は管理者権限でコマンドを実行する"危険なコマンド"と思ってください。
(独り言ですが、こちらもbootを切り分けている環境があったので、しかも8.04だったので試してみたんですが、8.04は回復したのですが、古いGRUBはext4をアクセスできないということをすっかり忘れていて、9.04が起動できなくなりヒヤヒヤものでした。やはり混在は怖いですね)
オフライン
kiyoshiさん による投稿:
あ、#53の私の疑問というか心配していたことですが、ext3なので、ハードリンク(シンボリックリンクでもOK?)を貼れば良いだけですね。
このリンクというは/grub -> /boot/grubのようにリンクを張るという意味でしょうか。ハードリンクはパーティションを越えては張れないはずなので、やるならシンボリックリンクですね。
Templerさん による投稿:
/bootのパーティションであるsda6にはbootフォルダは無いはずです。
見落としていた。。
なんでできたんでしょうね。
まず、リネーム・再起動してもらう前に、
ls -l /boot/boot
diff /boot/grub /boot/boot/grub
の結果を教えてもらうところから始めた方がよいような気がします。
オフライン
やっとこkiyoshiさんの投稿の意味と、問題の本質を理解しました。下記の現象だったのですね。
http://www.gnu.org/software/grub/grub-legacy-faq.en.html#q11
宛 arngさん
今回(hd0,6)から(hd0,5)に修正したのはsda6直下のgrub/menu.lstでしょうか。それもと、sda6のboot/grub/menu.lstでしょうか。
ls -l /boot/boot
diff /boot/grub /boot/boot/grub
の結果も念のためご連絡下さい。
オフライン
返信ありがとうございます。
まだ元に戻ったわけではなかったのですね;
不可解な状況ですか・・・;
とりあえず、# groot=(hd 0,5) に直しました。
あと、#57の結果を報告します。
編集したmenu.lstは、 /boot/boot/grub/menu.lst です。
ls -l /boot/boot の結果
---------------------------
合計 1
drwxr-xr-x 2 root root 1024 2009-09-21 07:30 grub
---------------------------
diff /boot/grub /boot/boot/grub の結果(違いを比べるコマンドですか? おもしろいコマンドですね)
---------------------------
diff /boot/grub/device.map /boot/boot/grub/device.map
0a1
> (fd0) /dev/fd0
diff /boot/grub/menu.lst /boot/boot/grub/menu.lst
131c131
< root (hd0,6)
---
> root (hd0,5)
/boot/boot/grubだけに発見: menu.lst~
バイナリー・ファイル/boot/grub/stage2と/boot/boot/grub/stage2は違います
---------------------------
よろしくお願いします。
オフライン
了解です。
編集したファイルが/boot/boot/grub/menu.lstであることから起動時に参照しているファイル・ディレクトリは/dev/sda6の/boot以下で間違いないでしょう。
現在、ubuntuが起動する状態だと思いますので、通常どおりに起動し、
sudo mv /boot/grub /boot/grub-backup
sudo ln -s /boot/boot/grub /boot/grub
を端末から実行していただければ良いのではないかと思います。
現在、/boot/boot/grub以下にgrubがインストールされているはずなので、
http://www.gnu.org/software/grub/grub-legacy-faq.en.html#q11
のFAQの内容からすれば、問題ない状態になっているはずなのですが、ubuntuでは通常/boot/grub以下にgrubがインストールされるため、念のためのおまじないのようなものです。
オフライン
> 現在、/boot/boot/grub以下にgrubがインストールされているはずなので、
これは、初めからと言うことではなく#17の件でその位置にインストールされたと思われるので、再びgrub-installをすれば/boot/grubにインストールされるのですが。
私も同じ状況にして試しましたが、その結果と、提示して頂いた#58の結果も同じ結果となっていますので問題はないかと。
オフライン
> Templerさん
なるほど。そうすると、
sudo ln -s /boot/boot/grub /boot/grub
が必須という理解でよいでしょうか。
オフライン
いえ、必要ありません。
grub-installで/boot/grubが書き換えられますので(menu.lstには影響が無い)、menu.lstを正しく(用意)するだけで良さそうです。
オフライン
そうなると#53のkiyoshiさんの心配されていたこと(そしてgrubのFAQ#11 http://www.gnu.org/software/grub/grub-legacy-faq.en.html#q11 )が気になるところですが問題無いんでしたっけ。
オフライン
すみません。詳しいわけではないので何ともなんですが、とりあえずupdate-grubを試したところ通常通りに/boot/grub/menu.lstが更新されました。
何か参考になりますでしょうか。
オフライン
カーネルパッケージの更新時に正しくmenu.lstが更新されればよいのですが、起動時にgrubが認識するmenu.lstと、OS起動後のmenu.lstの位置が変わるので、一工夫いる気がします。
オフライン
すみません。伝えていませんでしたが、「grub-install --root-directory=/boot [一部省略]」をした当初は、arngさん同様/boot/boot/フォルダのmenu.lstで起動されていました。/boot/grub/menu.lstをリネームしていますので確認出来ています。(arngさんもHDDから起動して「sudo grub-install --root-directory=/media/(/bootのパーティション名) /dev/sda」を実行していますので状況は同じではないかと。確信は持てないのですが)
その後、grub-installをし直しましたところ元通りの/boot/grub/menu.lstで起動されるようになりました。これは/boot/bootフォルダを移動し、また削除することでも確認出来ています。
そして、update-grubでの更新も確認したと。
それで、/boot/bootフォルダの名前の変更を指示したのですが。どうでしょう。
(やはり言葉足らずな私)
オフライン
お疲れです:) 問題の方の解決は完了していて最後の処理の様ですね。
Templerさんの正規?にパスが通るものと置き換えるのが今後も踏まえると最適解の様ですね。
FAQでリンクをはる方法が出ていた様ですが(#59)一部コマンドの訂正です。
[誤]$ sudo ln -s /boot/boot/grub /boot/grub
↓↓↓
[正]$ sudo ln -snf /boot/boot /boot
問題解決には選考漏れした方法ですが一応 $ ln のオプションと言うことで。
オフライン
既に確認までされていましたか。
失礼しました。では、大丈夫ですね。
宛 arngさん
勝手に一人で騒いでいたみたいで申し訳無いです。
#55のTemplerさんが書かれた手順を試してみて下さい。
オフライン
よかった。hir0さんにそう言ってもらえると安心です。
結局私は、情報が集まっていたからここにこれたのに、自分は情報を出しきれてなく、振り回してしまった。
あせると回らなくなるこの頭。どうにかならないものか…。
オフライン
私も同じですよ、hmatsueさんやkiyoshiさんが導いた情報の提出やコメントをみて状況を判別しているだけで、最初から関わっていたら同じように色々な可能性を選別するのに、きっと沢山の作業をお願いしていましたよ。
オフライン
返信ありがとうございます。
な、なにやらすごい議論が;
皆さんありがとうございます。
で、#55を実行してみたところ 正常に起動しました。
次にやることがありましたら、ご教授お願いします。
オフライン
了解しました。
最初に確認していただきたいのはスワップのマウント状況です。
端末から
free
を実行してください。
結果にスワップの容量があればマウントされていると思われます。
次に/etc/fstabのコメント(#以降)にあるデバイス番号(sda6, sda7など)を、一つずつずれていますので直してください(マイナス1ですね)。ですが、なぜかsda5だけは正しい様なのでsda5はそのままにしてください。
そして、#17により変更した「/dev/パーティション名」を再び正しい「UUID=ナンバー」に戻してください。(どうやら#8のUUIDで問題なさそうではありますが…)
再起動後にきちんとマウントされているか確認してください。#42の「4.」にパーティション内のファイルが載っていますが、とりあえずここにも記載します。
/ <= /dev/sda10
bin cdrom etc initrd lib media opt root srv tmp var
boot dev home initrd.img lost+found mnt proc sbin sys usr vmlinuz
/boot <= /dev/sda6
System.map-2.6.24-16-generic initrd.img-2.6.24-16-generic
abi-2.6.24-16-generic initrd.img-2.6.24-16-generic.bak
lost+found
config-2.6.24-16-generic memtest86+.bin
grub vmlinuz-2.6.24-16-generic
/home <= /dev/sda9
(ユーザー名) lost+found
/usr <= /dev/sda7
X11R6 games lib lib64 lost+found share
bin include lib32 local sbin src
/var <= /dev/sda8
backups crash lib lock lost+found opt spool
cache games local log mail run tmpそして、ちょっと怖いのですが
sudo update-grub
を実行してもらえますか?
実行後のmenu.lstが「またずれている!」なんてことがないか確認してください。それと、ファイルの更新時間がコマンド実行後の時間になっているか確認してください。(ファイルブラウザで右クリックからプロパティーで確認できます)
問題が無ければ再起動で最終確認をお願いします。
オフライン
#72の最後「そして、ちょっと怖いのですが」というのは問題なさそうです。
私はてっきりupdate-grubをしたら、また(hd0,6)になってしまうのでは?と思っていたのですが、その懸念をkiyoshiさんが事前に解消してくださっていました。
どうやら、menu.lstの「## DO NOT UNCOMMENT THEM,...」から「## ## End Default Options ##」の行までは、一見コメントの様に見えますが、update-grubで使用されるデフォルト値だったようです。この"#"一つの行は、削除もダメ、コメントアウトもダメ、ただ値を変更すれば、それがupdate-grubでmenu.lstに適用されるということの様です。
(まさに灯台下暗しですね。どうりで/var配下にデフォルト値が見つからないわけだ)
とにもかくにも、事前に「# groot=」「# kopt=」の変更を指示されていた、さすがkiyoshiさんです。
(それと、fstabのコメントは管理面からすると「# /dev/sda7 => /dev/sda6 changed」などわかりやすくした方が良いかもしれません)
オフライン
返信ありがとうございます。
#72の、free と/etc/fstabの書き換えを行いました。
再起動しても問題なく、きちんとマウントされているようですので、
次にsudo update-grubを実行しました。
すると、端末に、コマンドラインではなくカラフル(?)な画面が表示されて、
------------------------------------------
A new version of /boot/grub/menu.lst is available, but the version
installed currently has been locally modified.
What would you like to do about menu.lst?
パッケージメンテナのバージョンをインストール
現在インストールされているローカルバージョンを保持
バージョン間の差異を表示
バージョン間の差異を並行表示
利用可能なバージョン間の3種類の差異を表示
利用可能なバージョン間での3種類マージを行う (実験的)
状況を検討するための新しいシェルを起動
<了解>
------------------------------------------
このような英語のメッセージと、日本語の選択肢が表示されました;
何を言っているのかさっぱりなので、いまこのままの画面で放置してます。
どうすればいいでしょうか?;
オフライン
これは参りました。
menu.lstの変更箇所によっては、アップデートでそうなります。
この場合、「パッケージメンテナのバージョンをインストール」を選択してしまうと、また(hd0,6)に逆戻りされてしまいますでしょうし、「現在インストールされているローカルバージョンを保持」では、現状を保持なので新しいカーネルが追加された時にそれがmenu.lstに追加されません。
とりあえずは「パッケージメンテナ...」を選択してmenu.lstを修正するというのが一時的な回避方法なのですが、申し訳ないのですが、私には完全な回避方法は分かりません。
すみませんが、とりあえず一時的な回避方法で行って、他の方からのアドバイスを待ってもらえますでしょうか。
オフライン