无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 25474|回复: 39
打印 上一主题 下一主题

[已解决] 搜索硬盘一级目录下的vhd/vhdx并启动的grub4dos批处理

[复制链接]
跳转到指定楼层
1#
发表于 2014-9-8 15:16:20 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 qj_tzy 于 2014-9-15 22:22 编辑

    最近想用grub4dos实现以下功能:搜索硬盘各分区(包括mbr分区硬盘及gpt分区硬盘的隐藏分区)一级目录下的vhd/vhdx文件,列出选择菜单供用户按上下键+回车选择,用户选择后再出现“1-按原生vhd启动,2-按vboot驱动vhd启动,3-退出”三项选单的菜单。

   搜索文件并自动列选单的grub4dos批处理,我没有编写过,好像可以调用run,但没搞懂如何实现。诚请各位网友帮我,谢谢!
40#
发表于 2020-7-18 23:49:15 | 只看该作者
来学习一下怎么写
回复

使用道具 举报

39#
发表于 2020-6-3 09:15:33 | 只看该作者
谢谢分享
回复

使用道具 举报

38#
发表于 2020-5-12 22:20:27 | 只看该作者
机器中安装的操作系统是WIN8.1
我用U盘启动机器到DOS环境,再通过GRUB4DOS调用G4DMENU脚本在搜索机器中的VHD时报“kernel must be loaded before booting”错误,但如果机器中安装的操作系统是XP和WIN7系统时,搜索和引导机器中的VHD却没有任何问题,为什么会这样啊?
回复

使用道具 举报

37#
发表于 2019-7-21 00:37:51 | 只看该作者
谢谢分享
回复

使用道具 举报

36#
 楼主| 发表于 2017-5-30 07:49:14 | 只看该作者

很好,可方便需要之网友!
回复

使用道具 举报

35#
发表于 2017-5-29 18:18:21 | 只看该作者
本帖最后由 Myptour 于 2017-5-29 18:19 编辑

VHDg4dmenu (1).rar (1.39 MB, 下载次数: 139)

打个包

VHDg4dmenu (2).rar

1.39 MB, 下载次数: 128

VHDg4dmenu (3).rar

1.35 MB, 下载次数: 102

点评

很好,可方便需要之网友!  详情 回复 发表于 2017-5-30 07:49
回复

使用道具 举报

34#
发表于 2017-5-28 17:34:51 来自手机 | 只看该作者
本帖最后由 Myptour 于 2017-5-29 18:19 编辑

居然找到了,谢谢分享
回复

使用道具 举报

33#
发表于 2016-1-13 16:21:08 | 只看该作者
qj_tzy 发表于 2014-10-27 13:54
title 搜索启动所有硬盘各分区(含gpt隐藏分区)根、一级、二级目录下的vhdx/vhd系统文件
filelist.lst cm ...

很好
回复

使用道具 举报

32#
发表于 2014-11-1 02:36:36 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

31#
发表于 2014-10-29 22:37:32 | 只看该作者
谢谢大大的无私奉献,很好用,向大大们致敬!!
只是搜索速度比想像的要慢一些,ISO类PE或者XP原版安装系统加载都不太成功,IMA和IMG没有问题
回复

使用道具 举报

30#
 楼主| 发表于 2014-10-28 21:00:30 | 只看该作者
本帖最后由 qj_tzy 于 2014-10-28 21:07 编辑
2012sillian 发表于 2014-10-28 19:17
大大,我还是没搞定,菜单能搜索到各VHD系统,但是无法进入,显示KERNEL 没有加载。还是想麻烦你贡献一下 ...


下载附件:
file.rar (3.15 KB, 下载次数: 105)

当然,此附件要根据自己的实际情况改进一下。

此附件还有以下功能:

title 搜索启动所有硬盘各分区(含gpt隐藏分区)根、一级、二级目录下的wim/vmdk/ima/img/iso系统文件
%pathgrub%filelist.lst cmd="%pathgrub%slt_boot_file_cmd.lst %1" ext=".wim .vmdk .ima .img .iso" devs="--devices=h" subdir=3
boot
回复

