无忧启动论坛

标题: filedisk/imagex联合打造内存版WinXP --更正贴 [打印本页]

作者: jspeng    时间: 2008-6-8 04:24
标题: filedisk/imagex联合打造内存版WinXP --更正贴
去年换了个4G内存的T61,32位winos下内存只有2.99G,使用/PAE参数可以看到3.9GB,但实际还是使用不了,显卡也会有问题,P965主板问题(40位显卡与32位OS之间冲突). 咨询Lenovo支持,一帮小孩也说不出所以然来, 只说Windows 32位本身限制.  无奈,使用64位WINXP,好多驱动没处找去. 华为就单单不提供针对64位XP的EC321的驱动, 唉. 后来还发现了一个问题,就是使用w2k3(我以前一直用的)时,加/PAE参数, T61的965显卡是不能正常工作的. 而系统换成WinXP SP3,则工作正常.

为了使用我那4G内存,绞尽脑汁,最后终于找到一个较好的办法. 首选得非常感谢gavotte和lyh728,最新版的RRAMDISK可以支持PAE,运行reg4g.reg. (即使你不在boot.ini中添加PAE参数,它也能使用).  这就出现的一个有趣的现象: 你设置一个任意容量的RAMDRIVER,它最后实际都会占満整个PAE(3G以部分). 你在系统中根本看不到的1GB内存,作为一个内存盘在实际使用.

好了,闲话少话,言归正传, 如果能有自己合用的内存版windows该多好啊.
天风的RAMXP不太适合日常工作使用,无盘小天使启动后要重新安装一堆驱动,很烦. 怎样免费并且定制自己内存版windows呢, 参考了论坛里相关帖子以及911, 自己定制了一个内存版XP,使用起来非常好用,也非常稳定. 不敢独享,写出来代大家参考.

1. 使用nlite精简Windows XP SP3, 精简组件和驱动,添加SATA驱动 (不要集成显卡/无线等大的驱动,这些可以单独安装). 不会精简?? 提供给你个例子,请参考附件.
2. 使用破解过的winlogon.exe, 在安装完成后用以删除oembios.*等文件
3. 安装windows XP SP3, 安装完成后安装rramdriver最新版, 设置虚拟磁盘,使用PAE模式. 并在虚拟盘上设置页面文件(pagefile.sys),我设置了320M.
4. 安装filedisk,wimfltr老毛桃的wimtool等支持,并拷贝imagex.exe到SYSTEM32下 --filedisk用于以后日常维护主启动映像,wimtool用以维护程序部分,imagex 则用于加载WIM格式的软件包.
5. 安装windows RAMDRIVER驱动:
   安装RAMDISK磁盘控制器 和 RAMDISK磁盘控制器(卷), 要分两次安装.
   安装完成后,设置 HKLM\SYSTEM\CurrentControlSet\Services\Ramdisk\Start=dword:0
6. 安装各种软件, 基本不安装在缺省的'Programs Files'下,而单独安装在C:\Tools下, 但自动启动需要的软件还要安装在'Program Files'下. 如CiscoVPN Client, ZoneAlarm Pro.
7. 清理优化系统, 精简document and settings目录. 删除default users目录,以最大可能减少体积. 并删除多余垃圾文件,使WINDOWS安装目录保持在大约500M-600M, 'Program Files'保持大约100M. Tools则无要求.
   最后,系统盘上将会剩下以下几个目录: Document and Settings, Program Files, Tools, WINDOWS.
8. 将C:\Tools 压缩成WIM格式,单独装载. 并在注册表中添加如下一行:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Tools_Wim"="C:\\WINNT\\SYSTEM32\\imagex.exe /mountrw d:\\tools.wim 1 C:\\Tools"
  然后将C:\Tools目录清空,但目录一定要保留.
9. 使用bartpe启动系统, 使用filedisk定制一个489M文件,命令如下: filedisk /mount 1 D:\ramxp.img 489M Z:
   使用IMDISK也可以. 然后将Z:格式化: format Z:/V:SYSTEM_RAMXP /FS:NTFS /A:1024 /C
   
  如果你的PE系统没有集成filedisk/imdisk, 那就先在PE下拷贝系统盘下那几个目录到别处:
   ROBOCOPY "C:" "D:\TEMP" /E /ZB /COPYALL /R:5 /W:10
