
Ubuntu日本語フォーラム

ログインしていません。
redredさん
図のブラッシュアップ確認しました。
興味がある分、少し長くなってしまいます。ご容赦下さい。
実は私も、現在の「1枚のディスクにはlinuxは1つ」の運用が定着(?)する随分前に、1枚のディスクに複数のgrubを格納して、grubからgrubを渡り歩くチェーンロードにチャレンジしようかと思った時期がありました。
当時何故そうしようとしたかの記憶も定かではないのですが、調べていたら「そもそもパーティションにgrubを格納するのは強く非推奨!!」みたいな情報を見て、試行すら断念した記憶があります。(試しもせず断念したので、単なる興味、実験だったも知れません)
少し調べたら「パーティション先頭エリアの容量の問題で分散した格納先が、場合によっては読めなくなる」みたいな理由の様ですが、現在は問題ないのでしょうかね。
下記は、過去ubuntuフォーラム、他の非推奨のドキュメント例になります。
https://forums.ubuntulinux.jp/viewtopic.php?id=8168
https://wiki.archlinux.jp/index.php/GRUB
「2.3.1.3 パーティションやパーティションレスディスクにインストールする」の項です。
本題ですが、仮にパーティションをgrubのインストール先にしても問題ないと仮定した場合。
chichinpui による投稿:
2)ubuntuでインストールされたgrubからmintを起動する場合、ubuntuでのupdate-grubのタイミングによっては、ubuntu側のgrub.cfgのmintの情報が古いなど、不整合が発生する場合があるのでは。
mintのkernelがあがって、mint側でupdate-grubが走っても、更新されるのはmint側のgrub.cfgで、ubuntu側のgrubはubuntu側の古いgrub.cfgしか見えないと思うのですが。
ubuntu側でupdate-grubすれば済む、で割り切ってもよいのかも知れませんが、ubuntu側でmint最新kernelを起動したら、実はmint側の2番めになってたなど、動くけどややこしい誤認につながる気もします。
仮にmintのgrubインストール先をパーティションに変更しても、ubuntuでインストールしたgrubからmintを起動する場合は、上記の懸念が残るのではと思います。
手っ取り早い解決策は、ellipticさんが仰っていた以下を活用しては、と思いました。
elliptic による投稿:
/dev/sda6 からの起動を試したいときは 別のブートローダ経由で 2段階ブートさせます。
これはgrubのチェーンロードと理解しました。
ubuntu側のgrubが起動している状態からmintを起動したい場合は、ubuntu側のgrubに予めチェーンロードの定義を追加しておき、これを選択したらパーティションにあるmint側のgrubにジャンプする。
mint側のgrubでは、少なくとも自分自身(mint)のカーネル選択肢は正しく同期されているはずなので、最新カーネルがずれたり、カーネルが無いなどのトラブルはないのでは。
私がBIOS連打で運用しているときのルールでもある「飛んだ先のgrubでは、そのgrubを格納したosのカーネルしか選択しない」という制限は残りますが。
細かい話しですが、mint側のgrubをキャンセルして元のgrub戻る時はESCキーが効くのでしょうかね。
効かなければ、逆にmint側からubuntuにチェーンロードする定義をmint側grubに追加しておくか、最悪ctrl+alt+DELで再起動して戻る事も可能とは思いますが。
一番単純なのは以下でしょうか。
mintを立ち上げたい時は、一旦ubuntuを起動してupdate-grubを実行後、再起動すればubuntu側のgrubからmintを起動しても良い(非同期はない)
※「一旦ubuntu起動で、更に再起動して選択し直し」が、とても悔しいですよね。
最後に、私にとってはちょっと有用な情報がありましたので以下に。
古い情報なので、今も同じ仕様かは?ですが、1),2)まではHDD,SSDで見えました。
https://forums.ubuntulinux.jp/viewtopic.php?id=9593
【概要】
sudo debconf-show grub-pc | grep install_devices: ←表示コマンドなので安全かと。
1)インストール時に、どこにgrubを格納したかが表示される(らしい)
2)メーカ名、型番、シリアル番号? ← これで終わってたら該当ディスクの先頭、+-partXなどあればパーティションの先頭
3)インストール後に、grub-installで、grubを違う場所に何度インストールし直しても、上記の情報は書き換わらない(らしい)
4)grub-pcに大きなアップデートがあって、grubそのものを更新する場合は、この情報で更新先を判断してるので、勘違いトラブルになりやすい
このgrub格納先情報を書き換える場合は以下コマンドで。
sudo dpkg-reconfigure grub-pc ← メニュー出ますが、更新処理なので実行時は要注意
長くなり申し訳ありません。
オフライン
chichinpuiさん
豊富な情報ありがとうございます。
今回とても勉強になりました。
試用目的でディストリビューションをインストールする場合は、
そのGrubはMBRへではなく、今回のように意図的にVBRへにすることで
お役御免や試用替えが楽になりそうだと思いました。
試用ディストリビューションを入れ替えたら、常用Ubuntu上でのupdate-grubだけで万事完了しそうです。
grubのチェーンロードは私にはハードルが更に高そうですが、秘奥義があるということを覚えておきます。
ありがとうございました。
オフライン