[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:33266] Re: grub.cfgの編集



加藤です。

>>> On Tue, 07 Jan 2020 16:05:49 +0900
    in message   "[plamo:33265] Re: grub.cfgの編集"
                  bpbcy700-san wrote:

> plamo上で、mnt /dev/hd1 /mntとしたら、
> geometry errorなどと出て、マウントできず、
> これは壊れているかもと、
> Ubuntuをもう一度入れなおしたら、
> 両方、grubメニューに出ました。
> そこで、今度は、plamoの方が、unknown linuxになってしまいました。
> e(dit)で、タイトルを直した後の保存方法はどうすればよいですか。
> c-x,c-sかなと思ったのですが、保存されずに、起動してしまいました。

今度の "unknown linux" は何に表示されているのでしょうか? fdisk? grub
menu?

ちょっと状況がわからないのですが、適当に想像しながらアドバイスさせても
らいます。

まず、

* grub のメニューの内容は grub.cfg というファイルに書かれています。動
  的にディスクの情報を読んだりして表示しているわけではありません

これが前提です。

なので、"unknown linux" が grub メニューに表示されているとすると、
grub.cfg ファイル内の "unknown linux" という文字列を "Plamo Linux" と
でも書き換えれば、menu には "Plamo Linux" と表示されるはずです。

cfdisk に表示されているのなら…、ちょっとよくわかりません。cfdisk が何
を表示してるのかしらないので。

でも、手動で書き換えるのは推奨されません。

----

以下は、"unknown linux" がどこに表示されているかに関わらないお話です。

先に書いたように grub menu は grub.cfg を読んでるだけですので、まっさ
らのディスクに OS A、B の順でインストールして、それぞれで grub を MBR
なり EFI にインストールしたとすると、

* A をインストールした時点では Disk 上には A しか存在しない。つまり
  grub.cfg を生成しても A のエントリしか書かれない

その後、B をインストールして grub を MBR なり EFI にインストールすると

* Disk 上には A もあるので、grub.cfg 生成時に A を検出して、A と B の
  両方が grub.cfg に書かれる

ということになります。

grub.cfg はいつ生成されるのか?

* Ubuntu の場合は grub パッケージをインストールした時点で、インストー
  ルの後処理として grub.cfg が生成される。さらに新しいカーネルやモジュー
  ル等がインストールされた時点でも、その後処理で grub.cfg が生成される
  可能性がある
* Plamo の場合は、自動で生成されるのはインストーラーの grub の設定のと
  きだけ。その後新しいカーネルをインストールしたりした場合は手動で
  grubconfig や grub-mkconfig コマンドで生成する必要がある

となっています。これが手動で grub.cfg を書き換えるべきではない理由です。
ま、Plamo メインでつかっていて、grub も Plamo のをつかってる場合は手動
で書き換えても、自分で grub.cfg を更新しない限りは更新されることはない
のでいいんですがね。

手動で書き換えても、ubuntu だと何かの拍子に再生成されて、自分で書き換
えた情報は消えてしまう可能性があるからです。

----
もうひとつ、

複数のディストリビューションをインストールして、それぞれで grub を MBR
なり EFI にインストールすると、当然後に入れたほうの grub で起動します
ので、どっちの grub で起動しているのかを意識する必要がありますね。

さらにその後、ディストリビューション上でパッケージアップデートなんかを
すると、grub-install なんかが走って、そちらの grub が上書きでインストー
ルされたりするかもしれません。

なので、デュアルブートする場合、片方のディストリビューションでのみ
grub をインストールなり設定なりして、もう片方のディストリビューション
では grub をインストールしない(grub を設定しない)方が混乱しないかも
しれません。

設定はインストールした方のディストリビューション上で行うということです。

----
grub.cfg はどのように生成されるのか?

これは /etc/grub.d 以下にいくつかファイルがありますが、これで生成しま
す。なので、カスタムで自分専用の menu を生成したい場合は、ここのファイ
ルを書き換えて、grub-mkconfig コマンドなどで grub.cfg を生成します。

/etc/grub.d/40_custom なんかがそれに使われるためのファイルでしょう(デ
フォルトではコメントが書かれているだけで何も書かれてない)

Linux や主要な OS であれば、デュアルブートであっても、勝手に検出して
grub menu (grub.cfg) を生成してくれます。(BSD 系はダメだったかな)生
成方法は次に書きます。

----
最後に無駄情報を。

Plamo でインストールした場合の grub menu の Plamo Linux という文字列は、
/etc/default/grub 内の "GRUB_DISTRIBUTOR" という設定から生成されていた
と思います(うろおぼえ)。以下で述べる os-prober かもしれない。

デュアルブートの場合の他のディストリビューションの検出は、grub から呼
ばれる os-prober というコマンドをつかいます。

なので Ubuntu がインストールされている状態で Plamo をインストールして、
Plamo から grub を設定する(grubconfig コマンドなどで)と、他パーティ
ションの Ubuntu を検出して、ちゃんと grub menu には Ubuntu みたいな文
字列が生成されるはずです。

これが逆で Plamo がインストールされた状態で Ubuntu をインストールする
と、Ubuntu 側の os-prober コマンドでディストリビューションの検出がされ
ますので(たぶん)、Plamo みたいなマイナーなディストリビューションは当
然 os-prober コマンドに情報が登録されていませんので、grub menu
(grub.cfg) も、単なる "Linux" とか "unknown Linux distribution" といっ
た文字列になるはずです。

Plamo の os-prober コマンドはパッチを当ててあるので、ちゃんと Plamo を
検出するようにしていますので、/etc/plamo-release ファイルの中身が grub
menu に登録されるはずです。

-- 
==============================================
((((    加藤泰文
○-○                karma @ jazz.email.ne.jp
==============================================
 (Web Page) http://www.ten-forward.ws/
==============================================


Follow-Ups
[plamo:33267] Re: grub.cfgの編集, bpbcy700
References
[plamo:33261] Re: grub.cfgの編集, KATOH Yasufumi
[plamo:33262] Re: grub.cfgの編集, bpbcy700
[plamo:33263] Re: grub.cfgの編集, KATOH Yasufumi
[plamo:33264] Re: grub.cfgの編集, KATOH Yasufumi
[plamo:33265] Re: grub.cfgの編集, bpbcy700

[検索ページ] [メール一覧]
Plamo ML 公開システム