无忧启动论坛

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

基于GPARTS.LST获取分区号的“一键gohst”演示版及xDOS介绍

[复制链接]
跳转到指定楼层
1#
发表于 2010-9-29 16:07:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请先阅读:
用Grub4Dos获取硬盘活动分区号与最后分区号  (本演示版中的gparts.lst已有少量更新)
本演示版参考了QGHO的设计思路。

演示文件 XDOS_demo.iso 已上传至FTP下的tuxw目录
网盘下载:http://u.115.com/file/f710a89163


只有两个文件,一个IMA,一个grldr,非常容易部署。最简单的就是放到C盘,修改boot.ini引导。
个人加入的东西是全透明、文本式的。个人做过什么一目了然,你可以任意修改(当然,你得会编辑ima文件),决不存在BAT2EXE这类东东。

IMA文件大小10M,主要是为了演示XDOS,如果去掉XDOS工具箱,只做GHOST,只有2M多一点。

目前这个演示版的测试不能更换grldr和wenv的版本。因为菜单大量使用了 calc 和 wenv calc 两条命令做数值判断,但这两条命令目前存在BUG,如果更换版本,相同的表达式可能计算出不同的结果导致判断错误。待这两条命令完善后我再修改菜单中的表达式。

4种模式支持,因为完全由Grub4Dos做界面,只要设置好合适的菜单缺省值,并设置自动延时,我们可以做到真正的“一键”恢复,同时又可以人工介入选择不同的模式(演示版中未设置自动延时,防止测试时一不小心自动恢复了)


切换硬盘,在USB启动时,它有可能占用(hd0),这时需要用本菜单切换目标硬盘。

细心的你可能已经注意到了,这个和上图显示的已经不一样了,这就是本演示版中多处用到的动态菜单技术,如果你在演示光盘的BOOT目录下放一个XDOS.LST,本页面后面会自动多出一项“扩展菜单”菜单。


预置模式、自动模式、交互模式都会进入下面的界面。
这样可以拥有不同时间点的多个备份,可以设置缺省进入某个恢复点,也可以人工介入选择备份或不同的恢复点。如果备份空间足够,可以定制任意多个备份点。


用左右键头选中前面第二个分隔行可以检查当前备份目录是否正确


用左右键头选中第一个注释行可以查看内存状态


在此基础上完全可以打造属于自己的“一键GHOST”

[ 本帖最后由 tuxw 于 2010-9-30 15:55 编辑 ]
2#
 楼主| 发表于 2010-9-29 16:07:42 | 只看该作者
本帖一是为了演示 gparts.lst 的应用,另外是想介绍一下xDos工具箱的结构。

有了MaxDOS后,从全面性来说,很难有另一个DOS工具箱能够超越它了。但全的另一种意义就是雍肿,毕竟不是每个人都是专门给人维护电脑,每天要面对各种各样的电脑的。对大多数人来说,可能只用MaxDOS中的某一个或几个工具,甚至只要一个驱动。大多数人只需要在自己的生活圈子里维护有限数量的电脑而已。

xDOS是一个平民化高度可定制的工具箱(本演示版不是介绍xDOS有多强的功能,而是介绍其结构和自定制的便利性,所带的都是很普通的工具)。基本上不需要懂得DOS各种启动配置的编辑技巧,就能打造适合自己的工具箱。

xDos只启动一个“最小”DOS,并用xmsdsk.exe虚拟一个内存盘X。所有工具打包成zip文件,需要时解包到X盘运行,运行后删除解包出来的文件,xDOS也因此而命名。

为避开DOS的多重启动配置文件,xDOS完全以Grub4Dos为界面,这样实现中文和修改界面非常容易。因此xDOS自身DOS界面做得很精糙,只实现一个home.bat返回集中bat文件的目录。

IMG文件的基本目录结构:
A:
│  ATTRIB.EXE
│  AUTOEXEC.BAT
│  COMMAND.COM
│  CONFIG.SYS
│  ENVI.BAT
│  HIMEM.SYS
│  IO.SYS
│  MSDOS.SYS
│  X.BAT
│  XMSDSK.EXE
└─X
    │  LOAD.BAT
    │  LOAD.TXT
    │  UNZIP.EXE
    ├─AUTO
    │  │  BAT.zip
    │  └─ DOS.zip
    ├─STD
    └─ZIP

