无忧启动论坛

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

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

    [复制链接]
331#
发表于 2021-2-21 20:26:01 | 只看该作者
江南一根葱 发表于 2021-2-21 19:08
逻辑坏道了吧,重启下电脑,chkdsk一下iso所在分区估计就好了。

应该不是这个原因,因为这个iso用grubfm可以直接启动,如果iso所在的磁盘有坏块,grubfm怎么能够启动?
而且我用手工写的partnew菜单也可以整体启动这个iso,足以证明硬盘没有坏块。
回复

使用道具 举报

332#
发表于 2021-2-21 20:38:31 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-2-21 20:54 编辑
xbmc 发表于 2021-2-21 19:16
那说明你的grub.cfg有问题。

pager 能设成这个值吗?

1、set pager=20没问题,本人亲测,我一直用的,这个参数的意思,好像是设置grub2每页显示的命令行行数,但我不确定。
2、menuentry "/linux/veket/veket-20.10.iso-loopback" "/linux/veket/veket-20.10.iso" {
第二个参数相当于直接在标题栏定义一个变量,可以直接用$2来引用这个变量,我一直这样用,借鉴的别人的。这个不影响的。
3、设置全局变量三种用法都可以,没问题。
①AAA=BBB;
export AAA;
这个用法,来自于loopback官网,应该经过了很多人的检验。
②set AAA=BBB;
export AAA;
上面的用法,grubfm里面就有,前面的帖子,307楼,已经贴出来过了。
③或者直接
export AAA=BBB
4、root=loop或者root=(loop)都是没有问题的。
上面的三个直接上图说明。

我写的菜单,虽说都是照葫芦画瓢,但是别人的瓢应该也是经过很多人的检验的,不然loopback.cfg方案有问题老外早就提出来了。
grub2很灵活,写法很多,有时候大括号、小括号、分号可有可无。

我改成了下面的,结果一样卡死:
set pager=0
menuentry "/linux/veket/veket-20.10.iso-loopback" "/linux/veket/veket-20.10.iso" {
export iso_path="/linux/veket/veket-20.10.iso";
search --set=root --file $iso_path;probe -u ($root) -s rootuuid;echo $rootuuid;export rootuuid;
loopback -d loop;
loopback loop $iso_path
set root=loop
configfile /boot/grub/loopback.cfg
}


GPT_test-2021-02-21-20-34-13.png (9.78 KB, 下载次数: 153)

GPT_test-2021-02-21-20-34-13.png

点评

以你的习惯,菜单不是应该这样写么 menuentry "/linux/veket/veket-20.10.iso-loopback" "/linux/veket/veket-20.10.iso" { search --set=iso_path -f -q $2; loopback -d loop; loopback loop $iso_path; exp  详情 回复 发表于 2021-2-21 21:03
回复

使用道具 举报

333#
发表于 2021-2-21 21:03:28 | 只看该作者
本帖最后由 江南一根葱 于 2021-2-22 13:16 编辑
liuzhaoyzz 发表于 2021-2-21 20:38
1、set pager=20没问题,本人亲测,我一直用的,这个参数的意思,好像是设置grub2每页显示的命令行行数, ...

以你的习惯,菜单不是应该这样写么

menuentry "/linux/veket/veket-20.10.iso-loopback" "/linux/veket/veket-20.10.iso" {
search --set=root -f -q $2;export iso_path=$2;
loopback -d loop; loopback loop $iso_path ;export root=loop;
configfile (loop)/boot/grub/loopback.cfg
}
还有为啥一定要弄个set pager=


点评

其实问问题之前,各种写法,各种可能,我已经尝试遍了,否定,否定,再否定,$2这种我试了不行才改的。。。  详情 回复 发表于 2021-2-21 21:48
回复

使用道具 举报

334#
发表于 2021-2-21 21:48:25 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-2-21 21:51 编辑
江南一根葱 发表于 2021-2-21 21:03
以你的习惯,菜单不是应该这样写么

menuentry "/linux/veket/veket-20.10.iso-loopback" "/linux/veke ...


其实问问题之前,各种写法,各种可能,我已经尝试遍了,否定,否定,再否定,$2这种我试了不行才改的。。。

set pager我也忘了当初倒底为什么要设置成20。

你上面类似的写法,我也尝试过,现在感觉不应该是语法上面的原因,应该还是有哪里没有考虑到。
回复

使用道具 举报

335#
发表于 2021-2-21 22:44:46 来自手机 | 只看该作者
启动一个菜单有这么复杂?

点评

你试试不用grubfm,自己写菜单启动veket.iso试试看。 https://cloud.189.cn/t/zaIN7jfEZFrm  详情 回复 发表于 2021-2-22 10:19
回复

使用道具 举报

336#
发表于 2021-2-22 10:19:05 | 只看该作者
江南一根葱 发表于 2021-2-21 22:44
启动一个菜单有这么复杂?

你试试不用grubfm,自己写菜单启动veket20.iso试试看。
https://cloud.189.cn/t/zaIN7jfEZFrm

点评

[attachimg]475695[/attachimg] 我怎么写都是能出菜单的 我怀疑你vmware瞎建虚拟机类型了  详情 回复 发表于 2021-2-22 13:15
回复

使用道具 举报

337#
发表于 2021-2-22 13:15:45 | 只看该作者
本帖最后由 江南一根葱 于 2021-2-22 13:18 编辑
liuzhaoyzz 发表于 2021-2-22 10:19
你试试不用grubfm,自己写菜单启动veket20.iso试试看。
https://cloud.189.cn/t/zaIN7jfEZFrm


我怎么写都是能出菜单的,只不过我这个是超精简的grub2,启动会提示“booting blind mode“
我怀疑你vmware瞎建虚拟机类型了

点评

我这边,照着你的截图输入菜单,vm也是直接卡死。用你335楼的http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=420085&pid=4244279&fromuid=298214菜单,也是卡死。 奇怪了。 虚拟机类型我选择的  详情 回复 发表于 2021-2-22 13:43
回复

使用道具 举报

338#
发表于 2021-2-22 13:43:27 | 只看该作者
江南一根葱 发表于 2021-2-22 13:15
我怎么写都是能出菜单的,只不过我这个是超精简的grub2,启动会提示“booting blind mode“
我怀疑你 ...

我这边,照着你的截图输入菜单,vm也是直接卡死。用你335楼的http://bbs.wuyou.net/forum.php?m ... &fromuid=298214菜单,也是卡死。
奇怪了。
虚拟机类型我选择的是windows的,启动linux也没事啊,问题是实体机也不行,虚拟机只是方便重现问题,虚拟机和实体机结果是类似的。

点评

99.99%是电脑问题了,最小系统法, 实体机改成在u盘上启 检测内存条有没有坏块。  详情 回复 发表于 2021-2-22 15:16
回复

使用道具 举报

339#
发表于 2021-2-22 15:16:16 | 只看该作者
liuzhaoyzz 发表于 2021-2-22 13:43
我这边,照着你的截图输入菜单,vm也是直接卡死。用你335楼的http://bbs.wuyou.net/forum.php?mod=redire ...

99.99%是电脑问题了,最小系统法,
实体机改成在u盘上启
检测内存条有没有坏块。

点评

我这边能想的办法都想了,找不出原因,我不想在优盘上面搞,换了两台电脑都试了,都不行,不可能说两台电脑都有问题,硬盘都坏了吧? 清华大学开源软件镜像站 | Tsinghua Open Source Mirror https://mirrors.t  详情 回复 发表于 2021-2-24 15:45
回复

使用道具 举报

340#
发表于 2021-2-24 15:45:10 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-2-24 15:47 编辑
江南一根葱 发表于 2021-2-22 15:16
99.99%是电脑问题了,最小系统法,
实体机改成在u盘上启
检测内存条有没有坏块。

我这边能想的办法都想了,找不出原因,我不想在优盘上面搞,换了两台电脑都试了,都不行,不可能说两台电脑都有问题,硬盘都坏了吧?

清华大学开源软件镜像站 | Tsinghua Open Source Mirror
https://mirrors.tuna.tsinghua.edu.cn/puppy/puppy-fossa/
fossapup64-9.5.iso,只有409MB
MD5:6a45e7a305b7d3172ebd9eab5ca460e4  fossapup64-9.5.iso

你那边,在你的电脑上面试试这个发行版,看看能不能loopback.cfg方案启动?
顺便说下,grub2-bios-loopback.cfg,启动没有问题,就是grub2-uefi-loopback.cfg启动有问题。


点评

直接用Grubfmx64.efi写菜单呢  详情 回复 发表于 2021-2-24 16:01
回复

使用道具 举报

341#
发表于 2021-2-24 16:01:26 | 只看该作者
本帖最后由 江南一根葱 于 2021-2-24 16:16 编辑
liuzhaoyzz 发表于 2021-2-24 15:45
我这边能想的办法都想了,找不出原因,我不想在优盘上面搞,换了两台电脑都试了,都不行,不可能说两台电 ...

直接用Grubfmx64.efi写菜单呢?看你好像是gpt磁盘试的?我是mbr磁盘测试

点评

我只会用原始菜单,不会用Grubfmx64.efi写菜单。虚拟机里面有个GPT分区,iso是放在我的物理硬盘,物理硬盘直接挂载虚拟机中的。 你那边MBR磁盘,测试能否用loopback.cfg启动我说的iso?  详情 回复 发表于 2021-2-24 16:49
回复

使用道具 举报

342#
发表于 2021-2-24 16:49:52 | 只看该作者
江南一根葱 发表于 2021-2-24 16:01
直接用Grubfmx64.efi写菜单呢?看你好像是gpt磁盘试的?我是mbr磁盘测试

我只会用原始菜单,不会用Grubfmx64.efi写菜单。虚拟机里面有个GPT分区,iso是放在我的MBR物理硬盘,物理硬盘直接挂载虚拟机中的。

你那边MBR磁盘,测试能否用loopback.cfg启动我说的iso?

点评

menuentry "/linux/veket/veket-20.10.iso-loopback" "/linux/veket/veket-20.10.iso" { search -n -s -f $2 export iso_path=($root)$2 loopback loop $iso_path set root=loop configfile /boot/grub/loopbac  详情 回复 发表于 2021-2-24 17:02
回复

使用道具 举报

343#
发表于 2021-2-24 17:02:05 | 只看该作者
liuzhaoyzz 发表于 2021-2-24 16:49
我只会用原始菜单,不会用Grubfmx64.efi写菜单。虚拟机里面有个GPT分区,iso是放在我的MBR物理硬盘,物理 ...

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

点评

不行啊,用这个菜单,结果是一样的,虚拟机卡死了。  详情 回复 发表于 2021-2-24 17:53
回复

使用道具 举报

344#
发表于 2021-2-24 17:53:51 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-2-24 19:06 编辑
hilsonma 发表于 2021-2-24 17:02
menuentry "/linux/veket/veket-20.10.iso-loopback" "/linux/veket/veket-20.10.iso" {
search -n -s - ...

不行啊,用这个菜单,结果是一样的,虚拟机卡死了。



哦,你们说的意思是,进入grubfmx64.efi之后,手工输入命令是吗?我试了手工输入命令,可以启动veket.iso。
说明不是脚本的问题,脚本没有问题。
有问题的可能是缺乏某个模块,可能grubfmx64.efi里面的模块全些,grubfmx64.efi大小7.3MB,不知道都是什么模块?
我试了用grub2-latest2021-02-10里面的build_grub.bat生成,也不行啊,不知道缺乏什么模块倒底?

我在grubfm源代码里面找到了\grub2-filemanager\arch\x64\builtin.lst
acpi affs afs alias all_video at_keyboard bfs bitmap bitmap_scale blocklist bmp boot bsd btrfs cat chain cmp commandline configfile cpio cpuid crc crscreenshot date datehook dd disk dm_nv echo efi_gop efi_mouse efiload efinet eval exfat expr ext2 extcmd f2fs fat fatfs fb file fixmmap font fshelp gcry_arcfour gcry_blowfish gcry_camellia gcry_cast5 gcry_crc gcry_des gcry_dsa gcry_idea gcry_md4 gcry_md5 gcry_rfc2268 gcry_rijndael gcry_rmd160 gcry_rsa gcry_seed gcry_serpent gcry_sha1 gcry_sha256 gcry_sha512 gcry_tiger gcry_twofish gcry_whirlpool getargs getenv getkey gfxmenu gfxterm gfxterm_background gfxterm_menu gptsync grubfm gzio halt hashsum help hexdump hfs hfsplus http iso9660 jfs jpeg keylayouts keystatus legacycfg linux linuxefi loadbios loadenv loopback ls lsmmap lua lvm lzopio map mdraid09 mdraid09_be memdisk minicmd msdospart multiboot multiboot2 nes net newc normal ntboot ntfs ntfscomp nttools part_apple part_bsd part_gpt part_msdos partnew parttool png probe progress raid5rec raid6rec random read reboot regexp reiserfs sbpolicy search setenv setkey shell sleep squash4 stat syslinuxcfg tar terminal terminfo test tftp tga time tr true udf version vhd video video_colors video_fb videoinfo wimboot xfs xzio zfs

我用这个里面的模块全部加载,试了下,也还是不行,上面的模块加载之后,grubx64.efi大小是3.78MB。
那么grubfmx64.efi,7.3MB里面都是什么模块?

加上了optional.lst里面的这些模块也不行:
afsplitter crypto cryptodisk geli json luks luks2 pbkdf2

@wintoflash,大神是不是没有上线?有空请看看,指点下。

点评

他跑路了。 linux 或 其他一些 OS 启动的时候会要求 grub2 把显示模式之类的东西传给内核。如果grub2没有加载显示方面的模块,内核在没有加载显示驱动之前就没办法打印调试信息,所以是“瞎子”模式。  详情 回复 发表于 2021-2-24 19:44
怀疑是模块问题我325#说过了啊 我的模块更精简 http efinet net linux linuxefi efiload acpi blocklist newc boot chain configfile cpio echo exfat fat vhd fb getargs getkey gzio iso9660 loadenv loopback l  详情 回复 发表于 2021-2-24 19:06
回复

使用道具 举报

345#
发表于 2021-2-24 19:06:50 | 只看该作者
liuzhaoyzz 发表于 2021-2-24 17:53
不行啊,用这个菜单,结果是一样的,虚拟机卡死了。

怀疑是模块问题我325#说过了啊
我的模块更精简
http efinet net linux linuxefi efiload acpi blocklist newc boot chain configfile cpio echo exfat fat vhd fb getargs getkey gzio iso9660 loadenv loopback ls lzopio map memdisk minicmd  ntboot ntfs part_gpt part_msdos progress  probe regexp sbpolicy search  terminal terminfo test udf version wimboot xzio commandline

不过我的模块会报错blind,能出菜单

点评

用你的这些个模块加载试了试,果然能够出菜单,选择之后就挂了。  详情 回复 发表于 2021-2-24 19:10
回复

使用道具 举报

346#
发表于 2021-2-24 19:10:35 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-2-24 19:14 编辑
江南一根葱 发表于 2021-2-24 19:06
怀疑是模块问题我325#说过了啊
我的模块更精简
http efinet net linux linuxefi efiload acpi blocklis ...

用你的这些个模块加载试了试,果然能够出菜单,选择之后,提示“Booting in blind mode”,意思是进入“瞎子”模式,没有任何命令回显,等候了1分钟,系统居然启动了!
那摆脱“瞎子”模式,需要什么模块?!

GPT_test-2021-02-24-19-09-51.png (3.47 KB, 下载次数: 136)

GPT_test-2021-02-24-19-09-51.png
回复

使用道具 举报

347#
发表于 2021-2-24 19:26:04 | 只看该作者
哦,搞定了,加上all_video模块就可以了!
https://ask.csdn.net/questions/5145593
这个all_video模块,是个什么鬼?我又没有什么视频要播放,为什么需要这个all_video模块?!
实在是匪夷所思!
启动的时候需要显示几个省略号,难道这个就算是video?!

感谢大家!
@wintoflash,@大葱,@hilsonma,@xbmc,@2011whp...

点评

[attachimg]475775[/attachimg]  详情 回复 发表于 2021-2-25 13:38
回复

使用道具 举报

348#
发表于 2021-2-24 21:29:38 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-2-24 22:28 编辑
xbmc 发表于 2021-2-24 19:44
他跑路了。

linux 或 其他一些 OS 启动的时候会要求 grub2 把显示模式之类的东西传给内核。如果grub ...

虚拟机卡死的原因找到了,定制打包的时候,不能有gfxterm模块,只要有个这个模块,运行loopback.cfg的时候,就会卡死。奇怪得很。

问题是没有这个gfxterm模块,就没有办法加载汉字啊。。。

大葱为啥把gfxterm模块去掉?



哦,发现在grub.cfg菜单项目中,加上一句terminal_output console,就可以了,gfxterm可以正常打包!

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






点评

我这个定制的grub2是配合ipxefm网启专用的,日常使用也不需要网启linux,可能模块越少问题越少。。  详情 回复 发表于 2021-2-25 09:58
回复

使用道具 举报

349#
发表于 2021-2-25 09:58:38 | 只看该作者
liuzhaoyzz 发表于 2021-2-24 21:29
虚拟机卡死的原因找到了,定制打包的时候,不能有gfxterm模块,只要有个这个模块,运行loopback.cfg的时 ...

我这个定制的grub2是配合ipxefm网启专用的,日常使用也不需要网启linux,可能模块越少问题越少。。
回复

使用道具 举报

350#
发表于 2021-2-25 13:38:50 | 只看该作者
liuzhaoyzz 发表于 2021-2-24 19:26
这个all_video模块,是个什么鬼?我又没有什么视频要播放,为什么需要这个all_video模块?!


回复

使用道具 举报

351#
发表于 2021-3-18 08:51:50 | 只看该作者

RE: grub2文件管理器(BIOS/UEFI启动 ISO/WIM/VHD...)

请教W大一个问题,如图:

IMG_20210316_204346 (复制).jpg (957.09 KB, 下载次数: 186)

IMG_20210316_204346 (复制).jpg
回复

使用道具 举报

352#
发表于 2021-3-18 08:53:35 | 只看该作者
选择第二项时出现如图所示:

IMG_20210316_204411 (复制).jpg (612.23 KB, 下载次数: 174)

IMG_20210316_204411 (复制).jpg

点评

win7 uefi 比较特殊,要用它自己的 bootmgfw.efi 启动才行。  详情 回复 发表于 2021-3-18 19:24
回复

使用道具 举报

353#
发表于 2021-3-18 08:56:19 | 只看该作者
不知为什么,过不了安检
回复

使用道具 举报

354#
发表于 2021-3-18 08:59:03 | 只看该作者
是不是本地系统winload.efi文件有问题?
回复

使用道具 举报

355#
发表于 2021-3-18 17:41:25 | 只看该作者
都停止开发了啊。有没替代的 ?
回复

使用道具 举报

356#
发表于 2021-3-18 19:24:35 | 只看该作者
2012kwy 发表于 2021-3-18 08:53
选择第二项时出现如图所示:

win7 uefi 比较特殊,要用它自己的 bootmgfw.efi 启动才行。
回复

使用道具 举报

357#
发表于 2021-3-19 09:11:22 | 只看该作者
多谢解答 大佬和W大一样也是牛人
回复

使用道具 举报

358#
发表于 2021-3-20 21:36:02 | 只看该作者
本帖最后由 mrzhonghb 于 2021-3-20 21:41 编辑

这么好的工具,停止开发了啊,好在目前的版本用得还很不错。
回复

使用道具 举报

359#
发表于 2021-3-20 23:15:02 | 只看该作者
wintoflash大大,近期华硕本本遇到一个奇怪问题,bios下grub4dos引导,win7的vhd,用C大的ntboot引导到显示start windows就自动重启。用您的grubfm手动选择vhd可以正常启动。有没有办法在grub4dos菜单里面直接用grubfm直接调用vhd?就是全自动启动,像ntboot nt6=/win7.vhd那样的用法?冒昧打扰,还望海涵

点评

grubfm启动vhd用的是grub2的ntboot功能。 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=417545 你如果要在grub4dos下使用它的话,可以把grub2装进img里面,在grub4dos里面用dd修改grub2的菜单。 另外楼主  详情 回复 发表于 2021-3-21 18:21
回复

使用道具 举报

360#
发表于 2021-3-21 19:17:42 | 只看该作者
xbmc 发表于 2021-3-21 18:21
grubfm启动vhd用的是grub2的ntboot功能。
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=417545
...

多谢指导。爬了下论坛帖子。大致明白问题可能出在bios+gpt(多硬盘,放vhd的恰好是gpt。因为同时装了linux)方式,好像qj_tzy深入研究过这个,帖子很长,没仔细阅读,大概是说vhd无法读取外置于gpt上bcd信息,用ntboot启动失败好像也是基于此。qj_tzy的方法好像是将启动分区设在一个可以读写的位置,完成后再把启动文件复制到vhd中。具体我没去折腾了,直接把gpt转换为Mbr就能用ntboot启动了。grubfm我知道是用grub2环境,我以为有什么办法从grub4dos跳到grub2下ntboot。您说的grub2的img不知道是否有成品?g4d可以map它以后,传递参数进grub.cfg来启动vhd对吧?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-23 17:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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