Board logo

标题: 为移动操作系统打造稳健的引导扇区,请参谋 [打印本页]

作者: 不点     时间: 2007-10-27 12:27    标题: 为移动操作系统打造稳健的引导扇区,请参谋
为了讨论问题集中起见,我把这篇文章贴在 google 网上论坛──grub4dos邮件列表上了。

要在此论坛发帖,请发电子邮件到 grub4dos@googlegroups.com
要退订此论坛,请发邮件至 grub4dos-unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/grub4dos?hl=zh-CN 访问该论坛

作者: frank55555     时间: 2007-10-27 16:36
我認為用第一種方法好一些.誰做啟動盤(U盤).不對U盤進行格式化呀?
用哪種方法做都要 格式化的.只是你用的工具不同.
但是我不知道你格式化后是什么格式,還是FAT32K嗎?
要是格式變了,就要想一想了.

作者: 不点     时间: 2007-11-5 10:32
终于完成了第一步。 http://grub4dos.jot.com/ 从 2007-11-05 开始,支持自动调节 CHS 几何参数。

注意:有可能死机。无论是否死机,请测试者都给出反馈,帮助完善这一重要发展步骤。

如果你在普通硬盘上测试,请报告是否死机。希望在普通硬盘上和往常一样,不至于会出现异常。普通硬盘上的测试,就是测试日常使用是否正常罢了。

如果你在 USB 设备上测试,对于 USB 硬盘设备,如果你的 USB 设备以前在不同机器上遇到 CHS 参数问题,导致有些机器能够启动 grldr,而有些机器不能启动 grldr,你试试新版的 grldr.mbr 是否解决了此问题。

对于 USB 软盘设备,你必须把软盘进行分区,并格式化为只含有 一个单一 FAT 分区 的“硬盘”,然后用 bootlace 安装 引导扇区到这个“硬盘”的 MBR,然后,再在不同的主板下进行测试。

测试以前遇到启动困难的,这次是否解决了。测试以前没有问题的,这次是否反而有问题了。

请报告详细一些,以便排解 BUG。

作者: wangjf     时间: 2007-11-5 15:29
在普通硬盘上测试11-05版的10-15版的一样,正常使用。USB设备还未测试。

作者: frank55555     时间: 2007-11-7 09:20
在U盤上一定要安裝嗎?能不能只用GRUB.EXE行不行呀?

作者: wangjf     时间: 2007-11-9 17:56
今天使用GRUB4DOS在U盘上实现USBZIP模式的直接GRUB引导
下面说一下经过,其中有一些不明白的地方。
1. 首先说一下软硬件配置:

U盘芯片:
Chipsbank(芯邦)
CBM2080
B26602-06

HY27UH084G2M_256M
传输速度:full speed(USB2.0)

可惜主版只支持USB1.1所以启动速度比较慢。

GRUB4DOS使用的是2007-11-05的版本。

1. 首先用 芯邦的U盘量产工具低格成可启动的USB-ZIP格式,
USB-ZIP有两种选择:USB-ZIP(32)和USB-ZIP(63)我不知道这两种格式有什么区别。
在我这里格成USB-ZIP(32)可以正常启动进入DOS状态,USB-ZIP(63)方式则启动失败。
或则用其他的U盘格式化工具,只要U盘格式化后能够启动DOS状态就行。

2. 写MBR到U盘。
开始时,我使用grubinst可是并没有成功。不知操作不对还是其他原因造成。后来使用bootlace写入成功。下面是bootlace写入过程

复制DOS系统文件IO.SYS、MSDOS.SYS、COMMAND.COM。和GRUB4DOS包中的bootlace.com文件到U盘根目录。用U盘启动进入DOS。然后在DOS命令行下键入:bootlace.com --floppy --chs 0x00
或则你可以建立一个BAT批处理文件来执行bootlace.com --floppy --chs 0x00命令。
还可以执行如下命令:
bootlace --boot-prevmbr-first --time-out=5 --hot-key=0x3920 --floppy --chs 0x00
(表示安装GRLDR代码到MBR时,默认启动原MBR,即启动原windows xp系统(--boot-prevmbr-first),等待时间5秒(--time-out=5),热键为空格键(--hot-key=0x3920)。

也就是说启动时等待5秒,5秒内不击热键的话,启动windows xp;5秒内击热键则启动grub4dos。见lianjiang写的GRUB4DOS教程1.3.3 通过mbr启动grub)

