×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

自己做“N合一”光盘[ZT]

本文发表在 rolia.net 枫下论坛自己做“N合一”光盘 (感谢精品软件Jackeroo提供cdimage程序)

返回windows2000首页

这段时间流行了一阵“N合一”风,最早是WIN2000的PRO,SERVER和ADVSERVER三个版本做成一张光盘,刚开始我还以为是简单的把三个系统的安装盘刻在一张上面,后来大概算了一下,少说也有900M-1G的数据,不太可能。下了一张来看看,发现做法非常新鲜:

其实WIN2000的三个版本的安装盘中,有大量的文件是相同的,特别是语言包/字库(I386\LANG目录)以及写字板等自带应用程序,以及那个50M的driver.cab。不同的只是相对少数的系统文件。这种N合一光盘将ISO映象经过特殊处理,重复的文件,实际数据在光盘上只有一份,通过类似于修改光盘目录表的办法,让不同的目录/文件指向相同的数据区。完成ISO修改后再刻成光盘。这样,既省了空间,又让每个目录看起来仍然独立、完整。

那么到底有多少相同呢?我自己做了个实验,我有一个WIN2K PRO安装目录和一个ADV SERVER安装目录,分别是260M和280M左右。(为了省空间,我去掉了除简/繁体中文外的其它语言包,象韩文日文阿拉伯文,我这辈子都用不到)。两个目录如果简单的刻在一张盘上,将占540M左右的空间。而用N合一的方法,“相同文件只处理一次”,合并下来只有340M左右。照这个数字看来,二者有70-75%是相同的!不同部分只占各自的25%-30%!依此数字估算,就算将SERVER也加进去,最后的大小也应该只有400-450M,相对于简单相加的800M,几乎少了一半。如果你不想将三个差不多的WIN2000分别用三张CDR保存的话,可以考虑自己做个N合一光盘。

说到这里不仅要提一下DOS/WIN文件系统的落后。UNIX/LINUX从最开始就提供了符号连接的功能,一个简单的ln命令就可以完成上面的工作,而在DOS/WIN下,这种操作必须借助专门的软件通过修改ISO进行,而且这种结构还不能存在于硬盘上,因为它在所有针对DOS/WIN的磁盘检查软件看来,都是“交叉连接”,会被更正。

好了,别扯远了。话说回来,理解这种方式很容易,实际做起来呢?关键是“相同文件”是怎么判断。靠人工是很麻烦的。实际上微软内部提供了一个工具,叫CDIMAGE,专门干这个。加上一个-o参数,就可以实现“自动优化”的功能。MS很多内部发行版本,都是用这个办法“挤”在一张盘上。这个小工具解压只有70K。
当然它不光是用来做WIN2000的N合一。对所有“大量文件重复”的情况,用它都可以发挥极大作用。不过……好象这种情况不多……大家举点例子?

具体做法:

1、建一个目录,把它看成是你要做的光盘的根目录,把所有要放上去的内容全弄进去,比如,这个目录叫c:\ewin3in1,里面分别有

c:\ewin3in1\pro
c:\ewin3in1\server
c:\ewin3in1\advserver

目录,分别对应三个WIN2000版本。现在查看目录属性,应该在800M或更多,无法放在一张光盘上。

2、现在用CDIMAGE程序,在另一目录(你想产生ISO文件的目录)中运行:

cdimage -lWin2K3IN1 -t08/22/00,00:00:00 -h -n -o -m c:\ewin2k My3IN1.ISO

直接运行CDIMAGE将显示参数说明。下面简单解释一下常用参数意义:

-l : (是JKL的L,不是IBM的I)这是光盘的卷标
-t : 将所有文件设成指定的时间,看起来很专业
-h : 包括隐藏文件
-n : 允许长文件名