使用道具 举报

29#
发表于 2014-10-28 19:17:07 | 只看该作者
qj_tzy 发表于 2014-10-27 13:54
title 搜索启动所有硬盘各分区(含gpt隐藏分区)根、一级、二级目录下的vhdx/vhd系统文件
filelist.lst cm ...

大大,我还是没搞定,菜单能搜索到各VHD系统,但是无法进入,显示KERNEL 没有加载。还是想麻烦你贡献一下你的全部资料“slt_boot_file_cmd.lst”,我想从COPY学起,再慢慢琢磨,很喜欢这个功能呀。虽然NTBOOT很好用,但需要手动输入,或清单只能加载有限的几个,有了你这个搜索并加载功能,就方便多了。谢谢!

点评

下载附件: 此附件还有以下功能: title 搜索启动所有硬盘各分区(含gpt隐藏分区)根、一级、二级目录下的wim/vmdk/ima/img/iso系统文件 %pathgrub%filelist.lst cmd="%pathgrub%slt_boot_file_cmd.lst %1"  详情 回复 发表于 2014-10-28 21:00
回复

使用道具 举报

28#
发表于 2014-10-27 23:16:22 来自手机 | 只看该作者
qj_tzy 发表于 2014-10-27 13:54
title 搜索启动所有硬盘各分区(含gpt隐藏分区)根、一级、二级目录下的vhdx/vhd系统文件
filelist.lst cm ...

非常感谢,明天试一下,我也是两个盘,一个gpt,一个mbr
回复

使用道具 举报

27#
 楼主| 发表于 2014-10-27 13:54:31 | 只看该作者
2012sillian 发表于 2014-10-26 14:54
能否请楼主分享一下调用的具体命令及操作方法,我是纯菜鸟,完全没有入门,希望能向你们前辈学习,万分感谢 ...

title 搜索启动所有硬盘各分区(含gpt隐藏分区)根、一级、二级目录下的vhdx/vhd系统文件
filelist.lst cmd="slt_boot_file_cmd.lst %1" ext=".vhdx .vhd" devs="--devices=h" subdir=3
boot

#注:slt_boot_file_cmd.lst根据自己的实际情况编制

点评

大大,我还是没搞定,菜单能搜索到各VHD系统,但是无法进入,显示KERNEL 没有加载。还是想麻烦你贡献一下你的全部资料“slt_boot_file_cmd.lst”,我想从COPY学起,再慢慢琢磨,很喜欢这个功能呀。虽然NTBOOT很好用  详情 回复 发表于 2014-10-28 19:17
非常感谢,明天试一下,我也是两个盘,一个gpt,一个mbr  详情 回复 发表于 2014-10-27 23:16
回复

使用道具 举报

26#
发表于 2014-10-26 14:54:15 | 只看该作者
能否请楼主分享一下调用的具体命令及操作方法,我是纯菜鸟,完全没有入门,希望能向你们前辈学习,万分感谢!

点评

title 搜索启动所有硬盘各分区(含gpt隐藏分区)根、一级、二级目录下的vhdx/vhd系统文件 filelist.lst cmd="slt_boot_file_cmd.lst %1" ext=".vhdx .vhd" devs="--devices=h" subdir=3 boot #注:slt_boot_file_  详情 回复 发表于 2014-10-27 13:54
回复

使用道具 举报

25#
 楼主| 发表于 2014-9-16 12:09:43 | 只看该作者
yuliwu2 发表于 2014-9-16 10:54
求楼主 分享下 该批处理成品

该批处理成品是chenall 大编写的,可在2楼下载。

我只是调用它而已。
回复

使用道具 举报

24#
发表于 2014-9-16 10:54:08 | 只看该作者
求楼主 分享下 该批处理成品

点评

该批处理成品是chenall 大编写的,可在2楼下载。 我只是调用它而已。  详情 回复 发表于 2014-9-16 12:09
回复

使用道具 举报

23#
 楼主| 发表于 2014-9-15 22:21:39 | 只看该作者