10. 使用如下命令拷贝SYSTEM C: 至压缩文件下
   robocopy "C:" "Z:" /E /ZB /COPYALL /R:5 /W:10
   其实只要拷贝那四个目录,根目录下的文件不用拷贝.
   
   如果你没有集成filedisk/imdisk的BartPE,在windows启动后执行如下命令:
   filedisk /mount 1 D:\ramxp.img 489M Z:
   format Z:/V:SYSTEM_RAMXP /FS:NTFS /A:1024 /C
   ROBOCOPY "D:\TEMP" "Z:" /E /ZB /COPYALL /R:5 /W:10
11. 如有必要,压缩drivers.cab,但不要删除.因为USB还要用. 确认压缩盘上有20M可用空间.
12. 在boot.ini中添加如下一行:
ramdisk(0)\WINNT="Windows XP in RAM" /fastdetect /rdpath=multi(0)disk(0)rdisk(0)partition(2)\ramxp.img
启动即可. 启动后系统后发现新硬件(RAMDISK),提示重启,不要重启哟. :)

注意,/minint参数去掉,会直接模拟成C盘,原来C盘隐藏,这也是我最想要的。如果加上/minint,则会指定系统盘至X:

笔者还发现一个特点,以上方法启动XP时,HK_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下启动项不启作用. 所以要修改到HK_LOCAL_MACHINE下方可.

file1.zip

84.11 KB, 下载次数: 297, 下载积分: 无忧币 -2

Generic Antiwpa-2.1.5-WinXP-2k3.zip

51.25 KB, 下载次数: 424, 下载积分: 无忧币 -2

imdisk-filedisk.zip

80.06 KB, 下载次数: 324, 下载积分: 无忧币 -2

wim.zip

70.73 KB, 下载次数: 294, 下载积分: 无忧币 -2


作者: jspeng    时间: 2008-6-8 04:39
附件大小限制太小了,连RRAMDISK及破解过的winlogon.exe也放不上去.
下载最新版本rramdisk: http://bbs.et8.net/bbs/showthread.php?t=906641
破解winlogon.exe,可用antiwpa, 附件中是其最新版本. 但要在英文系统中运行.

内存截图.GIF (52.71 KB, 下载次数: 79)

内存截图.GIF

Generic Antiwpa-2.1.5-WinXP-2k3.zip

51.25 KB, 下载次数: 159, 下载积分: 无忧币 -2


作者: hodgestructure    时间: 2008-6-8 04:51
請問一下這樣做出來的XP,體積多大呢?
用內存啟動,應該不能太大吧,我之前試過,700MB肯定不行。
作者: hodgestructure    时间: 2008-6-8 04:52
看到了,你的 img 是 489M
作者: fujianabc    时间: 2008-6-8 10:30
这个应该有512M的ramdisk限制吧
作者: jspeng    时间: 2008-6-8 15:17
确切的大小限制是500*1000*1000字节,而不是500*1024*1024. 这是M$定的规矩. 实际换算下了,大约是488M, 国外许多论坛说是488M,也有说489M的. 我实际是设置了489M,通过了.
即是说,NTLDR (包括SETUPLDR)支持的最大映像为489M. 如果要突破此大小, 需要破解NTLDR及RAMDRIVER.SYS. 目前好像还没人做.

将映像文件放置D盘,并使用filedisk/imagex的好处:
1. 原系统盘C保持不动, 通过修改boot.ini实现双启动;
2. 在RAMXP启动的情况下,也可以直接修改其启动映像 ramxp.img
3. 在原系统盘C上作相应调整或安装软件, 直接使用filedisk修改ramxp.img, 使用老毛桃的wimtool修改程序.

使用robocopy拷贝系统盘内容至映像文件时,只拷贝几个目录即可.如启动后我的ramxp中C盘内容如图.

directory.gif (68.6 KB, 下载次数: 71)

directory.gif

作者: photoshoop    时间: 2008-6-8 15:34
IMG的最大限制是255M吧,256M的IMG肯定报错。

PE在内存里运行很爽,速度飞起来。

不过作为PE和纯RAM的系统,100M以下,我觉得才有存在的意义。
作者: adatsui    时间: 2008-6-8 20:47
做的好.

