Debian 11 ライブイメージに GRUB をインストールすると、「オーバーライド」へのフルパスを取得できなくなります。

Debian 11 ライブイメージに GRUB をインストールすると、「オーバーライド」へのフルパスを取得できなくなります。

私たちはDebianベースの製品を作っています。工場でそれらを構築するプロセスを簡素化するために、基本オペレーティングシステムをインストールするためのライブディスクを構築しようとしています。このプロセスを使用する古い製品がありますが、Debian 7に基づいています。私はDebian 11を使用しています。私のDebian 11の修復プロセスとイメージはDebian 7に基づいています。どちらも使用されます。 Debian 11システムは、メインラインリポジトリとマイリポジトリからオペレーティングシステムをインポートして、ビットをホストするパッケージをlive-build入手します。これは、ビルドOSを実行し、それをsquashfsに圧縮してからドライブパーティション、squashfsファイルを適切なパーティションに解凍するなどのタスクを実行するスクリプトを使用して、周囲にライブOSをビルドするマルチレベルbullseyeプロセスです。live-build深刻に動作しない場合は、GRUBを使用してください。

ビルドの一部は次のことを行います。

install -d /boot/seed
grub-mkimage -Ox86_64-efi -o /boot/seed/BOOTX64.EFI -p '(hd0,1)/EFI/BOOT/grub' \
    part_gpt part_msdos fat
grub-mkimage -Oi386-pc -o /boot/seed/mbr-core.img -p '(hd0,msdos1)/biosgrub' \
    part_msdos fat biosdisk
grub-mkimage -Oi386-pc -o /boot/seed/gpt-core.img -p '(hd0,gpt1)/biosgrub' \
    part_gpt fat biosdisk
cp -a /usr/lib/grub/i386-pc/boot.img /boot/seed/boot.img
cp -a /usr/lib/grub/i386-pc/modinfo.sh /boot/seed/modinfo.sh
grub-editenv /boot/seed/grubenv create

これらのファイルは物理オペレーティングシステムに保存され、GRUBのインストールを試みる前にESPパーティションにコピーされます。これらのファイルとさまざまなGRUBモジュールの両方がインストールスクリプト中にコピーされます。

後でスクリプトからgrub-install

grub-install \
    --directory /mnt/biosgrub \
    --boot-image boot.img \
    --core-image core_img \
    /dev/sda

ここでの問題は、最新バージョンがgrub-installサポートされなくなり、core-imageDebian boot-image7バージョンなどの移行がすぐに失敗することです。boot-imageとスイッチを取り出しましたが、core-image失敗します。

grub-install: error: failed to get canonical path of `overlay'.

はい、実際には左バックティックと右一重引用符がありますoverlay

GRUBの手順を削除し、すべてを解凍し、Manjaro(すでに配置されている)を実行しているグラフィックライブディスクから起動して、GRUBの状況に関する追加情報を取得しようとしました。そこで実行してもgrub-install同じように失敗します。

インターネット検索では、ターゲットデバイスがoverlayfsを使用していると考えられ、どの物理デバイスを使用するのかわからないため、これが発生することを理解していますが、ここgrub-installでどこに行くのか、どの質問をするのかわかりません。独自のソフトウェアのためにいくつかのコンテンツを編集する必要がありましたが、詳細をお寄せいたします。

重要な場合は、作成したOSパーティションをシステムの外部に手動でインストールすると、すべてが正しい場所にあり、コードが正しい場所にあり、ブートローダがある場合は正しく実行できることがわかります。

/procETA:ここでは、圧縮されていないOSをライブディスクのディレクトリにインストールし、、およびをそのディレクトリにマウントし、EFIパーティションをマウントしてからingするなど/sys、いくつかの進歩を遂げました。その後実行されますが、起動時に grub がまだ存在しません。/devchrootgrub-install /dev/sda

ベストアンサー1

debosこの問題について大量のトラフィックが発生することを知らせた後、質問に記載されているプロセスを使用しようとするのではなく、ビルドされたイメージとフラッシュイメージを使用して最終的に問題を解決したと投稿する必要があると思いました。

デボス:https://github.com/go-debos/debos

おすすめ記事