chenall 发表于 2014-9-15 18:30
试了一下,发现暂时不支持多命令或命令组合(要支持非常的麻烦),

建议你把命令弄成一个文件

在您的热心指点和帮助下,此问题已得到圆满解决,再次表示衷心感谢!
回复

使用道具 举报

22#
发表于 2014-9-15 18:30:00 | 只看该作者
试了一下,发现暂时不支持多命令或命令组合(要支持非常的麻烦),

建议你把命令弄成一个文件
比如下面的
%pathgrub%filelist.lst cmd="set sltfile=%1 ;; configfile %pathgrub%slt_boot_vhd_accept.lst" ext=".vhdx .vhd" devs="--devices=h" subdir=2

把cmd命令"set sltfile=%1 ;; configfile %pathgrub%slt_boot_vhd_accept.lst"放到一个批处理中比如ls_cmd
然后用以下命令调用,也就是cmd参数不支持复合命令
%pathgrub%filelist.lst cmd="ls_cmd %1" ext=".vhdx .vhd" devs="--devices=h" subdir=2



点评

在您的热心指点和帮助下,此问题已得到圆满解决,再次表示衷心感谢!  详情 回复 发表于 2014-9-15 22:21
回复

使用道具 举报

21#
发表于 2014-9-15 16:01:29 | 只看该作者
抱歉,因为时间比较紧,我一会尽量抽空看一下,应该是这个批处理的BUG.
回复

使用道具 举报

20#
 楼主| 发表于 2014-9-15 15:24:41 | 只看该作者
chenall 发表于 2014-9-13 18:32
这个估计是有BUG,被直接执行了.我明天再试下.

近一两天来,我已多次进入http://chenall.net/post/g4d_filelist/,关注其中的更新情况。

我感觉到您最近在忙于排除新版grub4dos的BUG,没能抽出时间来帮我解决17楼的问题。

但我还是非常想恳请您,抽空帮我解决一下这个问题,谢谢!
回复

使用道具 举报

19#
 楼主| 发表于 2014-9-13 21:07:14 | 只看该作者
chenall 发表于 2014-9-13 18:32
这个估计是有BUG,被直接执行了.我明天再试下.

好的,谢谢!
回复

使用道具 举报

18#
发表于 2014-9-13 18:32:32 | 只看该作者
这个估计是有BUG,被直接执行了.我明天再试下.

点评

近一两天来,我已多次进入http://chenall.net/post/g4d_filelist/,关注其中的更新情况。 我感觉到您最近在忙于排除新版grub4dos的BUG,没能抽出时间来帮我解决17楼的问题。 但我还是非常想恳请您,抽空帮我解  详情 回复 发表于 2014-9-15 15:24
好的,谢谢!  详情 回复 发表于 2014-9-13 21:07
回复

使用道具 举报

17#
 楼主| 发表于 2014-9-13 18:10:18 | 只看该作者
本帖最后由 qj_tzy 于 2014-9-13 18:11 编辑
chenall 发表于 2014-9-13 16:19
总算回答了我的第一个问题VHD文件位置,你的文件不在根目录下,直接默认情况下肯定找不到了.

subdir 指定 ...


谢谢指点!
我还以为subdir=1就是搜索一级目录,实际却是搜索根目录,刚才我加入subdir=2参数后,使用下句搜索成功:
pathgrub%filelist.lst cmd="%pntboot% nt6=%1 || %pntboot% vboot=%1" ext=".vhdx .vhd" devs="--devices=h" subdir=2
但就是遇vboot驱动的vhd系统首先以nt6方式执行会出错,所以改为
%pathgrub%filelist.lst cmd="set sltfile=%1 ;; configfile %pathgrub%slt_boot_vhd_accept.lst" ext=".vhdx .vhd" devs="--devices=h" subdir=2
但无搜索的过程(用上上句搜索用了几秒的时间,有等待的感觉,而此句无等待感觉),也未弹出选择文件的菜单,就直接进入了我自定义的菜单中,当然该菜单中也无选择的文件信息,是否又是参数出错?还请指点,谢谢!
回复

