珍しい設定をしています。 Ubuntuを1つインストールし、2番目に古いArch Linuxインストールの直接コピーからのバックアップをインストールしています。直接コピーとは、最初にパーティション全体の内容をtarで圧縮し、今ではそれらの内容を別のパーティションに抽出したことを意味します。そう:
1-Ubuntu、GRUB2あり
2-バックアップからArch
Ubuntuが実行され、正常に起動します。 Archをパーティションに抽出した後、新しいパーティションを反映するようにfstabを変更しました。しかし、今私はArchを起動させようとしているのに行き詰まっています。 Ubuntuでupdate-grubを実行してみましたが、Archのインストールが反映されません。どうすればこれを機能させることができますか?
Fedora 17をインストールした後も同様の問題がありました。Ubuntuはそれを拾いません。ネットで答えが見つからなかったので、それはgrubがFedoraのインストールを「見る」ことができなかったためだと思いました。そのため、UbuntuにFedora /パーティションをマウントしてupdate-grubを実行し、Fedoraのインストールを見つけて、それをブートメニューに追加しました。 Archlinuxでも同じテクニックを使用しています
Grub2でArchWiki article を試してみましたか?おそらく、grub-mkconfigを実行する前に、システムにos-proberというパッケージをインストールする必要があります。これにより、システムに適したgrub.cfgファイルが作成されます。
さらにサポートが必要な場合はお知らせください。
現在、Ubuntuインストールからgrubを使用しています。そこからArchを起動する場合は、パッケージがupdate-grubを実行するたびに新しいエントリが削除されないように、Ubuntuを構成するカスタムエントリを追加する必要があります。
新しいエントリは、ubuntuを起動するためにすでに持っているものと非常に似ているはずですが、Archのパーティションを参照し、Archのカーネルパラメータを使用します(おそらくgrub2でArchのwikiページを使用できます)。
詳細については、こちらをご覧ください: https://help.ubuntu.com/community/Grub2/CustomMenus
私はこれをグーグルで見つけました-Debianをゼロから構築するための非常に最小限のシステムである Deboostrap からのDebianバスターインストールでこの問題が発生したためです。古いDebian Stretchを引き続き利用できるようにしたかったため、デュアルブートが必要でした。 Debootstrapでは何もプリインストールされていないので、@ sever(mount unknown root filesystem)、@ darnir(install os-prober)および@ tripledes(/etc/grub.d/40_custom
でカスタム構成を使用)。ここに私がすべてを合わせる方法があります。
最初のインストールos-prober:
~$ Sudo apt install os-prober
しかし、os-proberは、ルートファイルシステムがマウントされていないと、古いインストールを検出できません。そうする(私のは/ dev/sda1にあります):
~$ Sudo mkdir /mnt/oldroot
~$ Sudo mount /dev/sda1 /mnt/oldroot
ここでgrub-mkconfig
を実行して、stdoutのgrubメニューエントリを取得し、それを一時ファイルにリダイレクトします。
~$ Sudo grub-mkconfig > /tmp/oldmenu.cfg
次に、このファイルを編集し、古いメニューのエントリを除くすべてを削除して、menuentry ... {...}
とsubmenu ... {...}
を残しました。次に、それを/etc/grub.d/40_custom
に追加します。
~$ Sudo bash -c 'cat /tmp/oldmenu.cfg >> /etc/grub.d/40_custom'
~$ Sudo update-grup
掃除:
~$ Sudo umount /mnt/oldroot
~$ Sudo rmdir /mnt/oldroot
~$ rm /tmp/oldmenu.cfg
それでおしまい。これで、パッケージがupdate-grubを実行するたびに、古いインストールのエントリが失われることはなく、常に追加されます。