为了支持Grub4Dos做启动界面,xDOS中实现了一个批处理Load.bat对zip包的支持。无参数或用/?,/h可以查看用法。

AUTO目录
这个目录中的zip文件会在启动调用x.bat时自动解压到X盘根目录,所以这个目录中的zip要完全按照x盘中的目录结构打包。比如有个文件希望解压到X:\DOS目录中,则打包时zip文件中就有DOS目录。

STD目录
这个目录用来存放用户定制时加入的标准压缩包。
标准压缩包:将工具软件 MYTOOL.EXE 打包成 MYTOOL.ZIP,放到 STD目录中。
标准压缩包的调用方式:
Load.bat /s MYTOOL [yes [yes/no]]
后面的第一个yes/no表示是否需要鼠标,第二个yes/no表示是否需要中文
这条命令会:
解压 A:\X\STD\A.ZIP 到 X:\MYTOOL目录
运行 X:\MYTOOL\MYTOOL (可以是exe,com,bat)
删除 X:\MYTOOL 目录

ZIP目录
这里存放的是非标准压缩包,可以且以下命令调用,每一个参数都要指定
LOAD.BAT zip包名 解压路径 [运行程序 [yes/no [yes/no [删除目录]]]]
比如对前面的 MYTOOL
LOAD.BAT A:\X\STD\MYTOOL.ZIP X:\MYTOOL X:\MYTOOL\MYTOOL.EXE yes no X:\MYTOOL

如果标准压缩包想换个名字,又想用 Load.bat /s 调用怎么办?
如 A.EXE 想打包成 B.ZIP
可以编写一个B.BAT调用A.EXE,将BAT放在B.ZIP中
然后用 LOAD.BAT /S B 调用即可
可以参考本演示版中的IBM_F11.ZIP,它的可执行文件是BMGR.EXE,里面有个IBM_F11.BAT

如何加入驱动?
由 xDOS 结构原理决定了,只能用adddev/loadsys这类工具动态加入驱动,对不支动态加载的目前xDOS无能为力。
演示版中加入了IDE光驱、ISO仿真的两个驱动,参考 X:\BAT 下的 cdrom.bat 和 iso.bat

重点:从Grub4DOS界面调用
title MYTOOL
map --mem /XDOS.IMA (fd0)
map --hook
rootnoverify (fd0)
write --offset=0x156 /AUTOEXEC.BAT CALL LOAD.BAT /S MYTOOL\r\nreboot\r\n::
chainloader +1

这个菜单会启动DOS,解压运行MYTOOL.EXE,然后重启
如果不想重启留在DOS界面,改为这样
write --offset=0x156 /AUTOEXEC.BAT CALL LOAD.BAT /S MYTOOL\r\ngoto END\r\n::
甚至运行后返回Grub4Dos
write --offset=0x156 /AUTOEXEC.BAT CALL LOAD.BAT /S MYTOOL\r\nCALL grub.exe\r\n::

这里要说一下魔数0x156
xDOS默认启动顺序是虚拟一个X盘,加载AUTO目录中的ZIP,进入DOS。
加载AUTO后,有一段空白的区域,用来支持动态写入命令,0x156就是这个空白区域的起始偏移量。我们上面的示例中写入命令尾部都有个\r\n::,如果覆盖了其它命令行,断行时自动注释掉防止语法错误。如果修改了autoexec.bat文件,要相应的修改0x156这个数值。

XDOS中,DOS文件被我分成了常用和非常用两部分,常部分在A:\X\STD\DOS.ZIP,启动时会自动加载;非常用部分在A:\X\ZIP\DOS.ZIP,可以进入DOS后运行DOS_.BAT加载。当然,常用和非常用的标准因人而异,这个完全可以自己调整。

演示版所带工具界面如下:


LOAD.BAT帮助

功能:加载zip程序包到内存盘并运行
用法:
1. LOAD.BAT [/?|/h]
显示帮助

