无忧启动论坛
标题:
GRUB4DOS 可否实现 备份/恢复 MBR 和 PBR 的功能
[打印本页]
作者:
stevenldj
时间:
2011-7-23 16:04
标题:
GRUB4DOS 可否实现 备份/恢复 MBR 和 PBR 的功能
请教各位大侠:
GRUB4DOS 的菜单脚本可否实现 备份/恢复 MBR 和 PBR 的功能(备份/恢复前63个扇区而不触碰分区表部分),还有,可否实现激活分区与取消分区激活的功能?
希望各位大侠指点迷津!
作者:
pz
时间:
2011-7-23 20:43
不要指望GRUB4DOS去完成太多的不可思议的任务,你所要的功能Pauly的“BOOTICE”就可以全部做到。
作者:
chenall
时间:
2011-7-23 20:53
用dd就可以完成备份恢复,不过
1.因为GRUB4DOS不能创建文件,所以你的备份文件必需先创建.
2.你必须对MBR/DBR很熟悉.
激活分区比较简单,如果对你MBR足够熟悉的话,想信你自己就可以做到了.
要不然直接用GRUB4DOS的makeactive (hd0,x)的命令就可以激活了.
另外推荐一个GRUB4DOS版的BOOTSECT
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=193054
作者:
stevenldj
时间:
2011-7-24 12:26
主要是病毒破坏 MBR 的情况比较严重,我想在电脑启动到 GRUB4DOS 的时候自动恢复 MBR 和 PBR ,这样可以进一步减少 mbr 病毒的破坏情况。
当然在 mbr 病毒导致系统无法引导的时候,这种方法就没用了。
我在搜索 MBR 病毒相关帖子的时候,发现有人说将 grub4dos.mbr 写入到 BIOS 中引导 grub4dos 启动文件,这样可以杜绝 MBR 病毒的破坏,可是没有相关的技术资料,而且刷 BIOS 风险太大,不敢尝试。
我之前想过一个办法可以绕过 MBR ,就是通过 PXE 启动 GRUB4DOS,然后再启动 VHD 系统。可是 PXE 启动过程太慢,而且服务端的 tftpd32 在客户机反复启动时,会给同一个 MAC 分配多个 IP 地址,我担心 IP 地址会被占完而导致客户机无法 PXE 启动。
现在想想,整个电脑的安全被一个 MBR 病毒搞的不堪一击,真是无语啊!
作者:
stevenldj
时间:
2011-7-24 15:51
看了一下 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
欢迎光临 无忧启动论坛 (http://wuyou.net/)
Powered by Discuz! X3.3