Windows 10でデュアルブートされたマシンにArchを再インストールするときに問題が発生しました。さまざまな無関係な理由により、古いArchインストールのすべてをバックアップして、最初からやり直すことにしました。私はUSBにArchライブメディアを持っているので、先に進んでそこから(UEFIで)ブートし、Linuxパーティションをフォーマットして、Archインストールガイドを読みました。
「bootoloaderのインストール」セクションに到達するまで、すべてが正常に機能しているように見えました。以前使用していた初心者向けガイドが(はるかに簡単な)インストールガイドのために削除されたため、ここで何をするか100%確信が持てませんでした。私のEFIパーティションにはすでに必要なすべての機能が含まれていることはわかっていますが、新しいインストールでは変更する必要があると考えました。 /boot/EFI/grub.efi
スタブを削除し、/boot/grub/
を/boot/grub.bak
に名前変更しました。私はpacman -S grub os-prober
を実行し、target=x86_64-efi
とdirectory=/boot
(私のefiパーティションのマウントポイント)を使用してArchインストールガイドからgrub-installコマンドを実行してから、grub-mkconfig -o /boot/grub/grub.cfg
を実行しました。
これが私の悩みの始まりです。 grub-mkconfigコマンドを実行すると「failed to connect to lvmetad
」エラーが発生し、フォールバックモードに戻っているとのことです。正しいディレクトリにgrub.cfgファイルを正常に生成しましたが、メニューエントリがありませんでした。起動しようとすると、grubコマンドラインしか得られません。 Archのライブメディアに戻ってArch-chrootをやり直し、/boot/grub.bak
に移動し、そこからArch Linuxのメニューエントリセクションをコピーして、古いUUIDをfstabで現在報告されているUUIDに置き換えていることを確認します私のルートディレクトリ。これにより、再起動したときにgrubメニューが表示されましたが、Arch Linuxを選択すると/vmlinux couldn't be found
というエラーが発生しました。
ライブメディアでchrootに戻り、grub-configを再実行しました。メニューエントリはまだありません。同様の問題がある this スレッドが見つかりました。これは、grub-mkconfigヘルパースクリプトに既知の問題があると述べています。これは'14年のものなので、私の問題が同じである可能性は低いと思いましたが、私はそこでベストアンサーに従いました。提案は次のようにすることでした:
たった今同じ問題に遭遇し、別の回避策を見つけました。基本的には、ゲストがhosts/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 LVMエラーなしでgrub-mkconfigとgrub-installを実行できます。これにより、LVMを使用してインストールしている場合でも、コマンドの動作が向上します。
完了したら、chrootを終了する前に、必ず/ run/lvmをアンマウントしてください。
そうすることで、実際にfails to connect to lvmetad
エラーはなくなりましたが、/dev/sdx not initialized in UDEV
に置き換えられます。コマンドはまだmenuentriesのないgrub.cfgを生成します。
ラップトップの「起動中にハンマーf12」メニューからWindowsブートマネージャーを選択することで、Windowsに入ることができます。
Arch-chrootでos-proberを使用しているため、vproblemが表示されます。私の事件を解決したのは:
pacman -R os-prober
、 または無効にすることもできます )ここでも同じ問題。これは古い投稿ですが、誰かを助けるために回避策を投稿します。
自分と同じように、作業中のgrub.cfgファイルを含む完全なバックアップがありました。古いgrub.cfgファイルから必要なメニューエントリを抽出し、/ etc/grub.d/40_customに追加しました。次に、grub mkconfig -o /boot/grub/grub.cfgを再実行しました。今はすべて順調です。
os-proberは、優先度の低い便利なアイテムであり、本質的なものではありません。個人的には、それを機能させるために多くの時間を費やすことはしませんでした。それは個人的な選択です。この種の問題をトラブルシューティングするのが好きな人もいれば、私は彼らの努力に感謝しますが、実際の作業にはシステムが必要で、時間の制約があり、立ち上がって実行する必要がある人もいます。
最終的に、この問題はソフトウェアまたはドキュメントのいずれかによって修正されます。 40_customファイルのメニューエントリの設定方法について質問がある場合は、Web検索で多数の例を見つけることができます。