无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 53849|回复: 165
打印 上一主题 下一主题

09-07-17更新:ramdisk启动故障恢复控制台方法x86/x64,免按R键

[复制链接]
跳转到指定楼层
1#
发表于 2005-7-27 23:43:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
以下方法适用于xp sp2/sp3,2003 sp1/sp2的故障恢复控制台:

1、硬盘安装故障恢复控制台备用
2、对于xp x86的故障恢复控制台用win2003 x86 sp1的ramdisk.sy_替换cmdcons文件夹中的原文件
3、把cmdcons改名成i386,然后制作cmdcons.iso,iso里只需包含i386一个文件夹
4、创建一个文件winnt.sif,内容如下:
  1. [SetupData]
  2. BootDevice = "ramdisk(0)"
  3. BootPath = "\i386"
  4. OsLoadOptions = "/noguiboot /fastdetect /rdexportascd /rdpath=cmdcons.iso"
复制代码
5、在分区根目录中应有以下几个文件:
bootfont.bin,cmdcons.iso,ntdetect.com,setupldr.bin(必须要2003 sp1的setupldr.bin,2003 sp2的加载ramdisk镜像会卡住)
6、用grub/ntldr/bootmgr加载setupldr.bin就能启动ramdisk的故障恢复控制台
如放在启动光盘上,包含文件如下:
winnt.sif
cmdcons.iso
bootfont.bin
i386\ntdetect.com
i386\setupldr.bin
另外,我又试了一下bluecon,只需替换掉原来生成iso的ramdisk.sy_,便可以用同样方法启动。
我发现的一个特点:启动winpe的ramdisk盘符是x:,启动cmdcons/bluecon的ramdisk盘符是C:。

新增:64位的ramdisk故障恢复控制台
x64的ramdisk故障恢复控制台做法基本相同,不同之处:
2、无需替换ramdisk.sys了
3、cmdcons文件夹重命名为amd64
4、winnt.sif内容
  1. [SetupData]
  2. BootDevice = "ramdisk(0)"
  3. BootPath = "\AMD64"
  4. OsLoadOptions = "/noguiboot /fastdetect /rdexportascd /rdpath=cmdcons.iso"
  5. Architecture = "AMD64"
复制代码

在ftp2的fujianabc文件夹中有一个制作好的64位故障恢复控制台,基于中文版2003 sp2 x64,有兴趣的可以玩一下

更新:ramdisk启动故障恢复控制台免按R键的方法
之前的方法制作出来的ramdisk故障恢复控制台在进入之前要按R键,一直觉得不太爽。最近无意间找到了免按R的方法
在winnt.sif中加一行,x86的winnt.sif
  1. [SetupData]
  2. BootDevice = "ramdisk(0)"
  3. BootPath = "\i386"
  4. OsLoadOptions = "/noguiboot /fastdetect /rdexportascd /rdpath=\cmdcons.iso"
  5. SetupSourceDevice = \device\harddisk0\partition1
复制代码

x64的winnt.sif
  1. [SetupData]
  2. BootDevice = "ramdisk(0)"
  3. BootPath = "\AMD64"
  4. OsLoadOptions = "/noguiboot /fastdetect /rdexportascd /rdpath=\cmdcon64.iso"
  5. Architecture = "AMD64"
  6. SetupSourceDevice = \device\harddisk0\partition1
复制代码

用grub4dos加载setupldr.bin时,要加两句特殊语句
  1. title cmdcons
  2. chainloader (hd0,0)/setupldr.bin
  3. write 0x7C03 0x63646D63
  4. write 0x7C07 0x00736E6F
复制代码

如果用ntldr加载setupldr.bin,需要加/cmdcons参数

[ 本帖最后由 fujianabc 于 2009-7-17 19:51 编辑 ]

win2k3sp1.rar

152.96 KB, 下载次数: 640, 下载积分: 无忧币 -2

2003的setupldr.bin和ramdisk.sy_

165#
发表于 2011-4-3 17:00:07 | 只看该作者
好给力的文章,感谢楼主的无私奉献精神,祝楼主清明节快乐!
回复

使用道具 举报

164#
发表于 2010-4-27 17:23:23 | 只看该作者
请教fujianabc:
控制台能不能不占用C盘?
比如把SETUPLDR.BIN改成合并NTDECETE.COM的SETUPLDR.BIN(03sp1),这样就不会找不到NTDECETE.COM。
明明是RAMDISK,为何不是X盘呢?
回复

使用道具 举报