3. 复制grldr文件到U盘根目录、复制menu.lst菜单文件和其他你要用到的文件到U盘。启动即可(menu.lst最好复制到U盘根目录)

下面是我的menu.lst菜单文件配置。
======================================================
# 默认延迟时间(秒)
timeout 20

# 第9项(从硬盘启动)为默认值
default 8

# 设置图形背景文件
splashimage (fd0)/boot/grub/01.xpm

# 设置中文支持的字体文件
fontfile /boot/grub/fonts

password=xxx

title ############################################
clear
title # GRUB-DOS&WinPE U盘演示 —— By 2007.11 #
clear
title ############################################
clear

title 启动 DOS/Windows 95/98/Me 系统
find --set-root (fd0)/io.sys
chainloader (fd0)/io.sys

title Map --Mem方式 启动 MS-DOS7.1 工具盘
map --mem /boot/msdos.img (fd0)
map --hook
root (fd0)
chainloader +1
boot

title Map --Mem (切断 A20) 方式 启动 MS-DOS7.1 工具盘
map --mem /boot/msdos.img (fd0)
map --hook
chainloader --disable-a20 (fd0)+1
rootnoverify (fd0)

title MemDisk方式 启动 MS-DOS7.1 工具盘
kernel /boot/grub/memdisk c=80 h=2 s=36 floppy
initrd /boot/msdos.img
boot

title 从光盘启动
cdrom --init
map --hook
chainloader (cd0)
boot

title 从硬盘启动
root (hd0,0)
chainloader +1

title 重新启动
reboot

title 关闭计算机
halt

title 进入Grub4Dos命令行提示符方式
commandline
=======================================================

这一项中
title 启动 DOS/Windows 95/98/Me 系统
find --set-root (fd0)/io.sys
chainloader (fd0)/io.sys

/io.sys前必须加上(fd0),不加则不能进入DOS状态。

如果这样
find --set-root /io.sys
chainloader /io.sys
则显示:
Booting 启动 DOS/Windows 95/98/Me 系统

(hd0,0)
Filesystem type is fat,partition type 0xb
chainloader /io.sys

Error 14:Invalid or unsupported executable format
Press any key to continue...

另外这样的话
title 启动 DOS/Windows 95/98/Me 系统
chainloader (fd0)+1
rootnoverify (fd0)

也进不到DOS状态,和重起的效果差不多。

Last edited by wangjf on 2007-11-27 at 09:55 AM ]

作者: 不点     时间: 2007-11-10 09:58
find --set-root (fd0)/io.sys <------ 这句是错的。应该是:
find --set-root /io.sys


chainloader /io.sys

Error 14:Invalid or unsupported executable format
Press any key to continue...


你的 io.sys 不是微软的,或者遭到了病毒的破坏。DOS 6.22 之前的 IO.SYS 是不行的,必须是 win95 以后的 io.sys 才行。


USB-ZIP有两种选择:USB-ZIP(32)和USB-ZIP(63)我不知道这两种格式有什么区别。
在我这里格成USB-ZIP(32)可以正常启动进入DOS状态,USB-ZIP(63)方式则启动失败。
或则用其他的U盘格式化工具,只要U盘格式化后能够启动DOS状态就行。


依我来看,32 和 63 表示“每磁道的扇区数”。一般用 S 来表示“每磁道的扇区数”。这是个很敏感的参数。如果这个参数与主板 BIOS 认定的这个磁盘的参数不同,那么你就无法启动 DOS。

因此,可以推测,你的主板把你的 U 盘认成了 S=32。你用 S=63 的 FAT 文件系统,是无法启动 DOS 的。

但是,如果你有兴趣,并且愿意为 GRUB4DOS 的新功能做测试,你正好可以试试 S=63 的 U 盘是否可以启动 GRLDR。方法是这样的:

在别的机器上把你的 U 盘格式化为硬盘,里面只有一个 FAT16/32 的文件系统,并且让“每道扇区数”保持为 63,也就是说,故意做成与你的主板严重不符。然后用 bootlace 把 GRLDR 的引导扇区写入这个 U 盘。这样一来,这个 U 盘就变成“硬盘、软盘”双重格式了,就是说,它即可以作软盘,也可以做硬盘。当然最后不要忘了把 grldr 放在 U 盘的根目录。

好了,你把这个“双重”格式的 U 盘放在你的机器上(意思是把它当做软盘启动),看看它能否启动到 grub 环境。无论成功或失败,报告其结果。