使用道具 举报

16#
发表于 2014-9-13 16:19:43 | 只看该作者
总算回答了我的第一个问题VHD文件位置,你的文件不在根目录下,直接默认情况下肯定找不到了.

subdir 指定要查找的目录级数,默认1

你可以指定为2会查找二级目录下的,如果有更多级需要改为更大的数字(但越大速度越慢)

或者如果使用了相同的目录比如vhdos那也可以指定root参数 速度会比较快.

点评

谢谢指点! 我还以为subdir=1就是搜索一级目录,实际却是搜索根目录,我加入subdir=2参数后,使用下句搜索成功: pathgrub%filelist.lst cmd="%pntboot% nt6=%1 || %pntboot% vboot=%1" ext=".vhdx .vhd" devs="--  详情 回复 发表于 2014-9-13 18:10
回复

使用道具 举报

15#
 楼主| 发表于 2014-9-13 16:03:18 | 只看该作者
chenall 发表于 2014-9-13 13:43
1.你的VHDX/VHD文件在什么目录下
2.devs参数没有指定时默认只找当前磁盘.

谢谢指点!
刚才,我加了参数devs="--devices=h" 进行测试,结果仍然如13楼。

我用的是双硬盘,一个硬盘是MBR分区,在一个隐藏分区\vhdos\目录下存放有多个vhdx/vhd文件;
一个硬盘是GPT分区,在一个隐藏分区\vhdos_gpt\目录下存放有多个vhdx/vhd文件。

我是分别用两个硬盘启动grub4dos进行测试的,结果都一样。我把存放vhd文件的两个硬盘的该分区都改为显现分区后,也没查到。不知为何。还望指点,谢谢!
回复

使用道具 举报

14#
发表于 2014-9-13 13:43:32 | 只看该作者
本帖最后由 chenall 于 2014-9-13 15:41 编辑

1.你的VHDX/VHD文件在什么目录下
2.devs参数没有指定时默认只找当前磁盘.

试试下面的查找所有硬盘

filelist.lst cmd="%pntboot% nt6=%1 || %pntboot% vboot=%1"  ext=".vhdx .vhd" devs="--devices=h"


devs 指定了要查询的条件(find命令的参数),默认情况下是--set-root也就是只找当前分区

点评

谢谢指点! 刚才,我加了参数devs="--devices=h" 进行测试,结果仍然如13楼。 我用的是双硬盘,一个硬盘是MBR分区,在一个隐藏分区\vhdos\目录下存放有多个vhdx/vhd文件; 一个硬盘是GPT分区,在一个隐藏分区\v  详情 回复 发表于 2014-9-13 16:03
回复

使用道具 举报

13#
 楼主| 发表于 2014-9-13 13:09:30 | 只看该作者
chenall 发表于 2014-9-13 11:44
截图!!!!还有详细情况!!!!!

这个批处理不管怎么样都会有菜单显示的,除非运行错误.运行错误也会有提示的. ...

调用命令如下:
set pathgrub=/g4dmenu/g4d/
set pntboot=/g4dmenu/ntboot/ntboot
find --set-root --ignore-floppies --ignore-cd %pathgrub%grldr

set m.cmd="%pntboot% nt6=%1 || %pntboot% vboot=%1"
set m.ext=".vhdx .vhd"
%pathgrub%filelist.lst
boot

截图如下:

回复

使用道具 举报

12#
发表于 2014-9-13 11:44:07 | 只看该作者
截图!!!!还有详细情况!!!!!

这个批处理不管怎么样都会有菜单显示的,除非运行错误.运行错误也会有提示的...




点评

调用命令如下: set pathgrub=/g4dmenu/g4d/ set pntboot=/g4dmenu/ntboot/ntboot find --set-root --ignore-floppies --ignore-cd %pathgrub%grldr set m.cmd="%pntboot% nt6=%1 || %pntboot% vboot=%1" set  详情 回复 发表于 2014-9-13 13:09
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 19:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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