|
5#
楼主 |
发表于 2011-7-24 15:51:15
|
只看该作者
看了一下 GRUB4DOS 的帮助文档,下面的代码可以实现我的要求,不过很简陋,没有安全检测,但在某些特定的环境下还是可以用的(比如只有一块硬盘,4个主分区,没有扩展分区,分区都是 NTFS 格式)
先在 C 盘的 Boot 目录中存放一个 128KB 的 Main.mbr 文件用来备份 mbr
# 备份 MBR:
dd if=(hd0) of=(hd0,0)/boot/main.mbr bs=512 c=63 in=0 out=0
# 恢复 MBR:
dd if=(hd0,0)/boot/main.mbr of=(hd0) bs=1 c=446 in=0 out=0
dd if=(hd0,0)/boot/main.mbr of=(hd0) bs=1 c=2 in=510 out=510
dd if=(hd0,0)/boot/main.mbr of=(hd0) bs=512 c=62 in=1 out=1
# 恢复分区表:
dd if=(hd0,0)/boot/main.mbr of=(hd0) bs=1 c=64 in=446 out=446
# 激活第一主分区:
write --offset=446 (hd0) \x80
# 激活第二主分区:
write --offset=462 (hd0) \x80
# 激活第三主分区:
write --offset=478 (hd0) \x80
# 激活第四主分区:
write --offset=494 (hd0) \x80
# 取消激活第一主分区:
write --offset=446 (hd0) \x00
# 取消激活第二主分区:
write --offset=462 (hd0) \x00
# 取消激活第三主分区:
write --offset=478 (hd0) \x00
# 取消激活第四主分区:
write --offset=494 (hd0) \x00
# 隐藏第一主分区(NTFS):
write --offset=450 (hd0) \x17
# 隐藏第二主分区(NTFS):
write --offset=466 (hd0) \x17
# 隐藏第三主分区(NTFS):
write --offset=482 (hd0) \x17
# 隐藏第四主分区(NTFS):
write --offset=498 (hd0) \x17
# 显现第一主分区(NTFS):
write --offset=450 (hd0) \x07
# 显现第二主分区(NTFS):
write --offset=466 (hd0) \x07
# 显现第三主分区(NTFS):
write --offset=482 (hd0) \x07
# 显现第四主分区(NTFS):
write --offset=498 (hd0) \x07
|
|