如何將UUID新增至磁碟映像檔分割區表(.img)

如何將UUID新增至磁碟映像檔分割區表(.img)

目前我正在建立一個磁碟映像檔(使用 mtools 和 parted),其中包括 grub、檔案系統並啟動 Linux 核心。

我使用的 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?我無法使用root權限。

答案1

GPT 分割表已經有一個。你的根檔案系統也有一個。運行blkid disk.img以列出它們 - 它將顯示檔案系統 UUID 為UUID=並將分割區 UUID 為PARTUUID=

不幸的是,目前的 GRUB 版本似乎還不支援使用分區 UUID。添加支援後,它將在search.partuuid命令下可用。

同時,您可能必須使用檔案系統 UUID:

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

現在您可以引用路徑 as($root)/bzImage.efi或簡單地引用路徑/bzImage.efi,因為 $root 會自動套用於所有路徑參考。


不要忘記root=相應地更新 Linux 參數。使用 initramfs 時,它需要是 initramfs 能夠理解的格式。 (什麼時候不是使用 initramfs,唯一的選擇是root=PARTUUID=

相關內容