
再インストールで問題が発生しましたアーチリナックスWindows 10 とデュアルブートされたマシン上。
さまざまな理由から、古いArch Linuxのインストールをすべてバックアップして、最初からやり直すことにしました。Arch LinuxのライブメディアをUSBに保存していたので、そこから起動しました(UEFI)、Linux パーティションをフォーマットし、Arch Linux インストール ガイドに従いました。
「ブートローダーのインストール」セクションに到達するまで、すべて正常に動作しているように見えました。以前使用していた初心者向けガイドが削除され、代わりに (はるかに簡潔な) インストール ガイドが採用されたため、ここで何をすべきか 100% 確信が持てませんでした。
私は私の電子フィパーティションにはすでに必要な GRUB のものがすべて含まれていましたが、新しいインストールのために変更する必要があると考えました。
- スタブを削除し
/boot/EFI/grub.efi
、名前/boot/grub/
を に変更しました/boot/grub.bak
。 - 私は走った
pacman -S grub os-prober
grub-install
archインストールガイドのコマンドを(EFIパーティションのマウントポイント)とともに実行し、次に実行しましtarget=x86_64-efi
た 。directory=/boot
grub-mkconfig -o /boot/grub/grub.cfg
これが私の問題の始まりです。grub-mkconfig
コマンドを実行すると、「failed to connect to lvmetad
」エラーが発生し、フォールバック モードに戻ると表示されました。grub.cfg
正しいディレクトリにファイルは正常に作成されましたが、メニュー エントリがありませんでした。
起動しようとすると、GRUBコマンドラインしか表示されません。Arch Linuxライブメディアに戻ってやり直し、arch-chroot
Arch /boot/grub.bak
Linuxのメニューエントリセクションをコピーし、古いUUIDを現在報告されているUUIDに置き換えました。fstab
ルート ディレクトリにこれを追加しました。再起動すると GRUB メニューが復活しましたが、Arch Linux を選択すると、次のエラーが発生しました/vmlinux couldn't be found
。
chroot
ライブメディアに戻って、再度実行しましたgrub-config
。それでもメニューエントリはありません。この質問同様の問題があり、ヘルパー スクリプトに既知の問題があると書かれていましたgrub-mkconfig
。これは 2014 年のことでしたので、私の問題も同じではないだろうと思いましたが、そこでのベスト アンサーに従いました。提案されたのは、次の操作を実行することでした。
ちょうど今同じ問題に遭遇しましたが、別の回避策を見つけました。基本的には、ホスト
/run
ディレクトリをゲストが利用できるようにすることです。まず、
/run
ゲストがアクセスできる場所にマウントします。インストール パーティションが にマウントされていると仮定します/mnt
。mkdir /mnt/hostrun mount --bind /run /mnt/hostrun
次に、
chroot
ゲストに入り、ホストのを/run/lvm
ゲストにマウントします/run
。arch-chroot /mnt /bin/bash mkdir /run/lvm mount --bind /hostrun/lvm /run/lvm
grub-mkconfig
その後、LVM エラーなしで実行できますgrub-install
。これにより、LVM を使用してインストールしている場合にもコマンドが動作します。完了したら、
/run/lvm
chroot を終了する前に必ず umount してください。
そうすることで、実際にエラーは解消されましたfails to connect to lvmetad
が、 に置き換えられました/dev/sdx not initialized in UDEV
。このコマンドは、grub.cfg
メニュー エントリのない を引き続き生成します。
ラップトップの「起動中のハンマー」メニューから Windows ブート マネージャーを選択すると、Windows に入ることができますF12。
答え1
arch-chroot
この問題が発生するのは、 にいて を使用しているためですos-prober
。私のケースを解決したのは次の方法です:
grub.cfg
まだバックアップしていない場合は、現在のものをバックアップしてください。- 取り除く
os-prober
(pacman -R os-prober
、または無効にすることもできます) - 走る
grub-mkcondig
- Archを再起動する
- インストール
os-prober
grub-mkconfig
再実行
答え2
私も同じ問題を抱えていました。これは古い投稿ですが、誰かの役に立つかもしれないので回避策を投稿します。
あなたと同じように、私も作業ファイルを含む完全なバックアップを持っていましたgrub.cfg
。古いgrub.cfg
ファイルから必要なメニューエントリを抽出し、それを追加しました/etc/grub.d/40_custom
。次に、
grub mkconfig -o /boot/grub/grub.cfg
今はすべて順調です。
os-prober
は優先度の低い便利なアイテムであり、本当に必須というわけではありません。個人的には、これを機能させるために多くの時間を費やすつもりはありません。これは個人的な選択です。この種の問題のトラブルシューティングをするのが好きな人もおり、私はその努力に感謝していますが、実際の作業にシステムが必要で、時間的な制約があり、すぐに起動する必要がある人もいます。
最終的には、この問題はソフトウェアまたはドキュメントによって修正されるでしょう。ファイル内のメニュー エントリの設定方法について疑問がある場合は40_custom
、Web 検索で多数の例が見つかります。