即使不做樓主的 ramxp , 也是有東西可以學習的, 生成img的方法及抄文件的方法,都是自動化較高及可靠的.  這數個特點, 較為老外, 有點911味道. 抄文件的方法,在以住造SDI格式PE, 時更是非它不可.

最可惜的是, ms的ramdrive還是太小,512mb實際可用img大小還要拆半. 現在最小的內存都是1G的, 最小是插2條. 該支持4G以上才有意思, 512實在是雞肋.

突破 512 不知 gurb4dos 是否可行, 它的 map --mem 似乎沒限制多小, 也許4G也沒有問題.
樓主可以試試把 你的 xp img 用grub4dos 的模擬硬盤功能掛下 map --mem \ramxp.img (hd0) .... , 看能否成功.  也許會碰上 0x7B .
作者: nn2nn    时间: 2008-6-8 22:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: jspeng    时间: 2008-6-9 07:40
标题: 回复 #8 adatsui 的帖子
感谢adatsui 的提醒.
我以前也尝试用GRUB4DOS载入RAMXP,可总也不成功. 可能当时制作的RAMXP也有问题吧. 昨天我试了一下,终于前进了,可也算是到尽头了.
使用GRUB4DOS载入RAMXP很挑剔, 首先在镜像中添加NTLDR, BOOT.INI,NTDETECT, 还需要将NTLDR,NTDETECT,NTOSKRNL.EXE取消压缩(否则它会报NTLDR已经被压缩), 并且修改了BOOT.INI启动参数.
使用了各种组合指令后,以下命令可以启动:
find --set-root /ramxp.img
map --mem /ramxp.img (hd0)
map --hook
rootnoverify (hd0)
chainloader (hd0)+1
boot

终于看到M$那个启动画面了. 然后报'Autochk failed,找不到autochk.exe',明明有啊. 可接下来就是BOSD了: Stop: C000021a, unknow hardware error.

GRUB载入镜像后,Windows并不能识别这种内存盘,因此出错. 也正如GRUB可以载入Windows安装盘,却不能用来安装.
这使我想起在DOS之家看到的解释,这也是无盘天使的核心所在.  他们的wd.sys就是在GRUB载入镜像后形成内存盘,而WINDOWS能够识别这种内存盘,从而可以运行. 同时这种内存盘是强行加上去的,WINDOWS还要重新扫描所有驱动来匹配它.

但反过来说,即使GRUB可以载入整个1.5G镜像并可以运行,那么可用内存将会减少1.5G. 而现行32位WINDOWS所识别的最大内存限制为3.25G, 可用内存也减少很多了, 至少在运行VMWARE虚拟机会内存紧张一些.

我的C盘占用空间大约为1.8G (一些大型软件安装在D盘), 而WINDOWS目录约为600M,Program Files约为100M, 这样合计约700M,镜像文件启用NTFS压缩, 700M左右的大小是可以放入489M的镜像文件内的. 不知你注意到了没有,我的系统内存了少了约500M,那就是内存盘占去了.

我对目前结果很满意. 毕竟一些程序不是频繁打开关闭(频繁扫描硬盘),就放硬盘上,也省得占内存.
我还用FTOOL将硬盘调成最省电模式,现在硬盘一般情况下根本不转!
作者: jspeng    时间: 2008-6-9 07:49
标题: 回复 #9 nn2nn 的帖子
我以前也确实认为不那么简单,尝试也很多次都不成功.是因为镜像文件太大的缘故. 在看到国外说488M限制后,很容易就成功了! 只是boot.ini的写法还遇到一个小问题.
老大若不信,装个精简的winXP 试试看. 因Intel P965显示在W2K3中不支持PAE模式, 我没试过W2K3.
作者: jspeng    时间: 2008-6-9 08:03
提醒:
在做测试前,请先将原来的系统盘隐藏,或将WINDOWS目录改名,以防调用错误的WINOS导致源系统损坏. 我在用GRUB载入RAMXP时出过好两次这样的问题.
作者: nn2nn    时间: 2008-6-9 12:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: adatsui    时间: 2008-6-9 21:39
标题: 回复 #10 jspeng 的帖子
哪即是沒戲唱了.

