无忧启动论坛

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

[分享] [20150128]自动列表·自动菜单·数字启动

    [复制链接]
541#
发表于 2011-2-9 22:03:29 | 只看该作者
@zxw

calc *0x82b8>>8&0xff-0x80 || map (hd1) (hd0) && map (hd0) (hd1)

刚才实机测试  这一行在usb-hdd启动时不能改变磁盘序列  U盘还是被识别为hd0
回复

使用道具 举报

542#
发表于 2011-2-10 00:00:13 | 只看该作者
Z大更新得很认真负责哟,赞一个!反映一点不算问题的问题:
我用RUN 启动Acronis Disk Director Server v10.0.2169 Full/Safe 在本地机两个版本都正常,但在网启客户端却不能使用Full版本,提示“Unable to load Linux kernel”,只能使用Safe版本。





换sratlf版主的RUN现象一样,但如果我用传统的方法启动

map --mem /IMGS/adds.iso (0xff)
map --hook
chainloader (0xff)
boot

则无论本地机还是网启客户端两个版本都正常,不知何故?反馈问题,供你参考!
回复

使用道具 举报

543#
发表于 2011-2-10 00:10:35 | 只看该作者

回复 #542 wlue 的帖子

用我的RUN  这样试试

RUN --mem /IMGS/ADDS.ISO
回复

使用道具 举报

544#
 楼主| 发表于 2011-2-10 00:28:01 | 只看该作者

回复 #542 wlue 的帖子

我的恰好相反,这样试试:
RUN /IMGS/ADDS.ISO --mem
回复

使用道具 举报

545#
 楼主| 发表于 2011-2-10 00:30:03 | 只看该作者

回复 #541 sratlf 的帖子

试试:
calc *0x8280&0xff-0x80 || map (hd0) (hd1) && map (hd1) (hd0)
交换磁盘要实现智能化,一直是个老大难问题,目前应该无解。

[ 本帖最后由 zxw 于 2011-2-10 00:45 编辑 ]
回复

使用道具 举报

546#
发表于 2011-2-10 07:52:24 | 只看该作者

回复 #545 zxw 的帖子

试过了,一样,也不起作用
回复

使用道具 举报

547#
发表于 2011-2-10 10:24:37 | 只看该作者
回复 #543 sratlf 的帖子
回复 #544 zxw 的帖子

报告两位老大,我试过了,问题依旧。而且即使我用RUN先加载firadisk驱动也是同样结果!
回复

使用道具 举报

548#
发表于 2011-2-10 11:00:18 | 只看该作者
只是脚本文件呀!也学习一下
回复

使用道具 举报

549#
发表于 2011-2-10 11:09:09 | 只看该作者
@zxw ,sratlf
从U盘启动时,一般情况下可以使用以下方法检测
checkrange 0x80 read 0x82A0 && echo boot from usb-hdd
如果是使用FBINST来启动的用下面的方法.
calc *0x82b9&0x80 && echo boot from usb-hdd

以上两个同时使用应该就可以判断出是usb-hdd了.
当然了前提条件是这个菜单文件必须在U盘上.并且上面的命令最好放在菜单的最前面.以免其它命令影响结果.
回复

使用道具 举报

550#
 楼主| 发表于 2011-2-10 11:49:37 | 只看该作者

回复 #549 chenall 的帖子

关键就是不能判断是否从U盘启动。
回复

使用道具 举报

551#
发表于 2011-2-10 12:08:45 | 只看该作者
原帖由 zxw 于 2011-2-10 11:49 发表
关键就是不能判断是否从U盘启动。


这个没有办法,使用U盘启动自己加上检测就行了.
回复

使用道具 举报

552#
发表于 2011-2-10 12:16:17 | 只看该作者

回复 #547 wlue 的帖子

那看来就是和批处理有关了,你再这样试下,自己写个批处理,内容如下

===================
!BAT
map --mem /IMGS/ADDS.ISO (0xff)
map --hook
chainloader (0xff)
boot
===================

批处理名字可以是 ADDS

菜单中这样写

title adds test
ADDS
boot

然后再试下  看行不行
回复

使用道具 举报

553#
发表于 2011-2-10 14:33:53 | 只看该作者

回复 #552 sratlf 的帖子

报告S大,用你说的批处理方法引导可以正常启动(汗:原来grub用批处理不能带后缀名的)!

再请教S大:这个批处理内容不是与传统菜单写法一样吗,对你们编写RUN有借鉴意义吗?
回复

使用道具 举报

554#
发表于 2011-2-10 16:53:48 | 只看该作者

回复 #553 wlue 的帖子

不是不能带后缀  是需要批处理内容以 !BAT  开头  否则不认为这是个批处理文件

就是想确定是不是因为批处理引起的  如果用批处理启动iso出错  正常没问题的话就是批处理的问题了

现在就是找为什么会用RUN报错了
回复

使用道具 举报

555#
 楼主| 发表于 2011-2-12 09:01:02 | 只看该作者
02-12:修改自动列表模块,准备下一步增加字体支持;修改磁盘交换代码。

其中:自动列表模块中,如chenall大能对\b控制符进行特殊处理,增加字体支持就不用什么修改了。

[ 本帖最后由 zxw 于 2011-2-12 10:20 编辑 ]
回复

使用道具 举报

556#
发表于 2011-2-12 10:09:42 | 只看该作者
原帖由 zxw 于 2011-2-12 09:01 发表
02-12:修改自动列表模块,准备下一步增加字体支持;修改磁盘交换代码。

