我可以用 UUID 替换分区号吗?

我可以用 UUID 替换分区号吗?

这是我的 grub.cfg:

menuentry 'Debian 6.0 on hard disk' {
    set  isofile="(hd0,6)/home/toinstall/debian.iso"
    loopback  loop  $isofile
    search --no-floppy --fs-uuid --set=root 8b29114c-4f89-4c96-b0c0-579ce58c7345
    linux  (hd0,6)/hd-media/vmlinuz  root=UUID=8b29114c-4f89-4$
    initrd (hd0,6)/hd-media/initrd.gz
}

可以运行,没问题。有3个hd0,6。我可以用文件中的 uuid 替换分区号吗?

答案1

由于我上次的回答完全错误,所以我自己做了一些阅读。这是您需要的解决方案:在终端上运行以下命令:

# blkid

这将输出系统上每个设备的 UUID。对于我的系统,输出类似于:

/dev/sda1: LABEL="boot" UUID="aa84c5a8-6408-4952-b577-578f2a67af86" TYPE="ext2" 
/dev/sda2: LABEL="root" UUID="a430e0ef-fd35-432f-8b9a-75a49b89ad8a" TYPE="ext4" 
/dev/sda3: LABEL="swap" UUID="e388806a-dc27-4f4e-a136-3d1ff4e53962" TYPE="swap" 
/dev/sda4: UUID="088E027A8E026114" TYPE="ntfs" 
/dev/mspblk0p1: SEC_TYPE="msdos" TYPE="vfat" 

接下来,/etc/fstab在文本编辑器中打开。将条目更改/dev/sdXYUUID=并输入您通过blkid命令获得的 UUID。

现在,我假设您正在使用默认的 grub2 配置文件。如果您手动编辑过它们,我相信您知道编辑的内容以及如何再次进行编辑。跑步

# update-grub

对 grub.cfg 进行任何您想要的自定义更改

另外,在某些情况下,您可能需要使用以下命令更新 initramfs:

# update-initramfs -u -k all

答案2

只需省略前缀即可(hd0,6)。该search命令通过 UUID 找到正确的分区,并将根目录设置为指向那里。没有分区前缀的路径被假定为相对于该根。

另外,我不确定为什么要设置 iso 映像的环回,因为之后您就不会再实际使用它了。

答案3

不可以。您不能用 grub.cfg 文件中的 UUID 进行替换。 Grub 仅通过分区号进行读取。

相关内容