无忧启动论坛

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

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

    [复制链接]
1#
发表于 2021-1-7 12:08:40 | 显示全部楼层
请问一下怎么在外部调用引导菜单,用下边的方法调出来的是空的,按返回可以返回到文件所在目录。
search -f /boot/win10.wim -s root;
grubfm_init;
grubfm_open ($root)/boot/win10.wim

点评

哪来的grubfm_init? grubfm要注册扩展名和打开方式才能出菜单啊。  详情 回复 发表于 2021-1-7 12:25
回复

使用道具 举报

2#
发表于 2021-1-7 14:25:12 | 显示全部楼层
wintoflash 发表于 2021-1-7 12:25
哪来的grubfm_init?
grubfm要注册扩展名和打开方式才能出菜单啊。

能说下怎么注册扩展名跟打开方式吗?

点评

你看一下grub2-filemanager的源码,不就知道了吗。  详情 回复 发表于 2021-1-8 14:46
回复

使用道具 举报

3#
发表于 2021-1-9 17:10:37 | 显示全部楼层
wintoflash 发表于 2021-1-8 14:46
你看一下grub2-filemanager的源码,不就知道了吗。

function search_list {
  set ext="${1}";
  unset found;
  echo "Searching *.${ext} ...";
  for file in ${srcdir}*.${ext} ${srcdir}*/*.${ext} ${srcdir}*/*/*.${ext};
  do
    if [ -f "${file}" ];
    then
      echo "${file}";
    else
      continue;
    fi
    set found="1";
    menuentry "${file}" --class ${2} {
      grubfm_open "${1}";
    }
  done;
  if [ -z "${found}" ];
  then
    menuentry $"File not found" --class search {
      configfile ${prefix}/search.sh;
    }
  fi;
}
我在里边只找到这段跟grubfm_open有关的,但是没找到想关设置。

点评

我不知道你是从哪里找到这段代码的。 源码都摆在你面前,你非得说找不到,那你这水平也别想自己改造grubfm了。 https://github.com/a1ive/grub/tree/master/grub-core/grubfm https://github.com/a1ive/grub2-f  详情 回复 发表于 2021-1-9 17:21
回复

使用道具 举报

4#
发表于 2021-1-9 17:44:52 | 显示全部楼层
wintoflash 发表于 2021-1-9 17:21
我不知道你是从哪里找到这段代码的。
源码都摆在你面前,你非得说找不到,那你这水平也别想自己改造grub ...

那个我看到了,只是不知道怎么加载,这个我也才开始学所有很多都看不懂。

点评

你没有看到我在什么地方加载它,那就说明是自动加载的。 你亲手改一下 grub2-filemanager 里面的各个文件,看看有什么变化,不必你在这里从零开始写或者空想容易多了? 还有,不知道你之前贴的那些代码是从什么  详情 回复 发表于 2021-1-9 17:59
回复

使用道具 举报

5#
发表于 2021-1-9 18:17:50 | 显示全部楼层
wintoflash 发表于 2021-1-9 17:59
你没有看到我在什么地方加载它,那就说明是自动加载的。
你亲手改一下 grub2-filemanager 里面的各个文 ...

grubfm_init  在 grub2-filemanager-master\samples下的grubfm.cfg跟grubfm_offical.cfg文件下都有
我也不想从零开始写,我只想知道怎么从外边调出WIM之类文件的引导菜单用来启动文件,如果方便的话请直接给下代码,谢谢!

点评

我也是醉了,代码都摆在那了,你非得问我要代码。那就是自动加载的,你偏不信。 samples下的文件和主项目一点关系都没有,无论是从发布的成品,还是源码脚本,都看不出来和samples目录下的文件有半点关系。 sample  详情 回复 发表于 2021-1-9 18:35
回复

使用道具 举报

6#
发表于 2021-1-9 18:37:06 | 显示全部楼层
wintoflash 发表于 2021-1-9 18:35
我也是醉了,代码都摆在那了,你非得问我要代码。那就是自动加载的,你偏不信。
samples下的文件和主项 ...

好的,还是谢谢了!
回复

使用道具 举报

7#
发表于 2021-1-14 10:12:16 | 显示全部楼层
经过一段时间的研究给跟自己一样的小白。
如果想要用grubfm做自已的Grub引导菜单
search --set=user -f -q /boot/grubfm/config;
if [ -n "${user}" ];
then
  grubfm_set -u "${user}";
  source (${user})/boot/grubfm/config;
fi;
在初始化时会查找分区下/boot/grubfm目录下的config文件,如果文件存在执行文件中的内容,如果不存在则打开文件管理器。
通过这个我们可以写自己的自定义菜单
config内容可以写入如下内容来载入自己的菜单也可修改为自己菜单所在路径。
search --no-floppy --file --set=root /boot/grubfm/grub.cfg
configfile /boot/grubfm/grub.cfg
在自己菜单结尾可以加入如下代码来载入快捷菜单
source ${prefix}/global.sh;
启动分区中的WIM文件跟VHD文件
menuentry "【01】启动 Windows PE x64 增强版" --class PE {
     search -f /WINPE/winpe_X64.wim -s root;
     set grubfm_file=($root)/WINPE/winpe_X64.wim
     configfile ${prefix}/rules/wim/wimboot.sh
}
menuentry "【02】启动 VHD Windows 10" --class PE {
     search -f /VHDX/WIN10.vhdx -s root;
     set grubfm_file=($root)/VHDX/WIN10.vhdx
     configfile ${prefix}/rules/vhd/ntboot.sh
}
如果要像内部一样列表多启动菜单可以写成如下,grubfm必需在grubfm_open之前不然打开肉容为空。
menuentry "【01】启动 Windows PE x64 增强版" --class PE {
search -f /WINPE/winpe_X64.wim -s root;
grubfm;
grubfm_open "($root)/WINPE/winpe_X64.wim";
}
menuentry "【02】启动 VHD Windows 10" --class PE {
search -f /VHDX/WIN10.vhdx -s root;
grubfm;
grubfm_open "($root)/VHDX/WIN10.vhdx"
}

点评

可以自定义主题吗?似乎不可以。  详情 回复 发表于 2022-11-7 08:56
感谢!小白需要!  发表于 2021-11-14 10:54
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-4 18:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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