作者: wangjf     时间: 2007-11-10 11:14
谢谢不点的解释。
我用的是Wengier修改过的IO.SYS(7.10)见附件里的,今天试试MS原版的
我这里用不同的电脑不太方便,那也尽量试试。USB-ZIP(32)和USB-ZIP(63)不同的情况。另外我的BIOS里还有USB-FDD,USB-HDD的选项。这些能够进行你需要的测试吗?如果可以,你给个方案。

Last edited by wangjf on 2007-11-10 at 11:20 AM ]
附件 1: IO.zip (2007-11-10 11:19, 75.74 KiB,下载次数: 8)

作者: wangjf     时间: 2007-11-10 12:58
刚才用WIN98SE原版的IO.SYS、MSDOS.SYS和COMMAND.COM测试USB-ZIP(32)启动
find --set-root /io.sys
chainloader /io.sys
这样还是无法进入DOS状态。换成
find --set-root (fd0)/io.sys
chainloader (fd0)/io.sys
这样则成功。

我想这是不是和USB-ZIP启动的方式有关呢,因为以USB-ZIP方式启动后的U盘DOS提示符状态显示是A:盘符,而以USB-HDD方式启动的话,DOS提示符状态显示是C:盘符.
附件 1: win98se-IO.zip (2007-11-10 12:58, 160.72 KiB,下载次数: 9)

作者: 不点     时间: 2007-11-10 17:29
没有目的的胡乱试验是不行的。你必须熟悉了grub4dos,掌握了它的基本操作技巧才可以进一步测试。

find --set-root (fd0)/io.sys <------ 这一句是错误的。

如果你继续犯这样的错误,表示你对于 grub4dos 很生疏,你还是先熟练使用半年到一年之后,再来帮忙比较好。


刚才用WIN98SE原版的IO.SYS、MSDOS.SYS和COMMAND.COM测试USB-ZIP(32)启动
find --set-root /io.sys
chainloader /io.sys
这样还是无法进入DOS状态。


当你熟练掌握 grub4dos 的基本用法之后,你自己应该可以找到问题的症结在哪里。到那时,你就能够确定究竟是你使用方法的不当造成的,还是 grub4dos 的 bug 所造成的,从而提供真正有价值的 bug 报告。


另外我的BIOS里还有USB-FDD,USB-HDD的选项。这些能够进行你需要的测试吗?如果可以,你给个方案。


当然可以。只是你不要急于测试。如上所说,你还是先学用 grub4dos 再说。

一个“硬盘、软盘双重格式”的 U 盘,无论在 USB-ZIP, USB-FDD, USB-HDD 下,都可以启动 GRLDR。目前我们正在提高 grub4dos 的适应能力,使得在主板 BIOS 的 CHS 几何参数完全扭曲的情况下也能顺利启动 GRLDR。

不要用非微软的工具来制作 U 盘启动盘。必须用微软的 FDISK,FORMAT,SYS 等工具,结合 grub4dos 的工具(例如 bootlace, grldr 等),这样制作的 GRLDR 引导盘才有效。其它方法制作的都不保证有效,而且出了问题也无权报告 BUG。

作者: wangjf     时间: 2007-11-10 20:01
还要熟悉半年到一年,<img src="images/smilies/face-sad.png" align="absmiddle" border="0"> 不点打击的不小呀。既然这样看来还要好好潜水。<img src="images/smilies/face-laugh.png" align="absmiddle" border="0">多多的利用Google。
我获得的GRUB4DOS的帮助基本上是lianjiang写的教程。虽然教程写的很好了,可是有些细节上的内容还是不容易获得帮助。再加上我的英文水平比较烂。读GRUB4DOS的英文说明就更难以明白了。现在GRUB4DOS对于新手来说,一份详细的使用说明很重要。GRUB4DOS在这方面现在还比较欠缺。
写好GRUB4DOS的使用说明也不太容易,作者要对GRUB4DOS很了解,很简单的操作也要说明清楚,因为一个简单的操作对于新手有时侯难以理解。而作者自己就会觉得比较罗嗦。GRUB4DOS更广泛的应用还需要努力呀。就说这么多吧,祝GRUB4DOS越来越完善。我继续潜水。<img src="images/smilies/face-laugh.png" align="absmiddle" border="0">

Last edited by wangjf on 2007-11-10 at 08:05 PM ]

作者: barton     时间: 2007-11-11 08:34
可以看看gnu grub相关的资料,补充学习

