grub2が私のアーチLinuxのインストールを検出できるようにするにはどうすればよいですか?

grub2が私のアーチLinuxのインストールを検出できるようにするにはどうすればよいですか?

珍しい設定があります。私はそれにUbuntuをインストールしました以前のArch Linuxインストールの直接コピーからバックアップ第二に。直接コピーとは、最初にパーティション全体の内容を圧縮し、別のパーティションに内容を抽出したことを意味します。だから:

1 - Ubuntu(GRUB2を含む)

2 - バックアップのアーチ

Ubuntuはうまく動作して起動します。 Archをパーティションに抽出した後、fstabを変更して新しいパーティションを反映しました。しかし、今Archの起動に問題があります。 Ubuntuでupdate-grubを実行してみましたが、Archがインストールされていません。では、どのように機能させることができますか?

答え1

Fedora 17をインストールした後、同様の問題が発生しました。 Ubuntuはそれを認識しません。オンラインで答えが見つからなかった後、grubがFedoraのインストールを「見る」ことができないためかどうか疑問に思います。そこで、Ubuntuの/パーティションにFedoraをインストールしてupdate-grubを実行しましたが、Fedoraのインストールファイルを見つけてブートメニューに追加しました。私はArchlinuxと同じ技術を使用します

答え2

ArchWikiをフォローしてみましたか?記事Grub2で? grub-mkconfig を実行する前に、システムに os-prober というパッケージをインストールする必要があります。これにより、システムに適した grub.cfg ファイルが生成されます。

さらに助けが必要な場合はお知らせください。

答え3

現在、Ubuntuインストールでgrubを使用しており、Archを起動するには、パッケージがupdate-grubを実行するたびに新しいエントリが削除されないようにUbuntuを設定するカスタムエントリを追加する必要があります。

新しいエントリはすでにUbuntuの起動に使用したものと非常によく似ていますが、Archのパーティションを参照してArchのカーネルパラメータを使用します(おそらくgrub2でArchのwikiページを使用できます)。

詳しくはこちらをご覧ください。https://help.ubuntu.com/community/Grub2/CustomMenus

答え4

Debian Busterのインストール中にこの問題が発生したため、Googleでこれを見つけました。デップストラップ、Debianのために最初から構築された非常にミニマルなシステムです。既存のDebian Stretchを引き続き使用できるようにしたいので、デュアルブートが必要です。そしてブート防止プログラム何もプリインストールされていないので、他の3つの答えがすべて必要です。@切る(不明なルートファイルシステムのマウント)、@ダルニール(os-proberのインストール)と@サムルタ(カスタム設定を使用しています/etc/grub.d/40_custom)。私がそれをすべて整理する方法は次のとおりです。

初めてインストールオペレーティングシステム検出器:

~$ sudo apt install os-prober

ただし、ルートファイルシステムがマウントされていない場合、os-proberは以前のインストールを見つけません。だからこれをやってください(私のファイルは/ dev / sda1にあります):

~$ sudo mkdir /mnt/oldroot
~$ sudo mount /dev/sda1 /mnt/oldroot

grub-mkconfigstdoutから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を実行するたびに、以前のインストールエントリが失われることなく常に追加されます。

関連情報