无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: wintoflash
打印 上一主题 下一主题

[发布] grub2文件管理器(BIOS/UEFI启动 ISO/WIM/VHD...)

    [复制链接]
311#
发表于 2021-2-21 10:40:28 | 只看该作者
江南一根葱 发表于 2021-2-21 10:33
或者你把这个菜单复制出来改成xxoo.cfg
再configfile /xxoo.cfg

这个loopback.cfg好像不能随意改名字吧,必须是光盘镜像iso里面的,因为加载了光盘镜像iso里面的loopback.cfg之后,系统就会把iso所在的盘符作为root传递给linux的kernel,从硬盘加载这个loopback.cfg,原理上讲不通,应该没有意义。
https://www.supergrubdisk.org/wiki/Loopback.cfg

点评

所谓loopback.cfg也是一个普通的菜单,把iso里的资源拿出来执行不是很正常么  详情 回复 发表于 2021-2-21 15:33
回复

使用道具 举报

310#
发表于 2021-2-21 10:33:41 | 只看该作者
liuzhaoyzz 发表于 2021-2-21 10:30
E:\linux\veket\veket-20.10\boot\grub\loopback.cfg内容:

loadfont /boot/grub/font.pf2

或者你把这个菜单复制出来改成xxoo.cfg
再configfile /xxoo.cfg

点评

这个loopback.cfg好像不能随意改名字吧,必须是光盘镜像iso里面的,因为加载了光盘镜像iso里面的loopback.cfg之后,系统就会把iso所在的盘符作为root传递给linux的kernel,从硬盘加载这个loopback.cfg,原理上讲不通  详情 回复 发表于 2021-2-21 10:40
回复

使用道具 举报

309#
发表于 2021-2-21 10:30:33 | 只看该作者
江南一根葱 发表于 2021-2-21 10:29
那直接看下内容loopback.cfg的菜单内容。。

E:\linux\veket\veket-20.10\boot\grub\loopback.cfg内容:

loadfont /boot/grub/font.pf2

# https://help.ubuntu.com/community/Grub2/Displays
color_normal=cyan/black
#menu_color_highlight=black/light-gray
menu_color_highlight=yellow/red
menu_color_normal=light-gray/black