其中:自动列表模块中,如chenall大能对/b控制符进行特殊处理,增加字体支持就不用什么修改了。


我不明白,在什么样的情况下需要用\b呢?

\b是退格符,作用只是把光标后退一格.
回复

使用道具 举报

557#
 楼主| 发表于 2011-2-12 10:16:10 | 只看该作者

回复 #556 chenall 的帖子

原帖由 chenall 于 2010-12-23 10:29 发表
一般情况下都是80.
如果是800X600模式的是100(这个很少用不用考虑)
要考虑只要判断当前的显示模式是不是0X6A就可以了.0x6a模式是800x600的.

经我测试,一般情况下,一行显示的有效字符不是80,而是79;
800X600模式下,一行显示的有效字符不是100,而是99。
这时就需要退格符了。


[ 本帖最后由 zxw 于 2011-2-13 00:57 编辑 ]
回复

使用道具 举报

558#
发表于 2011-2-12 15:48:59 | 只看该作者
你这样的判断并不准确..而且使用\b只能治标不能治本...

至于只显示79个字符一行,记得好像是因为防止最后一个字符由于显示器的关系不能看到.(目前大都用液晶显示器倒是没有什么影响)

在图形模式下你可以再试试,一般可以正常显示80字符一行.
如果的汉字+英文组合字数不能确定..

另外中文汉字UTF-8编码是3个字符但显示出来后经过转换只占了两个字符..这些你根本无法控制.
回复

使用道具 举报

559#
发表于 2011-2-12 22:17:25 | 只看该作者
贴子很火!可是我看了好几天也没明白怎么用!!!
楼主给个现成的包含GRUB4DOS的模板就好,然后里面的具体需要的
ISO、IMG等文件就自己添加,这样我等菜鸟也比较容易上手。
回复

使用道具 举报

560#
发表于 2011-2-13 09:28:58 | 只看该作者
1楼有应用举例,可参照应用。

[ 本帖最后由 幸运的草 于 2011-2-13 11:55 编辑 ]
回复

使用道具 举报

561#
发表于 2011-2-13 11:08:32 | 只看该作者
将GRUB4DOS装入xp时采用RUN模块启动各个镜像时好像有点问题,单步跟踪发现与这个代码有点关系
call :chdis
:chdis
debug 1
find | set bd=        就是到这里就不动了,不知怎么回事
debug %debug%
exit

我用虚拟机加载本地硬盘,并从本地硬盘启动时又可以正常启动,真不知是什么原因。

[ 本帖最后由 mrwang123 于 2011-2-13 11:12 编辑 ]
回复

使用道具 举报

562#
 楼主| 发表于 2011-2-13 14:50:44 | 只看该作者

回复 #561 mrwang123 的帖子

你命令行下,输入find回车,看看是个什么情况?
回复

使用道具 举报

563#
发表于 2011-2-13 15:54:09 | 只看该作者

回复 #562 zxw 的帖子

也是一样的,要等很长时间才有反映,我在几台电脑上都出现了这样的情况。
而将镜像放入U盘再RUN启动确可以启动
回复

使用道具 举报

564#
 楼主| 发表于 2011-2-13 15:56:07 | 只看该作者

回复 #563 mrwang123 的帖子

哦,你在运行run前,输入map --floppies=0试试
回复

使用道具 举报

565#
发表于 2011-2-13 16:55:23 | 只看该作者

回复 #564 zxw 的帖子

map --floppies=0后可以了,看来与软驱有关系
可为什么通过虚拟机和U盘加载测试却正常呢?
我用find --devices=h | set bd= 也可以。
回复

使用道具 举报

566#
 楼主| 发表于 2011-2-13 19:36:10 | 只看该作者

回复 #565 mrwang123 的帖子

那是因为你的机器bios有bug,u启后不管u盘被识别为什么均会增加一个“不可读取”的虚拟软盘设备,而虚拟机的虚拟bios一般均较为“理想化”,没有这个bug.

[ 本帖最后由 zxw 于 2011-2-13 19:56 编辑 ]
回复

使用道具 举报

567#
发表于 2011-2-14 09:04:36 | 只看该作者
我不是用的U启,我是本地硬盘启动GRUB4DOS(我在BIOS中将软驱关掉后也可正常)
我看可不可以改进下RUN,使它能够兼容硬盘及U盘等不同的启动方案
回复

使用道具 举报

568#
发表于 2011-2-14 09:26:26 | 只看该作者
这不是RUN的问题,使用G4D时,map -mem的话,如果你开启软驱的话,特别是没有软驱而开启软驱的话,会更慢,会很慢,但如果你关闭了软驱,就没有问题了。因此如果不是特别需要的话,最好是在BIOS中将软驱关闭。有此BIOS会将ZIP模式识别成软驱,如果不关闭软驱的话也会出问题。
回复

使用道具 举报

569#
发表于 2011-2-14 09:54:26 | 只看该作者
请文Z大:用 RUN firadisk.img XXX.ISO 方式启动ISO镜像时,出现选择启动ISO还是从硬盘启动,按“i”键启动ISO,如何让直接引导ISO,像S大的加上-nodisk参数即可,你的这个RUN该怎么写参数呀?
回复

使用道具 举报

570#
发表于 2011-2-14 11:10:17 | 只看该作者
Z大,在RUN中加上一条calc *0x8280&0xff-0x80 && map --floppies=1 ! map --floppies=0应该可以更好的适应硬盘或U盘等不同方案
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-1 07:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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