编者按:新的一年,“高手论技”继续伴随大家前行,身处一线的你,就那些技术上最常遇到的故障、最需要解决的难题、最成熟的应用… …都可以在此畅所欲言,各抒己见。是继续围观还是现身说法,新浪微群http://q.t.sina.com.cn/264976,期待您的共同参与。
● 开门见山:启动问题的提出
在U盘和闪存卡非常普及的今天,用U盘来启动计算机早已是司空见惯,新的主板对U盘启动的支持和U盘启动制作工具的助力,使得U盘启动已经非常容易。但在实际使用中,我们还是经常遇到无法用U盘启动的情况,计算机特别是在无光驱的机器瘫痪时,U盘不能正常启动常会让人大为恼火。
在学校机房环境中,光驱常常不是标准配置,学生机几乎清一色的没有光驱,即使在办公环境中,很多计算机也是无光驱配置的。当这些机器出现系统瘫痪、硬盘无法引导等比较严重的软件故障时,使用U盘启动常常是进行维护和排除故障的第一步。然而,看似简单的U盘启动,其实并不那么简单。
● 走马观花:U盘启动的前提
本文所提到的U盘启动,是指用USB接口的闪存盘或闪存卡(需要读卡器)、MP3播放器等USB存储设备引导计算机启动,为叙述方便,下面均简称为U盘启动。要实现U盘启动,须具备如下条件。
1.主板支持USB设备启动
现在的主板几乎都能够支持USB设备进行引导启动,但老一些的主板却有很多不支持。一些南桥芯片本来就支持USB设备启动的主板可以通过升级BIOS来实现对USB设备引导的支持。
2.U盘为启动盘并且与主板支持的启动方式一致
一般地,主板能够支持的USB设备启动方式有USB-FDD,USB-HDD,USB-ZIP等,至于使用哪种方式进行启动,需要在BIOS中进行设置。较老的主板会在BIOS的启动顺序中直接标明,较新的主板则可以自动识别。对应的,U盘启动盘在制作时也会有这几种启动方式供选择,以制作成不同类型的启动U盘。
3.U盘优先启动
启动顺序可以在BIOS中设置,较新的主板则能在开机自检时按相应的快捷键直接选择启动设备,不需要BIOS设置。较常见的有F8、F11、ESC等,在提示时按下相应快捷键就会出现启动设备选择菜单,这时可以选择相应的设备进行引导。但不同的主板,其启动设备选单会有所不同,需要依实际情况选择相应项目进行U盘启动。一般是选择“Removable Dev.(移动设备)”,但有时出现的是当时插入在计算机上的U盘标识符,这时应该直接选择它。当U盘是HDD-USB类型时,有时并不能显示出移动设备或U盘标识符,而是归到“Hard Disk Driver”子项中,在这里进一步选择识别出来的U盘标识符才能引导。同样,在没有启动设备选单的主板BIOS中,以及有硬盘启动优先级(Hard Disk Boot Priority)选项的BIOS中,也存在类似的问题,主要出现在使用Phoenix BIOS的主板上。
● 言归正传:实现U盘启动
1.简单实现启动
如果仅仅要求U盘能够启动计算机,进入DOS环境就行,那么在Windows下系统格式化,也可以让U盘具有启动能力,但这种方式的启动U盘并不是所有主板都能支持的。
为了让U盘能够适应众多的主板实现启动,常常需要借助一些工具软件。较早使用的USBoot就是制作启动U盘的常用工具,但是它的FAT格式不能支持大容量U盘。这里推荐使用FlashBoot来制作启动U盘,制作迅速,适应性好,支持较大容量的U盘,自带有启动软盘的映像文件并支持其他的软盘映像文件。
一些硬盘工具软件也开始加入了U盘的启动处理功能,如DiskGenius,其前身即是大名鼎鼎的DiskMan,几乎是装机必用的工具。DiskGenius不仅能够建立USB-HDD、USB-ZIP、USB-FDD等类型的启动U盘,而且能够进行U盘的分区操作。但是,因为版权问题,DiskGenius制作的启动盘没有使用MS-DOS,而是采用广泛使用的免费的FreeDOS,因而它写入的主引导记录(MBR)也是FreeDOS的,在后续制作能启动到图形操作界面的启动U盘时会有一些麻烦。
2.高级启动进阶
U盘启动的目的一般是为了进行维护或安装系统,仅仅启动到DOS字符界面往往不能满足要求,所以一般都是把启动U盘制作成带有Windows PE图形界面的系统。
Windows PE是Windows PreInstallation Environment的缩写,即Windows预安装环境,是包含有限服务的最小Win32子系统,基于以保护模式运行的Windows XP Professional或Windows Server 2003内核。这是一种非常好的便于系统维护的操作界面,因而非常流行。
Windows PE启动U盘的实现方法,可以先做好启动处理,再装上Windows PE,也可以直接安装上具有启动能力的Windows PE系统。
由于Windows PE环境的安装制作不在本文讨论范围,这里只谈如何方便地实现用U盘启动Windows PE。
最简单的方法,是利用现有的含启动功能的Windows PE的ISO映像文件,借助UltraISO等工具软件,把ISO文件写回到U盘上(如图1)。这类ISO文件可以在网上方便地找到,如深度技术论坛、无忧启动论坛、迈思工作室技术论坛等网站都有下载。具体方法:运行UltraISO,打开准备好的ISO文件,选择“启动”菜单中的“写入硬盘镜像”,选择一种写入方式,先点“格式化”,再点“写入”即可。写入方式还包括增强型的USB-HDD+、USB-ZIP+等。
与ISO文件类似的,由启动U盘制作的GHO映像文件也可以用Ghost软件克隆到其他U盘实现启动。对于USB-ZIP这一类型的,还可以找到相应USB-ZIP类型的Windows PE软件包,直接复制到U盘根目录下,实现U盘启动Windows PE环境。
由于与U盘启动类型相匹配等问题的存在,Windows PE启动U盘在实际制作时还是经常会失败。为便于实现这一启动功能,有人开发了一些傻瓜式的一键制作启动U盘的工具。如“大白菜U盘启动制作工具”,将包含各种维护工具的Windows PE系统集成到了软件中,选择启动类型后(如图2),点一下鼠标即可制作完成,U盘被自动分成两个分区,其中启动系统放置在一个容量为100多M的隐藏分区中。在系统的磁盘管理程序中,可以看到这个“未指派”的分区(如图3)。
注意:不要企望把Windows PE当作一个正式的操作系统使用,由于Windows PE具有启动特性并能运行部分Win32程序,为了防止自己被当作盗版操作系统,在连续使用24小时后Windows PE将自动退出并重启。
● 防患未然:隐藏启动分区
辛苦做好的启动U盘,常常被病毒破坏,或人为删除文件,造成无法启动。因而对启动功能进行保护很有必要。
我们可以让启动系统单独使用一个分区,并把这个分区隐藏起来,以达到保护目的。
隐藏分区的方法较多,可以使用专门的磁盘工具或分区软件进行隐藏,也可以利用操作系统对分区进行识别的特点给予隐藏,一般都涉及U盘分区。常用的方法如下。
1.用DiskGenius进行多主分区设置
Windows系统有一个特点,即对U盘的多个主分区只能识别其中的第一个。利用这个特点,我们可以用DiskGenius把U盘分成两个主分区,其中第一个主分区分得大一些,作为正常数据使用的分区;第二个主分区分得小一些,并将其激活,作为启动分区。这样,激活的主分区实现启动功能,进入Windows PE图形界面后,或者在正常的Windows系统中查看时是看不到的,从而达到隐藏启动分区的目的。
激活后的第二主分区要想实现启动,还要费一番周折,因为它是不可见的,不能用正常方法装上Windows PE系统。
首先需要写入主引导记录(MBR)和分区引导记录(PBR),这个可以在DiskGenius中进行,利用它的U盘启动处理功能就能一次完成。但是它写入的MBR是FreeDOS的,与一些Windows PE系统不相容,不过新版本的DiskGenius可以重建Windows XP的MBR,弥补了这一缺点。装配引导记录也可以使用引导扇区维护工具BootICE来进行,它支持很多种MBR和PBR的写入,但是该软件本身并不提供相应的系统文件,需要自备。
其次,需要安装上Windows PE系统。由于MBR和PBR都已装配,只要与使用的Windows PE相吻合,直接把相应文件复制到隐藏分区中即可。用DiskGenius和FbInst可以对隐藏分区进行文件操作,实现复制文件到启动分区;用Ghost则能对多主分区的隐藏分区进行克隆,只要准备好可启动分区的GHO镜像文件,直接恢复到隐藏分区即可。
2.用FbInst创建隐藏分区
FbInst是一个DOS命令行方式的工具,在启动U盘制作中经常使用。由于命令行参数不直观,不方便大众化使用,便有了FbinstTool(如图4),可以看作是FbInst的图形化版本。FbinstTool在启动U盘制作中大显身手,常常作为USB万能启动制作工具。FbinstTool可以方便地创建隐藏的UD分区,并且可以使用特有的FBA映像文件。目前网络上流行的一些傻瓜式启动U盘制作工具,如“大白菜”等,就是使用FbInst实现隐藏分区的。
用WinRAR打开Windows PE系统的ISO映像文件,选中全部文件,可以直接拖至FbinstTool中的UD分区,并能保持文件结构的一致性,因而也能够启动Windows PE。
要注意的是,UD分区的文件名要区分大小写。除了基于FbInst的工具可以进行读取之外,其他软件和系统都无法读取UD分区中的数据,因而具有防病毒和防格式化的功能。但一些磁盘工具可以删除UD分区。
● 深入了解:U盘启动背后
我们经常发现,做好的启动U盘,并不能像启动光盘那样可以启动任意一台计算机,有时在这台计算机上能够启动,在那台计算机却无法启动;在这台计算机上启动非常快,在那台计算机上却要等待很长时间;在这台计算机上启动后一切正常,在那台计算机上启动完成后磁盘读写却举步维艰… …
由于各个厂商对USB设备引导的支持没有统一规范,使得目前的U盘启动还不能像光盘启动那样完美。因为U盘启动的目的是进行系统维护,Windows PE几乎成了启动U盘必须具备的系统,而它的启动过程和对USB设备的驱动过程也是造成各种问题的原因。为了尽可能地减少错误,启动过程中往往会有一些选项让用户选择,或者在最初启动时就采用多种方式进行尝试和匹配。
计算机的引导过程,最初由BIOS控制,加电自检(POST)之后,试图加载硬盘MBR或软盘引导扇区。因而用其他设备启动的过程都会模拟硬盘或软盘进行,U盘的启动以硬盘模拟的方式居多,因而MBR就成为启动的关键。
任何设备的的引导,都少不了操作系统级的底层支持,而且往往是命令行方式的系统。在DOS和Linux之外,很多免费的命令行工具都在设备启动领域做着默默的贡献,如FreeDOS,Grub4DOS,Lilo,SysLinux等。
Grub是一个遵从Multiboot(多重启动)规范的启动管理程序,它的DOS版本即Grub4DOS,是一个功能强大的引导器,内置功能完善的BIOS级磁盘仿真,可以在DOS和Linux下运行,也可以通过其他引导器来运行,还可以作为MBR运行,支持多重启动菜单和IMG镜像文件,在启动盘制作尤其是Windows PE启动盘制作中广泛使用。
目前网上流行的各种Windows PE系统主要有两种启动方式,一是通过修改的grldr等来启动压缩版的PE镜像,如“老毛桃”PE系统等,体积较小;二是直接用ISO模拟光盘启动,如“0PE”,兼容性好,方便修改和DIY。
在制作启动U盘的过程中,我们仅仅是拿别人开发好的工具来制作,并不是从头开始自己实现,这样虽然很简便地做出了启动U盘,但很多原理和过程并没有了解,我们的简便是建立在很多人做了大量前期工作的基础上的,让我们感谢一下他们的奉献吧!