2. LOAD.BAT /S zip包名 [yes/no [yes/no]]
加载标准压缩包并运行
zip包名不需要扩展名,第3个参数是鼠标支持,第4个参数是中文支持
标准包:应用程序 NAME.EXE(COM/BAT) 打包成为 a:\x\std\name.zip
load.bat /s name 将 name.zip 解压到 x:\name\
运行 x:\name\name,后删除 x:\name

3. LOAD.BAT zip包名 解压路径 [运行程序 [yes/no [yes/no [删除目录]]]]
解压非标准压缩包
zip包名必须是带路径的全名
运行程序是解压后可执行程序带路径的全名
环境变量 AUTOCLEAN 决定运行完成后是否删除解压目录
AC.BAT /y 或 AC.BAT /n 可改变这个环境变量

[ 本帖最后由 tuxw 于 2010-9-29 18:52 编辑 ]
回复

使用道具 举报

3#
发表于 2010-9-29 17:03:32 | 只看该作者
XDOS_demo.iso 能否传到本帖,谢谢!
回复

使用道具 举报

4#
 楼主| 发表于 2010-9-29 17:13:40 | 只看该作者
原帖由 天涯海角1216 于 2010-9-29 17:03 发表
XDOS_demo.iso 能否传到本帖,谢谢!


IMA文件有10M,传附件不太好传,晚上我传到网盘吧
回复

使用道具 举报

5#
发表于 2010-9-29 17:39:58 | 只看该作者
这个帖子很有价值 。。。
收藏 慢慢看看 消化一下。。。。
回复

使用道具 举报

6#
发表于 2010-9-30 10:57:10 | 只看该作者
这个帖子很有价值 。。。
收藏 慢慢看看 消化一下。。。。
回复

使用道具 举报

7#
发表于 2010-10-1 10:18:59 | 只看该作者
思路很新,很好的利用了grub4dos的新功能
回复

使用道具 举报

8#
发表于 2010-10-1 11:30:14 | 只看该作者
不错,好思路,学习...
回复

使用道具 举报

9#
发表于 2010-10-3 09:50:28 | 只看该作者
grldr.lst
内容如下:
password --md5 $1$/$vb4cYSooCQ4WBMRD29XGU.
find --set-root --ignore-floppies /mousedos/mousedos.xpm
timeout 10
default 2
fontfile /mousedos/fonts.gz
splashimage /mousedos/mousedos.xpm

hiddenmenu

title 启动XDOS_demo.iso
password --md5 $1$/$vb4cYSooCQ4WBMRD29XGU.
map --mem (hd0,0)/mousedos/XDOS_demo.iso (hd32)
map --hook
chainloader (hd32)
boot

从boot.ini中用grldr配合grldr.lst启动XDOS_demo.iso
再启动XDOS_demo.iso中的xdldr
再启动XDOS_demo.iso中的boot\xdos.ima
出错了:
进入grub命令行,按ESC提示:

(几行英文和数字省略)
Error 25: Dis read error


即上述过程用grub4dos两次后出错,
map --mem (hd0,0)/mousedos/temp.iso (hd32)可启动用easyboot制作的iso文件
回复

使用道具 举报

10#
 楼主| 发表于 2010-10-3 15:54:36 | 只看该作者
这个ISO只是简单的演示xDOS的调用,及在xDOS打造一键恢复,没有考虑整体启动

如果你要合盘的话,你要将 XDOS.IMA 提出来放到你的光盘中,目前唯一的限制是要放在 /BOOT 目录下,如果想换到其它目录,需要自己修改菜单中的路径。

然后将光盘中的 XDLDR(grldr改名而来的) 的内置菜单提出来,比如叫 loadxdos.lst
在你的工具盘中 configfile .../loadxdos.lst 就可以启动
回复

使用道具 举报

11#
发表于 2010-10-5 18:58:11 | 只看该作者
感谢楼主分享!~!关注中……
回复

使用道具 举报

12#
发表于 2010-11-4 22:18:12 | 只看该作者
继续关注。楼主辛苦了,感谢分享!!!..
回复

使用道具 举报

13#
 楼主| 发表于 2011-5-24 02:19:09 | 只看该作者
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-3 07:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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