作者: Sense     时间: 2007-11-12 09:36
以前比较过USB-ZIP和USB-HDD格式的区别。USB-ZIP为每磁道32扇区(可能是iomega ZIP drive定义成这样吧),启动数据存放于32扇区;USB-HDD为每磁道63扇区(与硬盘一样),启动数据在63扇区。
老主板(两年前的,或者845以前的芯片组)对ZIP格式支持比较好,新主板对HDD格式支持比较好。而且很多新主板都没有USB-ZIP启动选项了,只支持USB-HDD。
另外,U盘容量超过256MB后如果格成USB-ZIP,在很多主板上会出问题,如无法启动、可以启动但无法读取256MB之后的数据等。这可能跟iomega的第一代ZIP驱动器最大容量250MB有关,BIOS代码延用了以前的数据。
所以为了最大兼容于现在的大容量U盘和新主板,建议格式化为USB-HDD格式。

作者: fujianabc     时间: 2007-11-12 18:47
usb-zip标准比较混乱,zip软驱没流行开来,这个比较混乱的标准却留给了现在的u盘。
usb-hdd,usb-cd,usb-fdd都比usb-zip兼容性要好

作者: fujianabc     时间: 2007-11-12 18:53
Originally posted by Sense at 2007-11-12 09:36 AM:
以前比较过USB-ZIP和USB-HDD格式的区别。USB-ZIP为每磁道32扇区(可能是iomega ZIP drive定义成这样吧),启动数据存放于32扇区;USB-HDD为每磁道63扇区(与硬盘一 ...

usb-hdd不是你想格式化就格式化得了的,usb-hdd在xp下认成本地磁盘,usb-zip认成可移动磁盘。
两者差别不仅在于32/64扇区之间的差别,而与u盘本身的芯片有关,要改一般只有量产工具才能改。
我以前有个朗科的u盘,自己提供了一个工具可以选择usb-hdd或usb-zip,改完之后,u盘中数据没有任何改变,启动扇区数也未变,但xp中就变了。

Last edited by fujianabc on 2007-11-12 at 06:54 PM ]

作者: loveheartrain     时间: 2007-11-12 22:20    标题: 我用的是DSPTW.EXE在WIN XP下直接写入U盘实现的启动GRUB
我用的是DSPTW.EXE在WIN XP下直接写入U盘实现的启动GRUB,
最初版本是0.40,用WINPM 查看分区起始扇区只要不是在0 柱面0磁头1扇区即可,就是说原来又主引导纪录MBR,否则需在用分区工具或U盘自带格式化工具重新分区格式化.我用的分别为43扇区的128MB和63扇区的1GB的安装,都能进入GRUB.
我用的是批处理文件.BAT
内容如下
@echo off
color 0A
:mmbr
title MMBR 重建MBR!
set hd=
cls
echo 请选择要重建的硬盘编号。
echo 0 1 2 3 4 5
echo 输入数字后回车执行!
set /p hd="">nul
if not %hd%'==0' if not %hd%'==1' if not %hd%'==2' if not %hd%'==3' if not %hd%'==4' if not %hd%'==5' goto mmbr
if %hd%'==' goto mmbr

:mmbr1
set h=
ECHO 你选择的硬盘编号是%hd%!以下是该硬盘的分区情况!
dsptw %hd% /l /y
ECHO MMBR 开始写入MBR!
echo 请选择所要的操作。
echo 恢复输入Y 其它键退出
echo 输入后回车执行!
set /p h="">nul
if not %h%'==y' if not %h%'==Y' goto exit
if %h%'==' goto exit

del hmbr.bin
del %hd%mbr.bin
dsptw %hd% 0 1 /s %hd%mbr.bin /y
type %hd%mbr.bin|find /i "m2" >nul
if errorlevel 1 goto setup
del %hd%mbr.bin
goto hmbr

