Arch Linux インストールにおける 'grub-mkconfig' の問題: 'grub-mkconfig' が lvmetad に接続できない

Arch Linux インストールにおける 'grub-mkconfig' の問題: 'grub-mkconfig' が lvmetad に接続できない

再インストールで問題が発生しましたアーチリナックス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-installarchインストールガイドのコマンドを(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-chrootArch /boot/grub.bakLinuxのメニューエントリセクションをコピーし、古い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/lvmchroot を終了する前に必ず 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-proberpacman -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 検索で多数の例が見つかります。

関連情報