制作合法的实用工具 U 盘,做合法的好人
那天帮 @shellex 恢复分区表时,@Sisyphusliu 师兄一针见血地指出:你怎么能用盗版 Windows PE 上的盗版软件呢?师兄说得有道理。其实我用那个“完美者 U 盘维护系统”就是图个方便,国内团队就这点做得好,把什么 Windows PE、Linux、DOS 再加一堆应用软件帮你攒到一个映像文件中,直接写到 U 盘上就一切 OK 了。但版权问题则被直接无视了,谁让国内就是这个大环境呢?但懒惰永远不是借口,明知使用盗版是有问题的,就要想办法解决。
有关 Windows PE 的版权问题,我从微软官方以及 Wikipedia 查到的说法大致是:拥有 Windows 授权的用户可以使用 WAIK 或第三方工具(如 BartPE)免费制作 Windows PE 映像,但前提是要基于合法授权的 Windows 安装介质。自己制作的 Windows PE 光盘或 U 盘可以在对应授权的电脑上合法使用,但不能够向他人分发(经过微软特别许可的除外,如 Symantec 维护工具盘)。至于个人制作的 Windows PE 介质能否在他人电脑上合法使用(即帮人修电脑),似乎是有争议的。不过我想到一个避免争议的方法:使用一套合法授权但未安装过的 Windows 介质来制作 Windows PE,这样在使用时,这套 Windows PE 同一时刻只运行于一台电脑,就不会违反微软的 EULA 了。实际操作时完全靠自觉,因为多数 Windows PE 制作工具只需要 Windows 光盘或 ISO,而不检查序列号之类。Windows XP 的授权我以前通过 Imagine Cup、DreamSpark 以及 IEEE 和 ACM 的 MSDNAA 得到过若干套,我声明将其中一套用于 Windows PE 即可。
自己从头搭建实用工具环境太烦琐,我使用 UBCD4Win 这个第三方软件直接生成集成多种实用工具的 Windows PE 环境。这个软件的作者比较重视版权问题,在网站上提供了微软的相关法律文书。其集成的第三方工具全都是免费或自由软件;也有少量商业软件,但必须由用户自己准备 license 文件才能运行。
除了 Windows PE,实用工具 U 盘上还应该有 Linux 和 DOS 工具集,我分别选用了 SystemRescueCd 和 UBCD。UBCD 还集成了 FreeDOS 和 Parted Magic 等环境,方便在必要时使用。这几套工具的合法性也得到了我的验证。相比国内的各种工具盘,UBCD4Win 和 UBCD 对中文的支持不好,不过网上也有人提供了东亚语言插件。SystemRescueCd 默认使用 Unicode 编码且集成了中文字体,比较方便。
关键的步骤是将 UBCD4Win、SystemRescueCd 和 UBCD 写在一块 U 盘上。Google 一下,果然有现成的解决方案,比如 SARDU 和 YUMI。YUMI 支持集成的 Linux 发行版种类多一些,但不支持 UBCD4Win 生成的 Windows PE,需要折腾一下才能共存。SARDU 对各类 Windows PE 以及第三方实用工具盘的支持较好。简单对比之后,我选用了 SARDU。
在使用 SARDU 制作实用工具 U 盘时,我遇到了两个问题:其一,首次制作出来的 U 盘在 QEMU 虚拟机中可以启动,但在物理机上不能启动。在 SARDU 论坛中居然找到了这种匪夷所思的解决办法:使用 RMPrepUSB 软件将 U 盘格式化为“not-bootable”的。也许是因为 U 盘中残存的某种启动机制与 SARDU 冲突吧。设置完“not-bootable”再用 SARDU 重新制作一次,启动物理机正常。其二,启动 Windows PE 时出现找不到 NTDETECT.COM 的错误。查找一下发现 NTDETECT.COM 文件位于 miniub 目录。仿照 Windows XP 的安装布局,将 NTDETECT.COM 复制到 U 盘根目录之后,启动 Windows PE 正常。这有可能是 SARDU 与新版本的 UBCD4Win 不兼容造成的。
为体现合法实用工具 U 盘的专盘专用,我给它加上了 DIY 的启动画面。上图一张——