:setup
echo 正在写入新的MBR以便实现GRUB启动。
echo 安装前将清除0柱面0磁头除1扇区与63扇区的数据。
echo 安装前将备分原MBR到0柱面0磁头2扇区和23扇区。
echo 安装前将备分原MBR到D:\bf\%hd%MBR.BIN。
pause
copy %hd%mbr.bin D:\bf\
del %hd%mbr.bin
dsptw %hd% 2 21 /e /y
dsptw %hd% 0 1 /D %hd% 1 /y
dsptw %hd% 0 1 /D %hd% 22 /y
dsptw %hd% 0 0 /m /hex:EB0601026D32FFFFE800005BC1EB048C /Y
dsptw %hd% 0 16 /m /hex:C801C38EDB1E6A19CBBB0018B800208E /Y
dsptw %hd% 0 32 /m /hex:D0BC009031C951BA800052B408F9CD13 /Y
dsptw %hd% 0 48 /m /hex:5A581607720580E13F750F8ED83A0675 /Y
dsptw %hd% 0 64 /m /hex:04F97417BE6201E9890091B40289C531 /Y
dsptw %hd% 0 80 /m /hex:DB4152F9CD135A7202F6DC0E1F9C31F6 /Y
dsptw %hd% 0 96 /m /hex:31FFB9DF00FCF3A5166A6CCBBBFC1766 /Y
dsptw %hd% 0 112 /m /hex:B8475255AA161F66390775549D723C0E /Y
dsptw %hd% 0 128 /m /hex:1FAD88E6AD89C1243F741F29E848F6D8 /Y
dsptw %hd% 0 144 /m /hex:BF0300B40268000D0731DB60CD136173 /Y
dsptw %hd% 0 160 /m /hex:0A6031C0CD13614F75E9F9E8CA097728 /Y
dsptw %hd% 0 176 /m /hex:83C60C81FEFE0172C67715BEB231B408 /Y
dsptw %hd% 0 192 /m /hex:9952CD135872099991243F740341EBC0 /Y
dsptw %hd% 0 208 /m /hex:BE4C01E86F00EBFE1E0666608CC3FA0F /Y
dsptw %hd% 0 224 /m /hex:0116600A0F20C00C010F22C0BE08008E /Y
dsptw %hd% 0 240 /m /hex:C66631F66631FF66B900240000FCF366 /Y
dsptw %hd% 0 256 /m /hex:A5BE10008EC624FE0F22C08EC3B90002 /Y
dsptw %hd% 0 272 /m /hex:31F656BF007C57061F5607FCF3A5BF10 /Y
dsptw %hd% 0 288 /m /hex:7EBE000AB91E00FCF3662EA5061FFBCB /Y
dsptw %hd% 0 304 /m /hex:FAB800208ED0BCDC8FFB6661071FE96F /Y
dsptw %hd% 0 320 /m /hex:FFB40ECD102EAC3C0075F6C30D0A4D69 /Y
dsptw %hd% 0 336 /m /hex:7373696E67204D42522D68656C706572 /Y
dsptw %hd% 0 352 /m /hex:2E000D0A42756767792042494F532100 /Y
dsptw %hd% 0 368 /m /hex:627920617879204C6F76652048656172 /Y
dsptw %hd% 0 384 /m /hex:74205261696E20766572323030373132 /Y
dsptw %hd% 0 400 /m /hex:32372051513A37313231363731360000 /Y
dsptw %hd% 2 10 /R S.bin /Y
if errorlevel 1 goto err
echo 安装完成!
echo 进入GRUB热键为M,提示信息延时2秒。
echo 以下是重建后的MBR内容
pause
dsptw %hd% 0 1 /l /p /a
goto exit

:hmbr
set h=
cls
echo 安装出错!可能已经安装过,手动恢复请运行hmbr.bat
echo 请选择所要的操作。
echo 恢复输入Y 其它键退出
echo 输入后回车执行!
set /p h="">nul
if not %h%'==y' if not %h%'==Y' goto exit
if %h%'==' goto exit
goto h%h%

:hy
:mbr2
echo 使用第2扇区恢复!
del hmbr.bin
dsptw %hd% 1 1 /s hmbr.bin /y
type hmbr.bin|find /i "system" >nul
if errorlevel 1 goto mbr23
dsptw %hd% 0 1 /r hmbr.bin /y
if errorlevel 1 goto mbr23
goto ok

:mbr23
echo 使用第2扇区恢复失败!
echo 使用第23扇区恢复!
del hmbr.bin
dsptw %hd% 22 1 /s hmbr.bin /y
type hmbr.bin|find /i "system" >nul
if errorlevel 1 goto err
dsptw %hd% 0 1 /r hmbr.bin /y
if errorlevel 1 goto err

:ok
dsptw %hd% 2 21 /e /y
del hmbr.bin
echo ok! 恢复完成。
echo 以下是重建后的MBR内容
pause
dsptw %hd% 0 1 /l /p /a

goto exit

