我已经使用flashdrive上的grub成功启动了循环安装的arch安装iso(以及其他几个isos)。我在Flash的/ boot / grub中有grub文件,在/ boot / iso中有iso文件(请参阅https://wiki.archlinux.org/index.php/Multiboot_USB_drive)。grub.cfg的相关部分是
imgdevpath="/dev/disk/by-uuid/CF3D-EC7C"
menuentry '[loopback]archlinux-2015.07.01-dual.iso i686' {
set isofile='/boot/iso/archlinux-2015.07.01-dual.iso'
loopback loop $isofile
linux (loop)/arch/boot/i686/vmlinuz archisolabel=ARCH_201507 img_dev=$imgdevpath img_loop=$isofile earlymodules=loop
initrd (loop)/arch/boot/i686/archiso.img
}
当imgdevpath中的UUID正确时,这可以正常工作。因此,必须事先手动更新该行。只有这样,它才能起作用。
我想在启动时从grub内读取GRUB根分区(也是我存储iso文件的分区)的UUID 。能做到吗?
这样可以简化从(循环安装)iso文件的引导。“ ls($ root)”已经显示了UUID(除其他外),但是无法将其输入变量(或者至少我不知道如何)。理想情况下,我想做类似的事情
foobar_readuuid ($root) --set=rootuuid
imgdevpath="/dev/disk/by-uuid/$rootuuid"
...
我不是在寻找“搜索”命令;据我所知,它的输出始终是“ device,partition”,即类似hdX,msdosY的东西。我已经知道,它在$ root中。只想阅读uuid,所以我可以将其输入到$ imgdevpath
probe -u $root --set=abc
使用$ abc作为$ root的uuid变量。
因此,在我的特定情况下,grub.cfg的相关部分变为:
probe -u $root --set=rootuuid
set imgdevpath="/dev/disk/by-uuid/$rootuuid"
而且效果很好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句