|
Bootsect for grub4dos v1.0 by sgw888 20110507
首先感谢chenall sratlf zhaohj 的帮助
BOOTSECT 初步设计测试完成.
请chenall sratlf zhaohj 帮忙检查测试BUG以及修正存在的语法错误。
我已初步测试,未发现问题。但一个人力量毕竟有限。
2011-6-14 更新日志: 菜单版BUG修正. 上一版本中在选择硬盘界面,如果取消当前的选择,会直接返回主菜单,而不是返回硬盘选择界面,现已修正,在核心执行部分,提示是否继续执行操作时,选择否仍会继续执行,现已修正。 上传两个附件。 附件一为 菜单版修正。 附件二为演示ISO。方便菜鸟测试。其中有UNIFONT 跟中文字库,分别有中英文显示的BOOTSECT,另外还有磁头数检查与修正程序。对于喜欢中文显示的可以选择切换到中文菜单,提示为中文显示。
2011-6-3 更新日志: 在zhaohj的帮助下,BOOTSECT 菜单版已完工,请大家帮忙测试反馈。菜单版如果没有BUG,那对于菜鸟来说应该有帮助,可以不用进入PE而进行引导代码的刷新操作了。
2011-5-26 更新日志: 在CHENALL 上次的优化之后,根据C大的建议,增加了清除1-62扇区的判断代码,防止破坏用户数据.增加安全性.如果此版没有BUG,会停止命令行版的更新. 包括代码优化.
如果不出意外,此次更新为 命令行版的终结版了. 此次上传两个附件. 一个附件是 BOOTSECT 单文件封装版. 另一个附件是ISO映像,其中包含了 BOOTSECT 单文件版,另外,其中还有一个 HEADCHK 活动分区磁头数检查与修正的程序.
2011-5-22 更新使用帮助:
bootsect 因为是基于GRUB4DOS的,所以必须在GRUB4DOS的环境下才可以使用。它就是一个批处理,跟DOS下的批处理类似。因为GRUB4DOS 本身的内部命令就很强大,所以可以直接利用GRUB4DOS的内部命令来进行扇区读写的操作,更新引导代码无非就是写扇区的操作。有人提到写DOS下的,以我的水平显然做不到,我个人认为根本没有必要。启动GRUB4DOS容易,还是启动DOS更容易??首先GRUB4DOS它是一个引导器 menu.lst 是它的菜单,在普通的情形下,按 c 键可以进入GRUB4DOS的控制台。 bootsect 就是在它的控制台模式下运行的一个批处理。你可以理解为XP的CMD。 bootsect 是命令行模式的。它不是菜单模式的。所以,一定要进入GRUB4DOS的命令行才可以运行。
如果BOOTSECT 存放于当前根目录,运行方法是: /bootsect 如果是光盘启动 运行方法是 /BOOTSECT
默认的GRUB4DOS运行外部命令的存放位置是 (bd)/boot/grub/ 如果你把BOOTSECT 存放于该目录,那么无需指定路径,可以直接 bootsect
更新主引导示例:
bootsect /nt52 /mbr
bootsect /nt60 /mbr
bootsect /nt52 /mbr (hd0)
bootsect /nt52 /mbr (hd1)
bootsect /nt52 /mbr (hd2)
更新DBR示例:
bootsect /nt52 sys sys 指的是活动分区
bootsect /nt60 sys
bootsect /nt52 sys /mbr 同时更新MBR
bootsect /nt52 (hd0,0) 更新 (hd0,0) 的DBR为 NT52
清除扇区示例:
bootsect clear 清除 (hd0) 1-62
bootsect clear (hd1) 清除 (hd1) 1-62
注意: 如果是从U盘引导的GRUB4DOS , U盘可能被认为是 (hd0) ,如果想对硬盘进行操作,一种方法是 手动指定 分区或者磁盘,比如
bootsect /nt52 (hd1,0)
bootsect /nt60 (hd2,0)
bootsect clear (hd1)
bootsect /nt52 /mbr (hd1) 不能省略参数,并且不能使用 sys 参数
另一种方法是 先进行磁盘交换。
map (hd1) (hd0)
map (hd0) (hd1)
map --hook
然后再进行操作。
2011-5-14 更新日志: 几处BUG修正。 代码优化微调。如果测试没有问题,不再更新。不打算做成菜单版的了。会用GRUB4DOS 就会用这个程序。 毕竟这个是救急用的,也是为了方便一部分人。菜鸟完全可以在PE下用BOOTICE。 或者用微软的BOOTSECT。如果对GRUB4DOS都不熟悉,还是不建议用了,怕出问题。
上传一个ISO映像。ISO映像中BOOT/GRUB中的BOOTSECT 就是封装过的了。可以直接提取。
2011-5-9 更新日志: 增加刷新FAT32 分区 MSDOS引导代码的功能,可以启动IO.SYS 。主要是为了自己方便。
修正: 当活动分区为扩展分区或者是其它未知分区时出现的GRUB4DOS 命令出错提示。
上传 封装版。 使用 jianliulin 大侠的FB工具制作。
2011-05-08 严重BUG修正!
发现NTFS刷新代码部分 有BUG,DD命令使用有误!!! 另外,更新成NT52代码时,如果原来是NT60代码,没有将原来的清除掉。已修正。
FAT32 刷新代码部分问题更大!! 原来以为只是更新DBR扇区就完事了,结果发现,DBR开始的12扇区还有代码。不懂程序代码的悲哀啊,只能是一个扇区一个扇区的去比较。
对于程序出现的BUG,非常报歉。没有认真测试就发布了。还好,我估计大部分人都没有真正去使用跟测试。
请下载的朋友,立刻删除原来的,重新下载新上传的!!!!
程序使用帮助:
以实例说明:
bootsect clear
bootsect clear (hd0)
bootsect clear (hd1)
以上清除指定磁盘 1-62扇区。功能很简单 echo -n > (hd0)1+62
bootsect /nt52 sys /mbr 刷新活动分区的DBR以及磁盘的MBR 引导代码为NT52
bootsect /nt60 sys /mbr 同上,引导代码为 NT60
/mbr 参数为可选
bootsect /nt52 (hd0,0) 更新 (hd0,0) 的DBR代码 NT52
bootsect /nt60 (hd0,0) /mbr 更新 (hd0,0)的DBR代码为NT60 同时更新MBR
bootsect /nt52 /mbr 仅执行MBR更新操作
bootsect /nt52 /mbr (hd1)
以下是牵涉到程序执行的内容:
更新MBR很简单 只要把相应的代码直接写到 硬盘开始的扇区0 只改写从0开始的440个字节就可以了。
更新DBR 需要先判断出是NTFS格式还是FAT32格式。
NTFS分区的标志是DBR扇区 从第四个字节有一个明文的NTFS的标志,如果NTFS被修改,磁盘会无法访问.
FAT32没有跟NTFS一样的标志。但第一个字节必须是0XEB 如果改写,磁盘也无法访问。
从0X52 有一个FAT32 的标志,但改成其它的,并不影响系统(xp) 的正常访问 ,用DISKGEN发现如果该标志被修改,会认为磁盘没有格式化。 这儿采取跟DISKGEN一样的判断标准,如果该处不是FAT32则认为是无法识别的分区格式,程序不执行更新引导代码的操作。
更新FAT32的引导代码,程序改写开始的三个字节 这三个字节为跳转代码 0XEB 0x58 0x90
然后从0x5A 到 0x1FF 全部为程序代码,其实最后两个字节为55AA,一块刷新也不会有问题
NT52 跟NT60的代码占用两个扇区,占用DBR第一个扇区0X5A 至结尾的部分。 还有一部分代码在DBR开始的12扇区。
MSDOS 的FAT32 代码存放于DBR开始的第一个扇区以及DBR 开始的第3个扇区。
FAT32 代码位置是固定的,只是代码的不同。
NTFS 代码除了代码本身的不同,占用的空间也不相同。跟FAT32 一样,开始三个字节为跳转代码。
从0x54 开始为代码部分。 NT52 的NTFS代码占用了3362字节 (0xD22) 也就是从 0x54 一直到代码结束
NT60 也是从 0x54 开始,但代码长度占用 4052 字节.
NTFS跟FAT32的区别是FAT32由于文件系统布局问题,程序代码是不连续的。 而NTFS分区DBR程序代码是连续的。
附件说明: 附件1为 bootsect 跟 bootldr.img 的压缩包.
附件2为 bootsect 的 启动光盘 .
[ 本帖最后由 sgw888 于 2011-6-14 16:35 编辑 ] |
-
-
bootsect.rar
18.4 KB, 下载次数: 250, 下载积分: 无忧币 -2
0508 修正BUG
-
-
bootsect.iso.rar
147.77 KB, 下载次数: 196, 下载积分: 无忧币 -2
0508 修正BUG
-
-
BOOTSECT.rar
18.73 KB, 下载次数: 215, 下载积分: 无忧币 -2
2011-05-09 更新单文件封装版
-
-
bootsect.rar
148.44 KB, 下载次数: 146, 下载积分: 无忧币 -2
2011-5-14 更新
-
-
bootsect.rar
148.4 KB, 下载次数: 206, 下载积分: 无忧币 -2
修正显示BUG
-
-
BOOTSECT单文件封装.rar
19.3 KB, 下载次数: 216, 下载积分: 无忧币 -2
单文件封装版2011-5-26命令行终结
-
-
bootsect.rar
156.7 KB, 下载次数: 192, 下载积分: 无忧币 -2
ISO 启动映像,包含了BOOTSECT 命令行终结
-
-
BOOTSECT.rar
14.91 KB, 下载次数: 134, 下载积分: 无忧币 -2
菜单版初步测试
-
-
BOOTSECT.rar
14.77 KB, 下载次数: 284, 下载积分: 无忧币 -2
菜单版BUG修正
-
-
bootsect.part1.rar
400 KB, 下载次数: 358, 下载积分: 无忧币 -2
ISO演示 附带UTF-8中文显示
-
-
bootsect.part2.rar
94.7 KB, 下载次数: 306, 下载积分: 无忧币 -2
ISO演示,附带磁头数检查与修正程序
|