-o : 这是最重要的,CDIMAGE的精华就是它。自动判断重复文件,对重复文件只处理一次,并自动修改相关的文件指向。默认是使用文件大小和MD5算法进行比较(我也不太懂,大概是和CHECKSUM差不多概念的方法吧)从概率角度来看准确性相当高,但并不是“逐字节对比”。如果你要求逐字节对比,用-oc参数。不过速度极慢。

-m : 不加这个参数的话,将不能产生大于650M的ISO映象

c:\ewin2k : 这是光盘的根目录。CDIMAGE将以此目录开始构造光盘目录结构,硬盘上的c:\ewin2k\pro将变成光盘的x:\pro

My3IN1.ISO : 这是最后生成的ISO文件的名字。它已经是优化后的了。

3、最后只需用烧录软件(如EASY CD CREATOR的CREATE DISK FROM IMAGE)将ISO刻成光盘即可。

至此我们的N合一就做完了。当然这张盘只是简单的将三个安装目录放在一起,而且不能启动。比较理想的情况是,将光盘做成象2000正版那样自动启动并开始安装的(这个已经有人做到了),更理想的情况是开机出现菜单,可以选择安装PRO/SERVER或ADVSERVER,然后自动调用相应的安装程序。目前还不知道有没有人做出来。如果你知道,或是做出来了,一定告诉我。

要做成可启动的安装光盘,有很多要注意的地方,这个贴子可以参考:

http://210.73.66.95:82/wayne/jprjxzubb/Forum2/HTML/011844.html

主要有两点:一是把CDROM_xx.5这些文件放到光盘根目录,让安装程序认为这是原版。另外需要做一个启动软盘的映象文件如boot.bin然后做CDIMAGE的时候用-bc:\boot.bin来让ISO可启动。至于多启动光盘这类东西,大家参考这里,有点旧,但还是有用:

http://nikko.simplenet.com/goldentime/

这种盘当然也有缺点,而且是显而易见的:

1、如果光盘有某个地方损坏,刚好又是大家“共享”的系统文件,那么可能3个WIN2000都将报废,无法安装。普通光盘只是损坏那个文件所属的那一个版本。

2、最好要有光盘刻录机,这种ISO镜象,用WINIMAGE解是没有意义的,WINIMAGE并不懂得这种修改过的结构,它将按目录表把所有文件解到硬盘,相同文件被复制了若干份。相当于还原成优化之前的状态。象那个EWIN 6合一,解开后好象有1.9G左右。

不过相对来说这些缺点都不重要。


感谢 software.cn99.com 论坛的 Jackeroo 寄给我的CDIMAGE。别小看这些小东西,很难找


Su99 (万千新闻组)更多精彩文章及讨论,请光临枫下论坛 rolia.net
Report

