So fügen Sie der Partitionstabelle der Disk-Image-Datei (.img) eine UUID hinzu

So fügen Sie der Partitionstabelle der Disk-Image-Datei (.img) eine UUID hinzu

Derzeit erstelle ich eine Disk-Image-Datei (mithilfe von mtools und parted), die Grub und ein Dateisystem enthält und einen Linux-Kernel bootet.

Die grub.cfg die ich dafür verwende sieht folgendermaßen aus:

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
}

Dabei wird jedoch immer davon ausgegangen, dass das Gerät (hd0,gpt1) das richtige Gerät ist. Aus diesem Grund möchte ich der img-Datei eine UUID hinzufügen, damit das Startgerät immer dasselbe sein kann.

Wie füge ich der Partitionstabelle eine UUID hinzu? Ich kann keine Root-Berechtigungen verwenden.

Antwort1

GPT-Partitionstabellen haben bereits eine. Ihr Root-Dateisystem hat auch eine. Führen Sie blkid disk.imgsie aus, um sie aufzulisten – es werden die Dateisystem-UUIDs als UUID=und die Partitions-UUIDs als angezeigt PARTUUID=.

Leider scheinen aktuelle GRUB-Versionennoch nicht unterstützenmithilfe von Partitions-UUIDs. Wenn die Unterstützung hinzugefügt wird, ist sie unter dem search.partuuidBefehl verfügbar.

In der Zwischenzeit müssen Sie stattdessen wahrscheinlich eine Dateisystem-UUID verwenden:

search.fs_uuid --no-floppy --set=root e9ad79d7-...-e3c445c7f4e9

Jetzt können Sie Pfade als ($root)/bzImage.efioder einfach durch referenzieren /bzImage.efi, da $root automatisch auf alle Pfadreferenzen angewendet wird.


Vergessen Sie nicht, den Linux- root=Parameter entsprechend zu aktualisieren. Wenn Sie ein initramfs verwenden, muss es ein Format sein, das Ihr initramfs versteht. (WennnichtBei Verwendung eines Initramfs ist die einzige Option root=PARTUUID=.)

verwandte Informationen