无忧启动论坛

标题: [简易脚本]]处理zip盘为"hdd盘" [打印本页]

作者: zxw    时间: 2011-10-14 10:57
标题: [简易脚本]]处理zip盘为"hdd盘"
设置了一下权限,新手谨慎使用。
只支持2011-10-09以上的grub4dos版本。

将启动设备为(fd0)的情形(包括ud)处理了一下,换为(hd0).

特点:
    1.保持原其它磁盘顺序不变。
    2.启动设备、当前设备和command指定的外部命令路径如在原(fd0)或(fd0,0)上,也作了相应调整.
    即尽量模拟保存之前的环境。
未测试,觉得有用的,自己处理。


[ 本帖最后由 zxw 于 2011-10-28 22:06 编辑 ]

FD2HD.7z

563 Bytes, 下载次数: 233, 下载积分: 无忧币 -2


作者: zxw    时间: 2011-10-14 11:19
提示:
1.在处理驱动时,可能有点用处。
2.谨慎使用setlocal,懂的自然明白。
3.运行本批处理前,如执行configfile等改变了bd值的命令,本处理可能无效。

[ 本帖最后由 zxw 于 2011-10-15 15:08 编辑 ]
作者: 快雪时晴    时间: 2011-10-14 11:30
又见批处理~~~好强大
作者: zhaohj    时间: 2011-10-14 12:10
我觉得应该用(hd),理由:
(fd0)或(fd0,0)本身不占用硬盘号,也就是不存在交换硬盘的操作了。
改为(hd0),那如果安装系统之类还要交换磁盘,你上面的设置就没用了。
作者: zxw    时间: 2011-10-14 12:13
标题: 回复 #4 zhaohj 的帖子
最初也这样考虑过。
后经思考,认为还是处理为(hd0)为好。
原因主要有二:
1.启动设备经这样处理后,用户以后如要进行磁盘交换可以不用再考虑是否zip盘。
2.ud的zip盘情形,如处理为(hd),原ud盘不能再读取。而这样处理后尽量模拟保持了"原汁原味"。

[ 本帖最后由 zxw 于 2011-10-14 17:39 编辑 ]
作者: hotdll    时间: 2011-10-14 12:51
标题: 回复 #1 zxw 的帖子
先收藏,等F6IMG搞定后测试
作者: mygamexxx    时间: 2011-10-15 12:54
FBINST制作的USB-ZIP启动盘,使用此批处理后无效果。

FB2HD.CMD在UD区内,运行前find会找到(fd0)、(fd0,0)、硬盘hd0各分区,ls (fd0)/显示为UD区内容,ls (fd0,0)/为U盘可见分区内容。
运行command (ud)/FB2HD.CMD后,运行find,显示(fd0)、(fd0,0)、硬盘hd0各分区,设备无改变。

不过使用map命令有个奇怪的现象:
map (fd0) (hd)
map --hook
运行find,多了(hd1,0),ls (hd1,0)/为U盘可见分区内容,ls (fd0)/为UD区内容,ls (fd0,0)/为U盘可见分区内容。
继续
map --mem (fd0,0)/dos.ima (fd0)
map --hook
运行find,多了(fd0,1)、(fd0,2)、(fd0,3)。
ls (fd0)/为UD区内容,ls (fd0,0)/、ls (fd0,1)/、ls (fd0,2)/、ls (fd0,3)/均是读取错误,ls (hd1,0)/为U盘可见区内容。
继续
map (fd0) (fd1)
map --hook
运行find,又多了(fd1)、(fd1,0)、(fd1,1)、(fd1,2)、(fd0,3)。
ls (fd0)/为UD区内容,ls (fd0,0)/、ls (fd0,1)/、ls (fd0,2)/、ls (fd0,3)/、ls (fd1,0)/、ls (fd1,1)/、ls (fd1,2)/、ls (fd1,3)/均是读取错误;
ls (fd1)/竟然是dos.ima映像内容,ls (hd1,0)/为U盘可见区内容。

