現在、grub、ファイル システムを含み、Linux カーネルを起動するディスク イメージ ファイル (mtools と parted を使用) を作成しています。
私が使用する grub.cfg は次のようになります。
insmod part_gpt
menuentry "test image" {
linux (hd0,gpt1)/bzImage.efi root=/dev/sda1 console=tty console=ttyS0,115200 primary
initrd (hd0,gpt1)/fs.cpio.gz
}
しかし、これは常にデバイス (hd0、gpt1) が正しいデバイスであると想定しています。そのため、ブート デバイスが常に同じになるように、img ファイルに UUID を追加したいと思います。
パーティション テーブルに UUID を追加するにはどうすればよいですか? ルート権限は使用できません。
答え1
GPT パーティション テーブルにはすでに 1 つあります。ルート ファイル システムにも 1 つあります。 を実行して一覧表示すると、ファイル システムの UUID が として、パーティションの UUID が としてblkid disk.img
表示されます。UUID=
PARTUUID=
残念ながら、現在のGRUBのバージョンではまだサポートしていませんパーティション UUID を使用します。サポートが追加されると、search.partuuid
コマンドで使用できるようになります。
一方、代わりにファイルシステムの UUID を使用する必要があるでしょう。
search.fs_uuid --no-floppy --set=root e9ad79d7-...-e3c445c7f4e9
$root はすべてのパス参照に自動的に適用されるため、パスを として、($root)/bzImage.efi
または単に によって参照できるようになりました。/bzImage.efi
Linuxroot=
パラメータを適宜更新することを忘れないでください。initramfsを使用する場合は、initramfsが理解できる形式である必要があります。(ないinitramfs を使用する場合、唯一のオプションは ですroot=PARTUUID=
。