Replies, comments and Discussions:

  • 枫下家园 / 电脑用户 / 记得前段时间有人贴过怎样把Windows 2000的三种版本刻在一张CD上的方法,怎么一下子找不到这个贴了。我也想试试
    • That's DVD.
      • 你搞错了。把三张CD的内容装进一张DVD,根本不需要特别的方法
    • ——》
      • 多谢!这是称作“无忧启动”的网站,我是知道的。其免费提供的只是“存在一些严重BUG”的025版(象一个诱饵),而其“后续版本026目前只提供给高级会员使用!” 记得写那个贴子的人是参考一个英文网站的
        • 我写的,不过现在也忘了网址,晚上找到了post给你。英文版没问题,但用同样的办法做中文版,却不通过,很郁闷
          • 找到了。在历史区的电脑用户版,#519882。感谢!
          • 中文版要注意的问题是有关于启动的时候有个启动字体的文件.其他和英文版一样
          • 根据URL,做到“add DISKEMU.CMD, DISKEM1X.BIN, BOOTCAT.BIN and LOADER.BIN”就停止了,因为在Bart's的网站已找不到后三个文件,而第一个文件又说存在问题,现不开发了。怎么办?
            • 用旧版的文件, 不要用新版的. 我做的英文版很顺利, 除了那个网站上的启动菜单有几个字母打错了以外,没有其他问题
              • 失败是因为下载的旧版文件不支持把中文做进去,还是因为fire所指出的中文字体问题?
                • 不是字体的问题,我已经把bootfont.bin做进去了,启动过程能正常显示中文,问题出在txtsetup.sif,其中指向的几个文件与原路径不符,且路径不是用明码表示,颇有难度,我还在研究。
    • 我有一张,是微软给开发商的特殊分发版本。
      • 光盘我也有。我只是想知道是怎么做的。西西
    • 自己做“N合一”光盘[ZT]
      本文发表在 rolia.net 枫下论坛自己做“N合一”光盘 (感谢精品软件Jackeroo提供cdimage程序)

      返回windows2000首页

      这段时间流行了一阵“N合一”风,最早是WIN2000的PRO,SERVER和ADVSERVER三个版本做成一张光盘,刚开始我还以为是简单的把三个系统的安装盘刻在一张上面,后来大概算了一下,少说也有900M-1G的数据,不太可能。下了一张来看看,发现做法非常新鲜:

      其实WIN2000的三个版本的安装盘中,有大量的文件是相同的,特别是语言包/字库(I386\LANG目录)以及写字板等自带应用程序,以及那个50M的driver.cab。不同的只是相对少数的系统文件。这种N合一光盘将ISO映象经过特殊处理,重复的文件,实际数据在光盘上只有一份,通过类似于修改光盘目录表的办法,让不同的目录/文件指向相同的数据区。完成ISO修改后再刻成光盘。这样,既省了空间,又让每个目录看起来仍然独立、完整。

      那么到底有多少相同呢?我自己做了个实验,我有一个WIN2K PRO安装目录和一个ADV SERVER安装目录,分别是260M和280M左右。(为了省空间,我去掉了除简/繁体中文外的其它语言包,象韩文日文阿拉伯文,我这辈子都用不到)。两个目录如果简单的刻在一张盘上,将占540M左右的空间。而用N合一的方法,“相同文件只处理一次”,合并下来只有340M左右。照这个数字看来,二者有70-75%是相同的!不同部分只占各自的25%-30%!依此数字估算,就算将SERVER也加进去,最后的大小也应该只有400-450M,相对于简单相加的800M,几乎少了一半。如果你不想将三个差不多的WIN2000分别用三张CDR保存的话,可以考虑自己做个N合一光盘。

      说到这里不仅要提一下DOS/WIN文件系统的落后。UNIX/LINUX从最开始就提供了符号连接的功能,一个简单的ln命令就可以完成上面的工作,而在DOS/WIN下,这种操作必须借助专门的软件通过修改ISO进行,而且这种结构还不能存在于硬盘上,因为它在所有针对DOS/WIN的磁盘检查软件看来,都是“交叉连接”,会被更正。

      好了,别扯远了。话说回来,理解这种方式很容易,实际做起来呢?关键是“相同文件”是怎么判断。靠人工是很麻烦的。实际上微软内部提供了一个工具,叫CDIMAGE,专门干这个。加上一个-o参数,就可以实现“自动优化”的功能。MS很多内部发行版本,都是用这个办法“挤”在一张盘上。这个小工具解压只有70K。
      当然它不光是用来做WIN2000的N合一。对所有“大量文件重复”的情况,用它都可以发挥极大作用。不过……好象这种情况不多……大家举点例子?

      具体做法:

      1、建一个目录,把它看成是你要做的光盘的根目录,把所有要放上去的内容全弄进去,比如,这个目录叫c:\ewin3in1,里面分别有

      c:\ewin3in1\pro
      c:\ewin3in1\server
      c:\ewin3in1\advserver

      目录,分别对应三个WIN2000版本。现在查看目录属性,应该在800M或更多,无法放在一张光盘上。

      2、现在用CDIMAGE程序,在另一目录(你想产生ISO文件的目录)中运行:

      cdimage -lWin2K3IN1 -t08/22/00,00:00:00 -h -n -o -m c:\ewin2k My3IN1.ISO

      直接运行CDIMAGE将显示参数说明。下面简单解释一下常用参数意义:

      -l : (是JKL的L,不是IBM的I)这是光盘的卷标
      -t : 将所有文件设成指定的时间,看起来很专业
      -h : 包括隐藏文件
      -n : 允许长文件名

      -o : 这是最重要的,CDIMAGE的精华就是它。自动判断重复文件,对重复文件只处理一次,并自动修改相关的文件指向。默认是使用文件大小和MD5算法进行比较(我也不太懂,大概是和CHECKSUM差不多概念的方法吧)从概率角度来看准确性相当高,但并不是“逐字节对比”。如果你要求逐字节对比,用-oc参数。不过速度极慢。

      -m : 不加这个参数的话,将不能产生大于650M的ISO映象

      c:\ewin2k : 这是光盘的根目录。CDIMAGE将以此目录开始构造光盘目录结构,硬盘上的c:\ewin2k\pro将变成光盘的x:\pro

      My3IN1.ISO : 这是最后生成的ISO文件的名字。它已经是优化后的了。

      3、最后只需用烧录软件(如EASY CD CREATOR的CREATE DISK FROM IMAGE)将ISO刻成光盘即可。

      至此我们的N合一就做完了。当然这张盘只是简单的将三个安装目录放在一起,而且不能启动。比较理想的情况是,将光盘做成象2000正版那样自动启动并开始安装的(这个已经有人做到了),更理想的情况是开机出现菜单,可以选择安装PRO/SERVER或ADVSERVER,然后自动调用相应的安装程序。目前还不知道有没有人做出来。如果你知道,或是做出来了,一定告诉我。

      要做成可启动的安装光盘,有很多要注意的地方,这个贴子可以参考:

      http://210.73.66.95:82/wayne/jprjxzubb/Forum2/HTML/011844.html

      主要有两点:一是把CDROM_xx.5这些文件放到光盘根目录,让安装程序认为这是原版。另外需要做一个启动软盘的映象文件如boot.bin然后做CDIMAGE的时候用-bc:\boot.bin来让ISO可启动。至于多启动光盘这类东西,大家参考这里,有点旧,但还是有用:

      http://nikko.simplenet.com/goldentime/

      这种盘当然也有缺点,而且是显而易见的:

      1、如果光盘有某个地方损坏,刚好又是大家“共享”的系统文件,那么可能3个WIN2000都将报废,无法安装。普通光盘只是损坏那个文件所属的那一个版本。

      2、最好要有光盘刻录机,这种ISO镜象,用WINIMAGE解是没有意义的,WINIMAGE并不懂得这种修改过的结构,它将按目录表把所有文件解到硬盘,相同文件被复制了若干份。相当于还原成优化之前的状态。象那个EWIN 6合一,解开后好象有1.9G左右。

      不过相对来说这些缺点都不重要。


      感谢 software.cn99.com 论坛的 Jackeroo 寄给我的CDIMAGE。别小看这些小东西,很难找


      Su99 (万千新闻组)更多精彩文章及讨论,请光临枫下论坛 rolia.net
      • 难的就是做成可选择的多重启动光盘。里面的2个有关链接都不行的
        • 这篇文章很老了,里面的连接是可能不行了. 如果你只是想试试把3个版本的win2k烧到1张CD上, 有cdimage就可以了. 如果找不到,我可以发给你
          • 要的就是多重启动这项功能。看了几个相关网站,感觉这是项很不成熟是技术。可能硬件差异太大,不可能做得完美
    • msdn copy is created that way.
      • No. That's DVD, not CD.
        • who said that? i have an authenticated cd copy.
          • With 3 copies of windows? We have it on DVD..
            • but it doesn't mean that i can't have 3 copies on one msdn cd, right?
              • Oh no.... We have the MSDN subscription. But they always send us a DVD. So I thought MSDN subscription is always on DVD.
                • it's an option when u subscribe it, i chose cd before because i can copy it..:D