如果dos.ima在硬盘上(第二步)
map --mem (hd0,0)/dos.ima (fd0)
map --hook
运行find,多了(fd0,1)、(fd0,2)、(fd0,3)。
ls (fd0)/为dos.ima内容,ls (fd0,0)/、ls (fd0,1)/、ls (fd0,2)/、ls (fd0,3)/均是读取错误。

[ 本帖最后由 mygamexxx 于 2011-10-15 13:26 编辑 ]
作者: zxw    时间: 2011-10-15 13:41
标题: 回复 #7 mygamexxx 的帖子
以上测试均是正常的。不使用这个批处理的话:
map --mem (fd0,0)/dos.ima (fd1)
ls (fd0,1)/、ls (fd0,2)/、ls (fd0,3)/、ls (fd1,0)/、ls (fd1,1)/、ls (fd1,2)/、ls (fd1,3)/也会读取错误
==================================
帖子开始说过,处理(fd0)为(hd0),意即模拟hdd盘启动的情形。所以本地硬盘从(hd1)开始按原顺序排列。

[ 本帖最后由 zxw 于 2011-10-15 13:42 编辑 ]
作者: mygamexxx    时间: 2011-10-15 14:04
运行批处理后,hd0还是硬盘的hd0,无hd1产生。是不是不能是FBINST制作的USB-ZIP启动盘?

[ 本帖最后由 mygamexxx 于 2011-10-15 14:09 编辑 ]
作者: 2011Alar30    时间: 2011-10-15 14:25
试试看哈
谢谢了。。。
作者: zxw    时间: 2011-10-15 14:28
标题: 回复 #9 mygamexxx 的帖子
原帖由 mygamexxx 于 2011-10-15 14:04 发表
运行批处理后,hd0还是硬盘的hd0,无hd1产生。是不是不能是FBINST制作的USB-ZIP启动盘?

不对,不应该是这样。
FBINST制作的USB-ZIP启动盘,我测试是成功的。
有空的话,请进行以下测试:

运行fd2hd前,执行:
root
root (bd)
read 0x8280
read 0x82b8
command

运行fd2hd后,执行:
ls (hd0,0)/
ls (hd1,0)/
root
root (bd)
read 0x8280
read 0x82b8
command
看看是什么?

还有,调用fd2hd的是菜单还是批处理?有否使用setlocal?
是否下载的最新版?

[ 本帖最后由 zxw 于 2011-10-15 14:42 编辑 ]
作者: mygamexxx    时间: 2011-10-15 14:52
菜单进入命令行
执行FD2HD.CMD前:
root   #(fd0,0)
root (bd)  #(ud)
read 0x8280  #0x23
read 0x82b8  #0xff3f003f
command    #(bd)/boot/grub/
#后面的是运行结果。

command /FD2HD.CMD
结果:
.....0x8278:   ....0x132dea1
17 (HEX: 0x11)
warning: No such command: v

find      #硬盘情况无变化,无hd1
作者: zxw    时间: 2011-10-15 14:54
标题: 回复 #12 mygamexxx 的帖子
晕,只支持2011-10-09以上的grub4dos版本。
或者,你改变了bd值?
1#帖子置顶有强调。

[ 本帖最后由 zxw 于 2011-10-15 14:56 编辑 ]
作者: mygamexxx    时间: 2011-10-15 14:56
标题: 回复 #13 zxw 的帖子
今天刚下载的最新版啊grub4dos-0.4.5b-2011-10-09.7z,否则你的批处理不会运行的。
只有一个区别,使用了gfxmenu,但是进入命令行后操作的

[ 本帖最后由 mygamexxx 于 2011-10-15 14:59 编辑 ]
作者: zxw    时间: 2011-10-15 14:59
标题: 回复 #14 mygamexxx 的帖子
  1. read 0x8280  #0x23
复制代码