:err
del hmbr.bin
echo mbr err! 没有恢复成功!
echo Run MBR.bat。 请运行MBR32.bat来重建MBR。
echo 或者使用dsptw %hd% 0 1 /r mbr.bin /y命令
echo 来恢复MBR。安装前已经备分到D:\bf\%hd%MBR.BIN

:exit
pause
重建MBR内容即MBR32.BAT
@echo off
color 0A

:mmbr
title MMBR 重建MBR!
set hd=
cls
echo 请选择要重建的硬盘编号。
echo 0 1 2 3 4 5
echo 输入数字后回车执行!
set /p hd="">nul
if not %hd%'==0' if not %hd%'==1' if not %hd%'==2' if not %hd%'==3' if not %hd%'==4' if not %hd%'==5' goto mmbr
if %hd%'==' goto mmbr

:mmbr1
set h=
ECHO 你选择的硬盘编号是%hd%!以下是该硬盘的分区情况!
dsptw %hd% /l /y
ECHO MMBR 开始恢复MBR!
echo 请选择所要的操作。
echo 恢复输入Y 其它键退出
echo 输入后回车执行!
set /p h="">nul
if not %h%'==y' if not %h%'==Y' goto exit
if %h%'==' goto exit
dsptw %hd% 0 0 /m /hex:33C08ED0BC007CFB5007501FFC50BE00 /Y
if errorlevel 1 goto err
dsptw %hd% 0 16 /m /hex:7CBF0006B90002F3A4BF1E0657CB33DB /Y
dsptw %hd% 0 32 /m /hex:33D2BEBE07B104F6048074038BD64383 /Y
dsptw %hd% 0 48 /m /hex:C610E2F383FB017409BEC400B91700EB /Y
dsptw %hd% 0 64 /m /hex:719052B441B280BBAA55CD135A81FB55 /Y
dsptw %hd% 0 80 /m /hex:AA7533F6C101742EB80042BEAD07B110 /Y
dsptw %hd% 0 96 /m /hex:C6040046E2FABEAD078BFAC60410C644 /Y
dsptw %hd% 0 112 /m /hex:0201C74404007C8B5D08895C088B5D0A /Y
dsptw %hd% 0 128 /m /hex:895C0AEB0F90B80102BB007C8BF28B4C /Y
dsptw %hd% 0 144 /m /hex:028A7401B280CD13BEFE7D813C55AA74 /Y
dsptw %hd% 0 160 /m /hex:09BEDB00B91800EB099033C050B8007C /Y
dsptw %hd% 0 176 /m /hex:50CB81C60006ACBB0700B40ECD10E2F6 /Y
dsptw %hd% 0 192 /m /hex:B10FE2FC496E76616C69642070617274 /Y
dsptw %hd% 0 208 /m /hex:6974696F6E207461626C654D69737369 /Y
dsptw %hd% 0 224 /m /hex:6E67206F7065726174696E6720737973 /Y
dsptw %hd% 0 240 /m /hex:74656D004D617374657220426F6F7420 /Y
dsptw %hd% 0 256 /m /hex:5265636F72642057726F746520202120 /Y
dsptw %hd% 0 272 /m /hex:627920617879204C6F76652048656172 /Y
dsptw %hd% 0 288 /m /hex:74205261696E20766572323030373132 /Y
dsptw %hd% 0 304 /m /hex:32372051513A37313231363731360000 /Y
dsptw %hd% 0 320 /m /hex:00000000000000000000000000000000 /Y
dsptw %hd% 0 336 /m /hex:00000000000000000000000000000000 /Y
dsptw %hd% 0 352 /m /hex:00000000000000000000000000000000 /Y
dsptw %hd% 0 368 /m /hex:00000000000000000000000000000000 /Y
dsptw %hd% 0 384 /m /hex:00000000000000000000000000000000 /Y
dsptw %hd% 0 400 /m /hex:00000000000000000000000000000000 /Y
dsptw %hd% 0 416 /m /hex:00000000000000000000000000000000 /Y
dsptw %hd% 0 432 /m /hex:00000000000000000000000000008001 /Y
dsptw %hd% 1 29 /e /y
dsptw %hd% 0 1 /D %hd% 1 /y
dsptw %hd% 0 1 /D %hd% 22 /y
echo 重建MBR完成!
echo 以下是重建后的MBR内容
pause
dsptw %hd% 0 1 /l /p /a
goto exit

:err
echo 重建MBR失败!
goto exit

:exit
pause

Last edited by loveheartrain on 2007-11-12 at 10:30 PM ]