无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 10493|回复: 22
打印 上一主题 下一主题

filedisk/imagex联合打造内存版WinXP --更正贴

[复制链接]
跳转到指定楼层
1#
发表于 2008-6-8 04:24:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
去年换了个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

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

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

内存截图.GIF

Generic Antiwpa-2.1.5-WinXP-2k3.zip

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

回复

使用道具 举报

3#
发表于 2008-6-8 04:51:06 | 只看该作者
請問一下這樣做出來的XP,體積多大呢?
用內存啟動,應該不能太大吧,我之前試過,700MB肯定不行。
回复

使用道具 举报

4#
发表于 2008-6-8 04:52:46 | 只看该作者
看到了,你的 img 是 489M
回复

使用道具 举报

5#
发表于 2008-6-8 10:30:03 | 只看该作者
这个应该有512M的ramdisk限制吧
回复

使用道具 举报

6#
 楼主| 发表于 2008-6-8 15:17:53 | 只看该作者
确切的大小限制是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, 下载次数: 63)

directory.gif
回复

使用道具 举报

7#
发表于 2008-6-8 15:34:51 | 只看该作者
IMG的最大限制是255M吧,256M的IMG肯定报错。

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

不过作为PE和纯RAM的系统,100M以下,我觉得才有存在的意义。
回复

使用道具 举报

8#
发表于 2008-6-8 20:47:13 | 只看该作者
做的好.

即使不做樓主的 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 .
回复

使用道具 举报

9#
发表于 2008-6-8 22:07:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

10#
 楼主| 发表于 2008-6-9 07:40:57 | 只看该作者

回复 #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将硬盘调成最省电模式,现在硬盘一般情况下根本不转!
回复

使用道具 举报

11#
 楼主| 发表于 2008-6-9 07:49:09 | 只看该作者

回复 #9 nn2nn 的帖子

我以前也确实认为不那么简单,尝试也很多次都不成功.是因为镜像文件太大的缘故. 在看到国外说488M限制后,很容易就成功了! 只是boot.ini的写法还遇到一个小问题.
老大若不信,装个精简的winXP 试试看. 因Intel P965显示在W2K3中不支持PAE模式, 我没试过W2K3.
回复

使用道具 举报

12#
 楼主| 发表于 2008-6-9 08:03:22 | 只看该作者
提醒:
在做测试前,请先将原来的系统盘隐藏,或将WINDOWS目录改名,以防调用错误的WINOS导致源系统损坏. 我在用GRUB载入RAMXP时出过好两次这样的问题.
回复

使用道具 举报

13#
发表于 2008-6-9 12:15:53 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

14#
发表于 2008-6-9 21:39:27 | 只看该作者

回复 #10 jspeng 的帖子

哪即是沒戲唱了.

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

使用道具 举报

15#
发表于 2008-6-10 00:19:58 | 只看该作者
这个算是半个灌水吧。

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

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

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

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

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

如果是4条1GB,实际被识别的容量大概是4.0GB-显存容量-1XX左右
回复

使用道具 举报

16#
发表于 2008-6-10 10:29:16 | 只看该作者
觉得,楼主说的两个工具filedisk/imagex都有更好的工具,VDM和WIMTOOL,为什么还有这两个呢?
回复

使用道具 举报

17#
 楼主| 发表于 2008-6-10 13:05:10 | 只看该作者

回复 #15 cnn_5454 的帖子

老兄高啊,我确实是两条2G的内存条插在一起的. IBM T61原配为2G, 又插了一条上去.
我找了很多资料,包括微软官方文档,都证明在32位windows 系统下,不管是W2K3, XP, VISTA, 系统最大可使用内存为3.25GB甚至更低! 即使添加/PAE参数或使用其他手段使系统能够识别出4GB内存,但实际也还是使用不了! 除非你使用64位系统.  在W2K3 标准版或企业版, 使用/PAE参数可以使用超出4G部分(注意是超出),而3G-4G之间部分也是使不了的.
基于此,干脆将多出那块作RAMDRIVER使用.
回复

使用道具 举报

18#
 楼主| 发表于 2008-6-10 13:14:32 | 只看该作者

回复 #16 zts59 的帖子

VDM和WIMTOOL确实是较好的工具. 但我从VM虚拟机器制作RAMXP时,根本就没成功过. (911上有些使用VMWARE/VMTOOL来制作RAMXP的文档). 但filedisk是命令行方式,简单实用. IMAGEX也同样.
但是,WIMTOOL是不支持命令行方式工作的 (或是我没找到?) ,它是不能被放在开机启动时自动执行的. 请参见添加注册表部分. 我需要的是在开机后自动挂接tools.wim至C:\Tools目录下.
偶是使用命令行方式太久了,包括DOS 3.30--, UNIX, LINUX.还是觉得命令行习惯.
回复

使用道具 举报

19#
发表于 2008-6-10 13:40:02 | 只看该作者
呵呵,WIMTOOL支持命令行参数的。据测试,因为用VDM可以制作出PE镜像,那么XP的镜像一定可以,因为我的机器只有256M内存,没有办法测试RAMXP的。
回复

使用道具 举报

20#
发表于 2008-6-10 15:02:20 | 只看该作者
原帖由 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 编辑 ]
回复

使用道具 举报

21#
 楼主| 发表于 2008-6-10 16:39:51 | 只看该作者

回复 #20 fujianabc 的帖子

情况确实是这样. lyh728的RRAMDISK能够得用这部分内存. 也正如前面所说,在没有添加 /PAE参数情况下,这部分内存看不到,但RRAMDISK直接使用了这部分内存作为虚拟盘. 并且,不管你设置的虚拟盘是多大(小于1G), 它都会是一个固定值,占満整个看不到的部分.
回复

使用道具 举报

22#
发表于 2008-12-25 20:52:53 | 只看该作者
谢谢呀,好多很好的工具呢
回复

使用道具 举报

23#
发表于 2009-5-30 22:55:33 | 只看该作者
10楼“硬盘一般情况下根本不转”
硬盘好像只要插上电源线和数据线,开机后就要转的吧,而无论你用不用得到它里面的数据。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-26 20:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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