yjqd 发表于 2017-5-11 19:46:34

请解读一下GRUB4DOS启动XP故障恢复控制台的菜单中的write命令

XP系统中安装了故障恢复控制台

boot.ini中故障恢复控制台启动项如下
C:\CMDCONS\BOOTSECT.DAT="Microsoft Windows XP Recovery Console" /cmdcons

(BOOTSECT.DAT其实就是从C分区提取的分区引导扇区得到的文件,被修改成搜索cmdldr)

在它下面增加了
C:\GRLDR="GRUB4DOS启动故障恢复控制台"


启动计算机,选择 Microsoft Windows XP Recovery Console,启动了故障恢复控制台
又启动计算机,选择 GRUB4DOS启动故障恢复控制台
在命令行中输入:
chainloader /cmdldr
boot

不能启动故障恢复控制台,提示txtsetup.sif无效或丢失


看了fujianabc的帖子
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=32602
用grub4dos加载setupldr.bin时,要加两句特殊语句

title cmdcons
chainloader (hd0,0)/setupldr.bin
write 0x7C03 0x63646D63
write 0x7C07 0x00736E6F

于是在命令行中输入:
chainloader /cmdldr
write 0x7C03 0x63646D63
write 0x7C07 0x00736E6F
boot

就成功启动了故障恢复控制台

下面的命令也可以:

chainloader /cmdcons/setupldr.bin
write 0x7C03 0x63646D63
write 0x7C07 0x00736E6F
boot

(上面的两个命令也可启动U盘中的故障恢复控制台)

write 0x7C03 0x63646D63
write 0x7C07 0x00736E6F
这两句是什么意思



另外:

如果加载BOOTSECT.DAT,也不能启动故障恢复控制台,提示txtsetup.sif无效或丢失,命令如下:

chainloader /cmdcons/BOOTSECT.DAT
write 0x7C03 0x63646D63
write 0x7C07 0x00736E6F
boot



chainloader /cmdcons/BOOTSECT.DAT
boot





不点 发表于 2017-5-11 21:29:46

write 0x7C03 0x63646D63
write 0x7C07 0x00736E6F
这两句是什么意思

0x63646D63 就是 cmdc

0x00736E6F 就是 ons\0

合起来就是 cmdcons\0。

用不着解释为什么吧?启动微软的东西,能启动就已经很不错了,要再去问个 “为什么”,是不是有点“贪”?

求道者 发表于 2017-5-11 21:46:08

难道有一天还能直接引导winload.exe?{:3_141:}

yjqd 发表于 2017-5-11 21:50:54

不点 发表于 2017-5-11 21:29
0x63646D63 就是 cmdc

0x00736E6F 就是 ons\0


谢谢回复

原来是写入cmdcons\0字符串,相当于指定了启动路径,就能启动故障恢复控制台了

yjqd 发表于 2017-5-15 20:01:47

不点 发表于 2017-5-11 21:29
0x63646D63 就是 cmdc

0x00736E6F 就是 ons\0


今天把故障恢复控制台的cmldr换成GRLDR,重启计算机,选择 Microsoft Windows XP Recovery Console,启动了GRLDR,在命令行输入:

cat --hex (md)62+1

执行结果可看到偏移位置0x7C03处开始就有cmdcons字符

原来boot.ini中故障恢复控制台启动项的参数/cmdcons作在计算机启动过程中会在内存的0x7C03处写入了cmdcons字符
页: [1]
查看完整版本: 请解读一下GRUB4DOS启动XP故障恢复控制台的菜单中的write命令