从这里看,你的bd值已被改变
作者: mygamexxx    时间: 2011-10-15 15:01
grldr菜单
debug off
timeout 0
default 0
title
calc *0x82b8>>8&0xff-0x80 || configfile (ud)/menu_ud1.lst
calc *0x82b8>>8&0xff-0x80 && configfile (ud)/menu_ud0.lst
作者: zxw    时间: 2011-10-15 15:03
标题: 回复 #16 mygamexxx 的帖子
汗,执行configfile后改变了bd值,当然不行。
从你的菜单来看,实际上根本没有执行这个批处理。

[ 本帖最后由 zxw 于 2011-10-15 15:24 编辑 ]
作者: mygamexxx    时间: 2011-10-15 15:25
更改菜单后成功!!!不过这个方法在复杂情况中使用有问题。
(fd0)与(fd0,0)有联系,如果map为hd后,对以后map --mem软盘映像(U盘可见区上的IMG文件)有影响,与真正的(fd0)还是不一样。
感觉FBINST的USB-ZIP这个情况也挺烦人的

本来就是为了空出(fd0),用于map软盘映像。但使用中就有问题。

[ 本帖最后由 mygamexxx 于 2011-10-15 15:36 编辑 ]
作者: zxw    时间: 2011-10-15 15:31
标题: 回复 #18 mygamexxx 的帖子
这个适宜在启动后初始化处理。或者,我再处理一下。
作者: hotdll    时间: 2011-10-16 22:33
标题: 回复 #19 zxw 的帖子
测试成功
明天开始修正F6IMG的ZIP处理方法。
应该通用性更强了。
作者: 快雪时晴    时间: 2011-10-16 23:17
标题: 回复 #20 hotdll 的帖子
今天刚下的看来只能删了,等明日完善版
作者: zxw    时间: 2011-10-28 22:06
适应新版本的变化,更新了一下。
作者: 886    时间: 2012-1-29 21:33
.......................
作者: sunsea    时间: 2012-1-31 11:12
原帖由 zxw 于 2011-10-14 12:13 发表
最初也这样考虑过。
后经思考,认为还是处理为(hd0)为好。
原因主要有二:
1.启动设备经这样处理后,用户以后如要进行磁盘交换可以不用再考虑是否zip盘。
2.ud的zip盘情形,如处理为(hd),原ud盘不能再读取 ...


或者是否可以这样:
虚拟成例如(0x5A)之类的较靠后的硬盘号(最大(0x99))不打扰前面的(hd0)、(hd1)
作者: loocuw    时间: 2012-2-11 08:08
研究下,是不是加了味精
作者: loocuw    时间: 2012-2-29 17:10
执行FD2HD后再执行find不显示,请楼主试试
作者: zxw    时间: 2012-2-29 17:23
标题: 回复 #26 loocuw 的帖子
debug 1 ……………………
作者: loocuw    时间: 2012-3-4 15:46
标题: 回复 #27 zxw 的帖子
可以了,谢谢!
还有一个问题:
主菜单中加入:checkrange 0x0 read 0x8280 && FD2HD
title 【03】 运行MaxDos 2011工具箱
RUN /BOOT/IMGS/MAXDOS.IMG
title 【10】 运行Free-dos下diskgen程序解硬盘逻辑锁
RUN /BOOT/IMGS/DISKGENfree.img
如果是usb-hdd启动没有问题
如果是usb-zip启动进不了MAXDOS,但是freedos可以进的

请您试下好吗
作者: zxw    时间: 2012-3-4 16:40
标题: 回复 #28 loocuw 的帖子
主菜单中加入:checkrange 0x0 read 0x8280 && FD2HD

将这一句去掉试试。
作者: blithewind    时间: 2012-3-4 18:01
原帖由 loocuw 于 2012-3-4 15:46 发表 可以了,谢谢!还有一个问题:主菜单中加入:checkrange 0x0 read 0x8280 && FD2HDtitle 【03】 运行MaxDos 2011工具箱RUN /BOOT/IMGS/MAXDOS.IMGtitle 【10】 运行Free-dos下diskgen程序解硬盘逻辑锁 ...
建议做为一个菜单项运行,因为实机情况还是很复杂的.
作者: loocuw    时间: 2012-3-5 16:05
原帖由 zxw 于 2012-3-4 16:40 发表