menuentry "fossapup64 9.5" {
    linux /vmlinuz pfix=fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "fossapup64 9.5 - Copy SFS files to RAM" {
    linux /vmlinuz pfix=copy,fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "fossapup64 9.5 - Don't copy SFS files to RAM" {
    linux /vmlinuz pfix=nocopy,fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "fossapup64 9.5 - RAM only" {
    linux /vmlinuz pfix=ram,fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "fossapup64 9.5 - No X" {
    linux /vmlinuz pfix=nox,fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "fossapup64 9.5 - No KMS (Kernel modesetting)" {
    linux /vmlinuz nomodeset pfix=fsck pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "fossapup64 9.5 - Ram Disk SHell" {
    linux /vmlinuz pfix=rdsh pmedia=cd find_iso=${iso_path}
    initrd /initrd.gz
}

menuentry "Shutdown" {
        halt
}

menuentry "Reboot" {
        reboot
}


点评

或者你把这个菜单复制出来改成xxoo.cfg 再configfile /xxoo.cfg  详情 回复 发表于 2021-2-21 10:33
回复

使用道具 举报

308#
发表于 2021-2-21 10:29:33 | 只看该作者
liuzhaoyzz 发表于 2021-2-21 10:23
前面几个帖子我都说过了啊,试过了啊,前面的语句都不出错,configfile /boot/grub/loopback.cfg这一句出 ...

那直接看下内容loopback.cfg的菜单内容。。

点评

E:\linux\veket\veket-20.10\boot\grub\loopback.cfg内容: loadfont /boot/grub/font.pf2 # https://help.ubuntu.com/community/Grub2/Displays color_normal=cyan/black #menu_color_highlight=black/ligh  详情 回复 发表于 2021-2-21 10:30
回复

使用道具 举报

307#
发表于 2021-2-21 10:23:18 | 只看该作者
江南一根葱 发表于 2021-2-21 10:01
最好不要写成菜单,手打一句一句来。。比如configfile前先
ls /看看能不能取到文件,
再cat /boot/grub ...

前面几个帖子我都说过了啊,试过了啊,前面的语句都不出错,configfile /boot/grub/loopback.cfg这一句出错了。
wintoflash的不出错,我自己手工写的菜单出错,我写的菜单,没有source下func.sh这些。
cat /boot/grub/loopback.cfg?这个loopback.cfg是原版linux.iso光盘镜像里面的,这个文件是只读的,不是这个问题,因为光盘镜像里面的同一个loopback.cfg,grubfm就可以启动,我手工写的菜单就不同。
我对于loopback.cfg的原理有点好奇,所以想尝试下。
grubfm文件管理器没问题的。

点评

应该是你自己的菜单有问题,把全部的菜单贴出来看看。  详情 回复 发表于 2021-2-21 13:40
那直接看下内容loopback.cfg的菜单内容。。  详情 回复 发表于 2021-2-21 10:29
回复

使用道具 举报

306#
发表于 2021-2-21 10:01:29 | 只看该作者
liuzhaoyzz 发表于 2021-2-21 07:33
哦,loopback.cfg选项那里,按了e键,菜单是configfile (memdisk)/boot/grubfm/rules/iso/loop.sh

进 ...

最好不要写成菜单,手打一句一句来。。比如configfile前先
ls /看看能不能取到文件,
再cat /boot/grub/loopback.cfg看看啥内容。。、
或者也source下func.sh,
遇到报错啥的我都是反复用到ls,set这样试出来的。

点评

前面几个帖子我都说过了啊,试过了啊,前面的语句都不出错,configfile /boot/grub/loopback.cfg这一句出错了。 wintoflash的不出错,我自己手工写的菜单出错,我写的菜单,没有source下func.sh这些。 cat /boot/g  详情 回复 发表于 2021-2-21 10:23
回复

使用道具 举报

305#
发表于 2021-2-21 07:33:39 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-2-21 07:45 编辑
江南一根葱 发表于 2021-2-20 22:19
那选第二个,按E不就知道脚本和流程了。。

哦,loopback.cfg选项那里,按了e键,菜单是configfile (memdisk)/boot/grubfm/rules/iso/loop.sh

进去看了下:
  1. source ${prefix}/func.sh;

  2. loopback -d loop;
  3. loopback loop "${grubfm_file}";
  4. probe --set=rootuuid -u "(${grubfm_device})";
  5. export iso_path="${grubfm_path}";
  6. export rootuuid;
  7. if [ -f "${theme_std}" ];
  8. then
  9.   export theme=${theme_std};
  10. fi;
  11. set root=loop;
  12. configfile /boot/grub/loopback.cfg;
复制代码


source ${prefix}/func.sh里面好像是交换了磁盘:
function to_g4d_path {
  set g4d_path="${1}";
  lua ${prefix}/g4d_path.lua;
}

function to_g4d_menu {
  set g4d_menu="${1}";
  loopback -d rd;
  loopback -m rd ${prefix}/initrd.img.xz;
  lua ${prefix}/g4d_menu.lua;
}

function auto_swap {
  if regexp '^hd[0-9a-zA-Z,]+$' ${grubfm_disk};
  then
    regexp -s devnum '^hd([0-9]+).*$' ${grubfm_disk};
    if test "devnum" != "0";
    then
      map -s (hd0) (${grubfm_disk});
    fi;
  fi;
}

function swap_hd01 {
  if [ "$grub_platform" != "efi" ];
  then
    if [ "${bootdev}" = "hd0" ];
    then
      map -s (hd0) (hd1);
    fi;
  fi;
}

regexp --set=1:grubfm_path '(/.*)$' "${grubfm_file}";
regexp --set=1:grubfm_dir '^(.*/).*$' "${grubfm_path}";
regexp --set=1:grubfm_device '^\(([0-9a-zA-Z,]+)\)/.*' "${grubfm_file}";
regexp --set=1:grubfm_disk '([chf]d[0-9]+)[0-9,]*' "${grubfm_device}";
regexp --set=1:grubfm_name '^.*/(.*)$' "${grubfm_file}";
unset grubfm_filename;
unset grubfm_fileext;
regexp --set=1:grubfm_filename '^(.*)\.(.*)$' "${grubfm_name}";
regexp --set=1:grubfm_fileext '^.*\.(.*)$' "${grubfm_name}";

于是我把菜单改成了类似的,loopback loop $iso_path的前面加上了loopback -d loop;
menuentry "/linux/veket/veket-20.10.iso-loopback" "/linux/veket/veket-20.10.iso" {
iso_path="/linux/veket/veket-20.10.iso"
export iso_path
search --set=root --file $iso_path;probe -u ($root) -s rootuuid;echo $rootuuid;export rootuuid;
loopback -d loop;
loopback loop $iso_path
root=(loop)
configfile /boot/grub/loopback.cfg
}

结果还是不行啊。虚拟机卡死,“固件遇到意外的异常情况。虚拟机无法引导”。实体机直接死机了。卡死在这一句:configfile /boot/grub/loopback.cfg

QQ拼音截图20210220124158.png (17.41 KB, 下载次数: 190)

QQ拼音截图20210220124158.png

点评

最好不要写成菜单,手打一句一句来。。比如configfile前先 ls /看看能不能取到文件, 再cat /boot/grub/loopback.cfg看看啥内容。。、 或者也source下func.sh, 遇到报错啥的我都是反复用到ls,set这样试出来的  详情 回复 发表于 2021-2-21 10:01
回复

使用道具 举报

304#
发表于 2021-2-20 23:23:03 | 只看该作者
给力
回复

使用道具 举报

303#
发表于 2021-2-20 22:19:20 | 只看该作者
liuzhaoyzz 发表于 2021-2-20 22:08
应该是三个方案。直接上图。
第一个是patch initrd方案。
第二个是loopback.cfg方案。

那选第二个,按E不就知道脚本和流程了。。

点评

哦,loopback.cfg选项那里,按了e键,菜单是configfile (memdisk)/boot/grubfm/rules/iso/loop.sh 进去看了下: 没有发现特别的区别,似乎func.sh里面交换了磁盘。 ${prefix}/func.sh的内容: 于是我  详情 回复 发表于 2021-2-21 07:33
回复

使用道具 举报

302#
发表于 2021-2-20 22:08:27 | 只看该作者
江南一根葱 发表于 2021-2-20 22:05
没有吧,我看来看去就一个方案啊。。

应该是三个方案。直接上图。
第一个是patch initrd方案。
第二个是loopback.cfg方案。
第三个是partnew方案,也就是Easy2boot采用的方案。



GPT_test-2021-02-19-21-08-48.png (282.66 KB, 下载次数: 184)

GPT_test-2021-02-19-21-08-48.png

点评

那选第二个,按E不就知道脚本和流程了。。  详情 回复 发表于 2021-2-20 22:19
回复

使用道具 举报

301#
发表于 2021-2-20 22:05:54 | 只看该作者
liuzhaoyzz 发表于 2021-2-20 21:55
你说的不是我想要的,distro目录下有相应的脚本的(veket.sh),这个脚本是用了patch initrd的高科技方案。 ...

没有吧,我看来看去就一个方案啊。。

点评

应该是三个方案。直接上图。第一个是patch initrd方案。 第二个是loopback.cfg方案。 第三个是partnew方案,也就是Easy2boot采用的方案。  详情 回复 发表于 2021-2-20 22:08
回复

使用道具 举报

300#
发表于 2021-2-20 21:55:16 | 只看该作者
江南一根葱 发表于 2021-2-20 21:50
我说"参考grubfm"的思路也没错啊
distro目录下有相应的脚本的(veket.sh)
是用了魔改grub2高科技命令mki ...

你说的不是我想要的,distro目录下有相应的脚本的(veket.sh),这个脚本是用了patch initrd的高科技方案。不是我说的loopback.cfg的方案啊,难道loopback.cfg方案中,也用了patch initrd了吗?好像这是两个独立的方案啊。

点评

没有吧,我看来看去就一个方案啊。。  详情 回复 发表于 2021-2-20 22:05
回复

使用道具 举报

299#
发表于 2021-2-20 21:50:29 | 只看该作者
liuzhaoyzz 发表于 2021-2-20 21:32
你说的思路很对,但我想要知道细节,veket和puppy据我所知,原生不支持loopback.cfg的。不知道w大用了什 ...

我说"参考grubfm"的思路也没错啊
distro目录下有相应的脚本的(veket.sh)
是用了魔改grub2高科技命令mkinitrd,强改了initrd里init脚本,让它知道来世的路,正确地挂载正确的文件系统,ventoy也是类似的原理,实现方式不一样
这个貌似确实还没在论坛上讨论过,,,我玩倒是玩过会的,老眼昏花,累啊。

点评

你说的不是我想要的,distro目录下有相应的脚本的(veket.sh),这个脚本是用了patch initrd的高科技方案。不是我说的loopback.cfg的方案啊。  详情 回复 发表于 2021-2-20 21:55
回复

使用道具 举报

298#
发表于 2021-2-20 21:32:22 | 只看该作者
江南一根葱 发表于 2021-2-20 19:01
linux的iso貌似都是靠给内核传递相关参数来启live的吧,,在正确的时间正确地传递正确的参数给内核,让内 ...

你说的思路很对,但我想要知道细节,veket和puppy据我所知,原生不支持loopback.cfg的。不知道w大用了什么魔法实现loopback.cfg启动的。

点评

我说"参考grubfm"的思路也没错啊 distro目录下有相应的脚本的(veket.sh) 是用了魔改grub2高科技命令mkinitrd,强改了initrd里init脚本,让它知道来世的路,正确地挂载正确的文件系统,ventoy也是类似的原理,实现  详情 回复 发表于 2021-2-20 21:50
回复

使用道具 举报

297#
发表于 2021-2-20 19:01:10 | 只看该作者
liuzhaoyzz 发表于 2021-2-20 16:51
我看了下脚本,没发现什么根本性的区别啊。好像获取了rootuuid,我试了也不行。

linux的iso貌似都是靠给内核传递相关参数来启live的吧,,在正确的时间正确地传递正确的参数给内核,让内核来根据uuid或其它路径查找正确的设备或路径加载正确的initrd挂载正确的文件系统。。就行了吧

启不来应该就是某步出错了,或者需要修改initrd脚本,让它强制加载你想要挂载的文件系统
grubfm启linux貌似干的就是这些事,即使是启win的iso也是干的这个事。

点评

你说的思路很对,但我想要知道细节,veket和puppy据我所知,原生不支持loopback.cfg的。不知道w大用了什么魔法实现loopback.cfg启动的。  详情 回复 发表于 2021-2-20 21:32
回复

使用道具 举报

296#
发表于 2021-2-20 16:51:28 | 只看该作者
江南一根葱 发表于 2021-2-20 16:11
直接参考grubfm里面的脚本不就行了

我看了下脚本,没发现什么根本性的区别啊。好像获取了rootuuid,我试了也不行。

点评

linux的iso貌似都是靠给内核传递相关参数来启live的吧,,在正确的时间正确地传递正确的参数给内核,让内核来根据uuid或其它路径查找正确的设备或路径加载正确的initrd挂载正确的文件系统。。就行了吧 启不来应该  详情 回复 发表于 2021-2-20 19:01
回复

使用道具 举报

295#
发表于 2021-2-20 16:11:09 | 只看该作者
liuzhaoyzz 发表于 2021-2-20 15:48
大神,我试了loopback.cfg方案,用于启动veket和puppy,都失败了,我的菜单如下,虚拟机卡死,“固件遇到 ...

直接参考grubfm里面的脚本不就行了

点评

我看了下脚本,没发现什么根本性的区别啊。好像获取了rootuuid,我试了也不行。  详情 回复 发表于 2021-2-20 16:51
回复

使用道具 举报

294#
发表于 2021-2-20 15:48:50 | 只看该作者
wintoflash 发表于 2021-1-22 11:17
什么叫"菜单界面"?
菜单项是不会随变量改变而更新的,只有主题才会。

大神,我试了loopback.cfg方案,用于启动veket和puppy,都失败了,我的菜单如下,虚拟机卡死,“固件遇到意外的异常情况。虚拟机无法引导”。实体机直接死机了。我用命令行进去看了,都是卡死在这一句:“configfile /boot/grub/loopback.cfg”。

可是你的grubfm,选择loopback.cfg方案之后,veket和puppy,是怎么做到的?

menuentry "/linux/veket/veket-20.10.iso-loopback" "/linux/veket/veket-20.10.iso" {
iso_path="/linux/veket/veket-20.10.iso"
export iso_path
search --set=root --file $iso_path
loopback loop $iso_path
root=(loop)
configfile /boot/grub/loopback.cfg
loopback --delete loop
}

menuentry "/linux/puppy/fossapup64-9.5.iso-loopback" "/linux/puppy/fossapup64-9.5.iso" {
set iso_path="/linux/puppy/fossapup64-9.5.iso"
export iso_path
search --no-floppy --set --file $2
loopback loop $2
set root=loop
configfile /boot/grub/loopback.cfg
loopback --delete loop
}

点评

直接参考grubfm里面的脚本不就行了  详情 回复 发表于 2021-2-20 16:11
回复

使用道具 举报

293#
发表于 2021-2-17 18:11:02 | 只看该作者
ksafei 发表于 2021-2-16 14:45
最近用grub2FM和map 启动有svbus驱动的iso PE时会一直卡在windows图标处转圈,只能强制重启(如下图)。找到 ...


点评

感谢!  发表于 2021-2-17 18:51
回复

使用道具 举报

292#
发表于 2021-2-17 16:52:45 | 只看该作者
江南一根葱 发表于 2021-2-17 15:54
如果不是用在vhd或ramos上(比如pe),适合进桌面后再加载svbus驱动
要么自己加参数自定义加载iso,

grub2fm启动这种PE好像12月前都是正常,近期更新才发现卡。如果菜单引导的话请问怎样加参数
回复

使用道具 举报

291#
发表于 2021-2-17 15:54:47 | 只看该作者
ksafei 发表于 2021-2-16 14:45
最近用grub2FM和map 启动有svbus驱动的iso PE时会一直卡在windows图标处转圈,只能强制重启(如下图)。找到 ...

如果不是用在vhd或ramos上(比如pe),适合进桌面后再加载svbus驱动
要么自己加参数自定义加载iso,

点评

grub2fm启动这种PE好像12月前都是正常,近期更新才发现卡。如果菜单引导的话请问怎样加参数  详情 回复 发表于 2021-2-17 16:52
回复

使用道具 举报

290#
发表于 2021-2-17 00:26:30 | 只看该作者
收藏了
回复

使用道具 举报

289#
发表于 2021-2-16 14:45:01 | 只看该作者
本帖最后由 ksafei 于 2021-2-16 14:48 编辑

最近用grub2FM和map 启动有svbus驱动的iso PE时会一直卡在windows图标处转圈,只能强制重启(如下图)。找到一个2020年10月的grub2FM则正常(UEFI安全启动)


测试PE: 1.@chiannet USBOSV3.iso
            2.@2011whp  svbusPE.iso
链接:https://pan.baidu.com/s/1vOHmKJ2OxV2CZcg8scjV0g
提取码:eruh

点评

[attachimg]475470[/attachimg]  详情 回复 发表于 2021-2-17 18:11
如果不是用在vhd或ramos上(比如pe),适合进桌面后再加载svbus驱动 要么自己加参数自定义加载iso,  详情 回复 发表于 2021-2-17 15:54
回复

使用道具 举报

288#
发表于 2021-2-16 14:03:42 | 只看该作者
xbmc 发表于 2021-2-16 12:40
放 NTFS 分区之后,确实就不能启动了。
至于变量要不要加花括号,建议全都加上。
比如:

刚才在虚拟机里面新建了一个FAT32硬盘,进行测试,把debian-live-10.8.0-amd64-kde.iso拷贝进去,grubfm-zh_CN2021-02-12和手工写的菜单都可以启动。
debian真的是一代不如一代啊!放在NTFS上面的镜像都不支持,完全是忽略我大Windows用户群体啊!搞什么嘛。
回复

使用道具 举报

287#
发表于 2021-2-16 12:51:08 | 只看该作者
good
回复

使用道具 举报

286#
发表于 2021-2-16 12:40:35 | 只看该作者
liuzhaoyzz 发表于 2021-2-16 11:25
我也曾经怀疑过是不是因为放在NTFS分区的问题,可是我的硬盘上面没有那么大的FAT32分区可以用来尝试,这 ...

放 NTFS 分区之后,确实就不能启动了。
至于变量要不要加花括号,建议全都加上。
比如:
  1. echo "$abcd"
  2. echo "${a}bcd"
  3. echo "${abc}d"
  4. echo "${abcd}"
复制代码




点评

刚才在虚拟机里面新建了一个FAT32硬盘,进行测试,把debian-live-10.8.0-amd64-kde.iso拷贝进去,grubfm-zh_CN2021-02-12和手工写的菜单都可以启动。 debian真的是一代不如一代啊!放在NTFS上面的镜像都不支持,完  详情 回复 发表于 2021-2-16 14:03
回复

使用道具 举报

285#
发表于 2021-2-16 11:25:10 | 只看该作者
xbmc 发表于 2021-2-16 11:23
是不是iso放在 exFAT/NTFS 分区里面?一般情况下要放 FAT32 分区里面。我刚试了,放FAT32分区里面可以正 ...

我也曾经怀疑过是不是因为放在NTFS分区的问题,可是我的硬盘上面没有那么大的FAT32分区可以用来尝试,这个ISO大小是2.65GB。懒得调整分区了。
我很奇怪,为啥debian10.8不能从NTFS分区启动,debian7就可以啊。

点评

放 NTFS 分区之后,确实就不能启动了。 至于变量要不要加花括号,建议全都加上。 比如:  详情 回复 发表于 2021-2-16 12:40
回复

使用道具 举报

284#
发表于 2021-2-16 11:23:10 | 只看该作者
liuzhaoyzz 发表于 2021-2-16 09:35
grubfm-zh_CN2021-02-12启动debian-live-10.8.0-amd64-kde.iso失败,求帮助
1、我去清华大学开源站下载 ...

是不是iso放在 exFAT/NTFS 分区里面?一般情况下要放 FAT32 分区里面。我刚试了,放FAT32分区里面可以正常启动。


点评

我也曾经怀疑过是不是因为放在NTFS分区的问题,可是我的硬盘上面没有那么大的FAT32分区可以用来尝试,这个ISO大小是2.65GB。懒得调整分区了。 我很奇怪,为啥debian不能从NTFS分区启动,debian7就可以啊。  详情 回复 发表于 2021-2-16 11:25
回复

使用道具 举报

283#
发表于 2021-2-16 09:35:51 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-2-16 11:27 编辑
wintoflash 发表于 2021-1-22 11:17
什么叫"菜单界面"?
菜单项是不会随变量改变而更新的,只有主题才会。

grubfm-zh_CN2021-02-12启动debian-live-10.8.0-amd64-kde.iso失败,求帮助
1、我去清华大学开源站下载的debian-live-10.8.0-amd64-kde.iso,这个开源站下载速度超快:
https://mirrors.tuna.tsinghua.edu.cn/debian-cd/10.8.0-live/amd64/iso-hybrid/


文件名称: debian-live-10.8.0-amd64-kde.iso
文件大小: 2.65 GB (2,840,985,600 字节)
MD5: 15C052A9F857DBDC8280B12ED1199350


用grubfm启动debian-live-10.8.0-amd64-kde.iso失败。
我是先用grubx64.efi作为第一引导,引导grubfm:
menuentry "/boot/grub2/grubfmx64.efi" "/boot/grub2/grubfmx64.efi" --hotkey=4 {
search --no-floppy --set --file $2
chainloader $2
}


找到ISO之后,选择从ISO引导debian,或者用loopback的方法结果一样。下面的截图是在vmware虚拟机里面截图测试的,实体机结果一样,虚拟机里面只是为了方便截图。







debian-live-7.2-amd64-kde-desktop.iso可以成功启动。


2、我用下面的菜单,UEFI下面尝试启动debian-live-10.8.0-amd64-kde.iso也失败。cheatcodes是参考原光盘里面的grub.cfg来写的。友情各路大神指点一二。iso放在NTFS分区,有无影响?
menuentry "/linux/debian/debian-live-10.8.0-amd64-kde.iso" "/linux/debian/debian-live-10.8.0-amd64-kde.iso" {
set gfxpayload=keep
search --no-floppy --set --file $2
loopback loop $2
linux (loop)/live/vmlinuz-4.19.0-14-amd64 findiso=/linux/debian/debian-live-10.8.0-amd64-kde.iso boot=live components splash quiet
initrd (loop)/live/initrd.img-4.19.0-14-amd64
}



用下面的菜单,启动debian-live-7.2-amd64-kde-desktop.iso没有问题:
menuentry "/linux/debian/debian-live-7.2-amd64-kde-desktop.iso" "/linux/debian/debian-live-7.2-amd64-kde-desktop.iso" {
set gfxpayload=keep
search --no-floppy --set --file $2
loopback loop $2
linux (loop)/live/vmlinuz boot=live findiso=/linux/debian/debian-live-7.2-amd64-kde-desktop.iso boot=live config quiet splash
initrd (loop)/live/initrd.img
}




3、live-boot - System Boot Components
https://manpages.debian.org/testing/live-boot-doc/live-boot.7.en.html
我查看了相关debian启动的cheatcodes,感觉findiso用法没问题啊,奇怪得很。

4、另外想请问下,grub2里面的变量,加上大括号和不加,有没有区别?
set root=(hd0,msdos1)
linux (loop)/live/vmlinuz findiso=${isofile} boot=live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal


${isofile}与$isofile这样子的变量,倒底有何区别?好像没看出来有什么区别。







点评

是不是iso放在 exFAT/NTFS 分区里面?一般情况下要放 FAT32 分区里面。我刚试了,放FAT32分区里面可以正常启动。  详情 回复 发表于 2021-2-16 11:23
回复

使用道具 举报

282#
发表于 2021-2-4 01:08:30 | 只看该作者
这个可以直接启动ISO文件的????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-23 02:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表