xp 只認 3g ram 實在是一大困難. 除非是 img 不以 map --mem 方式, 但卻要 conotig 整個文件, 並且不一定成功.  
而給PE專用的 --unsafe-boot 選項不知有否幫助.
grub 是不是有 參數指定哪些內存用來模擬 ?? 如果在 模擬 多個盤情況下, 像是一個跟一個, 也許最後/前 的一個是第 3-4 g 部份的內存,  把不要的 取銷 (map hdx hdx) 釋放內存, 仍存在的 模擬 是不會走到內存的別處 ? 或是把內存的 最前釋放?
作者: cnn_5454    时间: 2008-6-10 00:19
这个算是半个灌水吧。

关于4GB内存使用的问题。

原因在于硬件和系统两个方面:

1.首先BIOS会映射一些地址给其它设备,比如显卡。声卡等等·····而且会把显存占用到这4GB当中。

如果使用单条4GB,在32位系统下可能出现无法开机的情况

如果是两条2GB,出现的应该是楼主的情况

如果是4条1GB,实际被识别的容量大概是4.0GB-显存容量-1XX左右
作者: zts59    时间: 2008-6-10 10:29
觉得,楼主说的两个工具filedisk/imagex都有更好的工具,VDM和WIMTOOL,为什么还有这两个呢?
作者: jspeng    时间: 2008-6-10 13:05
标题: 回复 #15 cnn_5454 的帖子
老兄高啊,我确实是两条2G的内存条插在一起的. IBM T61原配为2G, 又插了一条上去.
我找了很多资料,包括微软官方文档,都证明在32位windows 系统下,不管是W2K3, XP, VISTA, 系统最大可使用内存为3.25GB甚至更低! 即使添加/PAE参数或使用其他手段使系统能够识别出4GB内存,但实际也还是使用不了! 除非你使用64位系统.  在W2K3 标准版或企业版, 使用/PAE参数可以使用超出4G部分(注意是超出),而3G-4G之间部分也是使不了的.
基于此,干脆将多出那块作RAMDRIVER使用.
作者: jspeng    时间: 2008-6-10 13:14
标题: 回复 #16 zts59 的帖子
VDM和WIMTOOL确实是较好的工具. 但我从VM虚拟机器制作RAMXP时,根本就没成功过. (911上有些使用VMWARE/VMTOOL来制作RAMXP的文档). 但filedisk是命令行方式,简单实用. IMAGEX也同样.
但是,WIMTOOL是不支持命令行方式工作的 (或是我没找到?) ,它是不能被放在开机启动时自动执行的. 请参见添加注册表部分. 我需要的是在开机后自动挂接tools.wim至C:\Tools目录下.
偶是使用命令行方式太久了,包括DOS 3.30--, UNIX, LINUX.还是觉得命令行习惯.
作者: zts59    时间: 2008-6-10 13:40
呵呵,WIMTOOL支持命令行参数的。据测试,因为用VDM可以制作出PE镜像,那么XP的镜像一定可以,因为我的机器只有256M内存,没有办法测试RAMXP的。
作者: fujianabc    时间: 2008-6-10 15:02
原帖由 jspeng 于 2008-6-10 01:05 PM 发表
用/PAE参数可以使用超出4G部分(注意是超出),而3G-4G之间部分也是使不了的.
基于此,干脆将多出那块作RAMDRIVER使用.

32位的3.25GB内存限制类似于16位dos中的640kb的限制:
3.25GB以下类似于640kb的基本内存;
3.25GB-4GB,类似于384kb的上位内存;这部分在16位dos/32位windows中都需要特殊手段才能利用
4GB以上可以用pae/awe机制来使用,类似于dos下用himem.sys管理1MB以上的扩展内存。



[ 本帖最后由 fujianabc 于 2008-6-10 03:03 PM 编辑 ]
作者: jspeng    时间: 2008-6-10 16:39
标题: 回复 #20 fujianabc 的帖子
情况确实是这样. lyh728的RRAMDISK能够得用这部分内存. 也正如前面所说,在没有添加 /PAE参数情况下,这部分内存看不到,但RRAMDISK直接使用了这部分内存作为虚拟盘. 并且,不管你设置的虚拟盘是多大(小于1G), 它都会是一个固定值,占満整个看不到的部分.
作者: 1e3e    时间: 2008-12-25 20:52
谢谢呀,好多很好的工具呢
作者: leonliao78    时间: 2009-5-30 22:55
10楼“硬盘一般情况下根本不转”
硬盘好像只要插上电源线和数据线,开机后就要转的吧,而无论你用不用得到它里面的数据。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3