这是我的 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/sdXY
为UUID=
并输入您通过blkid
命令获得的 UUID。
现在,我假设您正在使用默认的 grub2 配置文件。如果您手动编辑过它们,我相信您知道编辑的内容以及如何再次进行编辑。跑步
# update-grub
对 grub.cfg 进行任何您想要的自定义更改
另外,在某些情况下,您可能需要使用以下命令更新 initramfs:
# update-initramfs -u -k all
答案2
只需省略前缀即可(hd0,6)
。该search
命令通过 UUID 找到正确的分区,并将根目录设置为指向那里。没有分区前缀的路径被假定为相对于该根。
另外,我不确定为什么要设置 iso 映像的环回,因为之后您就不会再实际使用它了。
答案3
不可以。您不能用 grub.cfg 文件中的 UUID 进行替换。 Grub 仅通过分区号进行读取。