163#
发表于 2010-3-23 13:57:08 | 只看该作者
简单比较了一下,只有TXTSETUP.SIF文件不同,具体在:
原:
[SourceDisksFiles]
bootvid.dll  = 1,,,,,,3_,2,0,0,,1,2
kdcom.dll    = 1,,,,,,3_,2,0,0,,1,2
c_1252.nls   = 1,,,,,,3_,2,0,0,,1,2
c_437.nls    = 1,,,,,,3_,2,0,0,,1,2
l_intl.nls   = 1,,,,,,3_,2,0,0,,1,2
vgaoem.fon   = 1,,,,,,3_,22,0,0,,1,2
acpi.sys     = 1,,,,,,3_,4,1,,,1,4
wmilib.sys   = 1,,,,,,3_,4,0,0,,1,4
atapi.sys    = 1,,,,,,4_,4,0,0,,1,4
disk.sys     = 1,,,,,,6_,4,0,0,,1,4
classpnp.sys = 1,,,,,,6_,4,0,0,,1,4
dmio.sys     = 1,,,,,,4_,4,0,0,,1,4
dmload.sys   = 1,,,,,,4_,4,0,0,,1,4
ftdisk.sys   = 1,,,,,,3_,4,0,0,,1,4
intelide.sys = 1,,,,,,3_,4,1,,,1,4
pciidex.sys  = 1,,,,,,3_,4,0,0,,1,4
isapnp.sys   = 1,,,,,,3_,4,1,,,1,4
...
改成:
[SourceDisksFiles]
bootvid.dll  = 1,,,,,,3_,2,0,0,,1,2
kdcom.dll    = 1,,,,,,3_,2,0,0,,1,2
c_1252.nls   = 1,,,,,,3_,2,0,0,,1,2
c_437.nls    = 1,,,,,,3_,2,0,0,,1,2
l_intl.nls   = 1,,,,,,3_,2,0,0,,1,2
vgaoem.fon   = 1,,,,,,3_,22,0,0,,1,2
acpi.sys     = 100,,,,,,3_,4,1,,,1,4
wmilib.sys   = 1,,,,,,3_,4,0,0,,1,4
atapi.sys    = 100,,,,,,4_,4,0,0,,1,4
disk.sys     = 100,,,,,,5_,4,0,0,,1,4
classpnp.sys = 100,,,,,,5_,4,0,0,,1,4
dmio.sys     = 100,,,,,,4_,4,0,0,,1,4
dmload.sys   = 1,,,,,,4_,4,0,0,,1,4
ftdisk.sys   = 1,,,,,,3_,4,0,0,,1,4
intelide.sys = 100,,,,,,3_,4,1,,,1,4
pciidex.sys  = 100,,,,,,3_,4,0,0,,1,4
isapnp.sys   = 100,,,,,,3_,4,1,,,1,4
...
100即 100 = system32\1025
回复

使用道具 举报

162#
 楼主| 发表于 2010-3-23 09:03:10 | 只看该作者
原帖由 zhaohj 于 2010-3-22 23:20 发表
呵呵,这位老兄没有写做法,有机会咨询他一下。谢谢你!

下载一个看一下里面几个配置文件就知道了
回复

使用道具 举报

161#
发表于 2010-3-22 23:20:59 | 只看该作者
呵呵,这位老兄没有写做法,有机会咨询他一下。谢谢你!
回复

使用道具 举报

160#
 楼主| 发表于 2010-3-22 11:22:15 | 只看该作者
原帖由 zhaohj 于 2010-3-21 23:36 发表
再请教一下,如果非RAMDISK启动,怎么直接分区?
指这个光盘怎么做?

也就是到控制台界面按回车,能直接分区。
直接分区格式化后分区是激活的。
DISKPART无法激活分区吧?

坛里有人作过这个,你可以一下询问一下。

我没研究过这个。
回复

使用道具 举报

159#
发表于 2010-3-21 23:36:31 | 只看该作者
再请教一下,如果非RAMDISK启动,怎么直接分区?
指这个光盘怎么做?

也就是到控制台界面按回车,能直接分区。
直接分区格式化后分区是激活的。
DISKPART无法激活分区吧?

[ 本帖最后由 zhaohj 于 2010-3-21 23:37 编辑 ]
回复

使用道具 举报

158#
 楼主| 发表于 2010-3-19 20:05:07 | 只看该作者
原帖由 zhaohj 于 2010-3-19 17:33 发表
硬盘镜像可以不用firadisk驱动,用grldr map成hd0启动可以完全跳过R。已测试成功。

也对,光盘上的硬盘镜像是连续存储的,可以直接map而不用map --mem。接着由setupldr.bin加载硬盘镜像中的cmdcons镜像
回复

使用道具 举报

157#
发表于 2010-3-19 17:33:09 | 只看该作者
硬盘镜像可以不用firadisk驱动,用grldr map成hd0启动可以完全跳过R。已测试成功。

光盘版除非用grldr做引导,其他感觉没办法。
回复

使用道具 举报