将这一句去掉试试。

去掉checkrange 0x0 read 0x8280 && FD2HD就正常进MAXDOS

[ 本帖最后由 loocuw 于 2012-3-5 16:06 编辑 ]
作者: loocuw    时间: 2012-3-12 16:58
标题: 楼主呢
去掉checkrange 0x0 read 0x8280 && FD2HD就正常进MAXDOS
作者: zhaohj    时间: 2012-3-12 17:11
进入命令行,提供一下信息:
read 0x8280
read 0x82a0
作者: 2012hunter_dny    时间: 2012-3-12 21:53
**** 本内容积分高于 2000 才可浏览 ****
看不到^.^!
作者: loocuw    时间: 2012-3-13 14:59
标题: 回复 #33 zhaohj 的帖子
read 0x8280 值为0x0
read 0x82a0 值为0x32
运行FD2HD后
read 0x8280 值为0x80
read 0x82a0 值为0x32
作者: zhaohj    时间: 2012-3-13 15:21
zip运行FD2HD后
read 0x8280 值为0x80
read 0x82a0 值为0x32
----------------------------
不是0x32吧,应该是0x23
-----------------
zxw:当前盘还在(ud),是否应该改成0x80?
作者: loocuw    时间: 2012-3-13 15:45
标题: 回复 #36 zhaohj 的帖子
sorry
zip运行FD2HD后
read 0x8280 值为0x80
read 0x82a0 值为0x23
作者: zhaohj    时间: 2012-3-13 16:32
0x82a0如果原来是0x23,那不应该改变。
0x82a0如果原来是0,则要改成0x80
作者: zxw    时间: 2012-3-13 17:06
回复 #38 zhaohj 的帖子
对,就是这样。

回复 #32 loocuw 的帖子
很简单,run加载maxdos时内部已作处理,不再需要fd2hd。
作者: loocuw    时间: 2012-3-13 17:11
标题: 回复 #38 zhaohj 的帖子
非常感谢你
zip启动后
read 0x8280 值为0x0
read 0x82a0 值为0x23
可以进正常进MAXDOS
运行FD2HD后
read 0x8280 值为0x80
read 0x82a0 值为0x23
不能进MAXDOS。
其实也没有什么必须的。不交换就是了,只是对这个批处理较真一点罢了


回复 #39 zxw 的帖子
谢谢你,明天我再试试

[ 本帖最后由 loocuw 于 2012-3-13 21:43 编辑 ]
作者: loocuw    时间: 2012-3-13 17:25
标题: 回复 #39 zxw 的帖子
谢谢你,明天我再试试
作者: 2012jm616119022    时间: 2012-3-15 07:03
标题: 回复 #1 zxw 的帖子
看帖回帖好习惯!!!我一天不来就不爽!............
作者: loocuw    时间: 2012-3-16 09:16
标题: 回复 #39 zxw 的帖子
回复 #32 loocuw 的帖子
很简单,run加载maxdos时内部已作处理,不再需要fd2hd。

目前我可以肯定这个批处理存在bug


zip启动后
map --mem /boot/IMGS/MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
顺利进入maxdos


运行FD2HD
map --mem /boot/IMGS/MAXDOS.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
不能进入maxdos


以上说明和run无关,是批处理问题
作者: 527104427    时间: 2012-3-16 13:45
在一块联想老主板I945GZ上,也出现同楼上一样的问题
作者: zhaocai    时间: 2012-3-16 15:24
先下来学习学习,谢谢了
作者: HUNRYBECKY    时间: 2012-3-27 15:16
好东西,刚好用上,因为S版的RUN把我的U盘处理成FDD而找不到可见分区的MYISO目录。
作者: 2011ckgame    时间: 2012-3-27 18:04
看看有什么能学习的!!!
作者: wyl0205    时间: 2012-5-24 15:13
高于2000分才可以。。。
作者: gooler    时间: 2012-5-28 15:00
好好看一看,学习一下!
作者: 2011316861798    时间: 2012-5-28 22:20
怎么会这样要2000分




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3