ディスク イメージ ファイルのパーティション テーブル (.img) に UUID を追加する方法

ディスク イメージ ファイルのパーティション テーブル (.img) に UUID を追加する方法

現在、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=

関連情報