156#
 楼主| 发表于 2010-3-19 12:11:03 | 只看该作者
原帖由 zhaohj 于 2010-3-19 11:33 发表
但光盘版用GRLDR来加载没办法,因为光盘是无法虚拟成硬盘访问的。

可以换一个思路,用制作一个包含firadisk驱动的cmdcons硬盘镜像。用grldr map成hd0启动则可以完全跳过R。
回复

使用道具 举报

155#
发表于 2010-3-19 11:33:00 | 只看该作者
但光盘版用GRLDR来加载没办法,因为光盘是无法虚拟成硬盘访问的。
回复

使用道具 举报

154#
发表于 2010-3-19 10:43:48 | 只看该作者
成功了,做了个win2003控制台的硬盘镜像(CMDCONS.IMG),再GZ压缩,6.3M
用grldr引导,不用按R键。

[ 本帖最后由 zhaohj 于 2010-3-19 11:10 编辑 ]

Snap4.jpg (27.7 KB, 下载次数: 90)

Snap4.jpg
回复

使用道具 举报

153#
 楼主| 发表于 2010-3-18 20:54:44 | 只看该作者
原帖由 zhaohj 于 2010-3-18 18:40 发表
XP控制台可以,进入XP控制台界面不按R键,按回车键,这时可以见到分区情况。

能不能整个硬盘版出来,用GRLDR来MAP这个硬盘镜像来启动控制台,这样可免按R键了。
今天试着做硬盘镜像,启动时出现“txtsetup. ...

我一楼的教程就是硬盘版的。

另外我在ftp2里面放了一个我制作的64位的ramdisk启动的故障恢复控制台(就是你的ftp)

[ 本帖最后由 fujianabc 于 2010-3-18 20:56 编辑 ]
回复

使用道具 举报

152#
发表于 2010-3-18 18:40:34 | 只看该作者
XP控制台可以,进入XP控制台界面不按R键,按回车键,这时可以见到分区情况。

能不能整个硬盘版出来,用GRLDR来MAP这个硬盘镜像来启动控制台,这样可免按R键了。
今天试着做硬盘镜像,启动时出现“txtsetup.sif"文件没找到。
回复

使用道具 举报

151#
 楼主| 发表于 2010-3-18 18:03:21 | 只看该作者
原帖由 zhaohj 于 2010-3-18 15:48 发表
#146楼插光盘的问题已经解决,只要把相应的启动组文件拷贝到启动光盘的根目录就解决了。
但新问题又出来了:
按'ENTER"键后,出现:

我一楼的教程是制作故障恢复控制台的,第二项是安装系统,当然不能用了。
要分区在cmdcons里面运行diskpart来分区。
回复

使用道具 举报

150#
发表于 2010-3-18 15:48:13 | 只看该作者
#146楼插光盘的问题已经解决,只要把相应的启动组文件拷贝到启动光盘的根目录就解决了。
但新问题又出来了:
按'ENTER"键后,出现:

Snap4.jpg (61.14 KB, 下载次数: 120)

Snap4.jpg
回复

使用道具 举报

149#
发表于 2010-3-18 15:17:30 | 只看该作者
这样就方便多了,谢谢楼主啊!非常感谢,以前去控制台就感觉很麻烦的
回复

使用道具 举报

148#
 楼主| 发表于 2010-3-18 15:00:56 | 只看该作者
原帖由 zhaohj 于 2010-3-18 13:22 发表


那光盘引导程序是grldr了。我想这样应该行的。

我做了个03控制台光盘,光盘根目录下是:

[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\i386\"
OsLoadOptions = "/noguiboot /fastdetec ...

你用光盘引导grldr,然后试一下

  1. chainloader (cd)/i386/setupldr.bin
  2. write 0x7C03 0x63646D63
  3. write 0x7C07 0x00736E6F
  4. boot
复制代码

如果还出现要按r的提示,那就说明光盘上的cmdcons无法避免r键了。
回复

使用道具 举报

147#
发表于 2010-3-18 13:34:41 | 只看该作者
我想问题肯定出在CMDCONS.IS_中I386目录下的WINNT.SIF
内容如下:
[data]
msdosinitiated="1"
floppyless="1"
CmdCons="1"
LocalSourceOnCD="1"
AutoPartition="0"
UseSignatures="yes"
InstallDir="\WINDOWS"
EulaComplete="1"
winntupgrade="no"
win9xupgrade="no"
Win32Ver="ece0205"
uniqueid="C:\WINDOWS\LAB"
OriSrc="D:\"
OriTyp="5"
[regionalsettings]
Language=00000804
LanguageGroup=10
[setupparams]
DynamicUpdatesWorkingDir=C:\WINDOWS\setupupd
[unattended]
unused=unused
[userdata]
productid=""
productkey=""
[OobeProxy]
Enable=1
Flags=1
Autodiscovery_Flag=4
回复

使用道具 举报

146#
发表于 2010-3-18 13:22:16 | 只看该作者
原帖由 fujianabc 于 2010-3-18 12:38 发表

光盘上用grub来chainloader setupldr.bin然后两句write行不行?


那光盘引导程序是grldr了。我想这样应该行的。

我做了个03控制台光盘,光盘根目录下是:

[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\i386\"
OsLoadOptions = "/noguiboot /fastdetect /rdexportascd /rdpath=cmdcons.is_"

按R键正常进入控制台。
按ENTER键出现插入光盘,这个如何去掉。按理应该出现分区信息

Snap1.jpg (28.14 KB, 下载次数: 106)

Snap1.jpg

Snap2.jpg (102.23 KB, 下载次数: 104)

Snap2.jpg

Snap3.jpg (70.38 KB, 下载次数: 110)

Snap3.jpg
回复

使用道具 举报

145#
 楼主| 发表于 2010-3-18 12:38:06 | 只看该作者
原帖由 zhaohj 于 2010-3-16 15:39 发表


我测试了,不行。所以望你再研究一下光盘的情况。

光盘上用grub来chainloader setupldr.bin然后两句write行不行?
回复

使用道具 举报

144#
发表于 2010-3-16 15:39:05 | 只看该作者
原帖由 fujianabc 于 2010-3-16 14:58 发表

那你试试看,我没试过。


我测试了,不行。所以望你再研究一下光盘的情况。
回复

使用道具 举报

143#
 楼主| 发表于 2010-3-16 14:58:00 | 只看该作者
原帖由 zhaohj 于 2010-3-16 14:51 发表
有点不明白,难道chainloader (0xff)就不执行setupldr.bin了吗?
看光盘的引导文件就知道,光盘引导后还是执行setupldr.bin的。
光盘引导--setupldr.bin--winnt.sif-->

那你试试看,我没试过。
回复

使用道具 举报

142#
发表于 2010-3-16 14:51:59 | 只看该作者
有点不明白,难道chainloader (0xff)就不执行setupldr.bin了吗?
看光盘的引导文件就知道,光盘引导后还是执行setupldr.bin的。
光盘引导--setupldr.bin--winnt.sif-->

Snap1.jpg (57.34 KB, 下载次数: 113)

Snap1.jpg
回复

使用道具 举报

141#
 楼主| 发表于 2010-3-16 09:25:05 | 只看该作者
原帖由 zhaohj 于 2010-3-15 22:34 发表


那就是说光盘直接启动是无法免按R键的。

如果用grldr来MAP就行吗?
title cmdcons
map --mem /cmdcons.iso (oxff)
map --hook
chainloader (0xff)
write 0x7C03 0x63646D63
write 0x7C07 0x00736 ...

你不能chainloader 0xff,

你一定要chainloader setupldr.bin才能用后面两句write命令
回复

使用道具 举报

140#
发表于 2010-3-15 22:34:28 | 只看该作者
原帖由 fujianabc 于 2010-3-15 14:53 发表

免按r关键就是加载setupldr.bin时的/cmdcons参数。

不知你使用什么程序加载setupldr.bin的?


那就是说光盘直接启动是无法免按R键的。

如果用grldr来MAP就行吗?
title cmdcons
map --mem /cmdcons.iso (oxff)
map --hook
chainloader (0xff)
write 0x7C03 0x63646D63
write 0x7C07 0x00736E6F
boot
回复

使用道具 举报

139#
 楼主| 发表于 2010-3-15 14:53:39 | 只看该作者
原帖由 zhaohj 于 2010-3-15 13:53 发表
无法免按R键,请指教!
而且控制台盘符是C:

免按r关键就是加载setupldr.bin时的/cmdcons参数。

不知你使用什么程序加载setupldr.bin的?
回复

使用道具 举报

138#
发表于 2010-3-15 13:53:07 | 只看该作者
问下fujianabc,win2003控制台,我把cmdcons.iso压缩了成cmdcons.is_
winnt.sif:
[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\i386\"
OsLoadOptions = "/noguiboot /fastdetect /rdexportascd /rdpath=\cmdcons.is_"
SetupSourceDevice = \device\harddisk0\partition1

无法免按R键,请指教!
而且控制台盘符是C:

[ 本帖最后由 zhaohj 于 2010-3-15 13:57 编辑 ]

Snap1.jpg (102.29 KB, 下载次数: 117)

Snap1.jpg

Snap2.jpg (30.27 KB, 下载次数: 124)

Snap2.jpg
回复

使用道具 举报

137#
发表于 2009-8-20 13:08:02 | 只看该作者

还以为只要这个就可以建立sdi镜像了那
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-1-12 06:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表