首页 > 代码库 > 如何制作一个通用的多系统安装U盘(工具介绍)

如何制作一个通用的多系统安装U盘(工具介绍)

    我在北京中关村的一家以服务器,存储为主要产品的公司供职售前职位。公司的售后部门经常要给客户安装系统和存储。安装系统传统的方式就是通过光驱,而光驱和光盘因为种种原因经常出现各种问题而无法安装系统。比如光盘划伤,光驱的读盘纠错能力差等。

    为了解决这个问题,我开始尝试用U盘来安装各种系统(Linux,Windows,Vmware),最重要的是能把各种操作系统的安装集成在一个U盘中。首先要解决的问题是如何引导U盘,经过选型,最终确定了两种引导加载程序。Syslinux和Grub4dos。另外,还有两个虚拟磁盘驱动程序,WinVBlock和FiraDISK,用于在安装Windows时加载虚拟磁盘。下面介绍一下这几种程序。

    SYSLINUX是一个轻量级的 IBM PC 兼容机启动程序套装,其主要开发者为H. Peter Anvin,遵循GNU General Public License协议。

    SYSLINUX包含几个独立的系统:

         SYSLINUXFATNTFS文件系统开机(如软盘和USB块设备)

         ISOLINUXCD-ROM ISO 9660 文件系统开机

         PXELINUX从设置了预启动执行环境(preboot execute environment)的网络服务器开机

         EXTLINUXLinuxext2/ext3/ext4Btrfs文件系统开机

         MEMDISK一个工具,用来启动一些比较旧的操作系统(如DOS),通常与PXELINUXISOLINUX配合使用

    SYSLINUX包含于各中Linux发行版中。从SYSLINUX4开始,EXTLINUXSYSLINUX已经整合在一起了,而且从4.06版之后开始支持NTFS文件系统。从6.00版本之后开始支持EFI启动。我们可以从http:// http://www.syslinux.org/ 查看Syslinux这个项目的最新动态,从https://www.kernel.org/pub/linux/utils/boot/syslinux/下载最新的SYSLINUX版本。


SYSLINUX的启动过程:

1. BIOS开机主动执行,识别第一个可开机的设备

2. BIOS调用INT 13disk driver)中断,在实模式下调取MBR硬盘第一个扇区的446字节开机管理程序(bootloader)

3.MBR查找活动的分区,找到后启动分区引导程序。如果是extfat系列文件系统,ldlinux.sys开始的扇区是被写死到卷启动记录程序里的,卷启动程序将执行(ldlinux.sys)。如果是btrfsldlinux.sys将被存储在卷启动记录之后的扇区上。

4.SYSLINUX完全加载后,它会查找提供选单的syslinux.cfgisolinux.cfg或者extlinux.conf

5.加载配置文件供用户选择。

6.载入用户选择的内核文件或转交其它loader处理。

7.开始操作系统的功能。

 

    Grub4DOS 是一个将Linux下的GNU GRUB启动程序移植到doswindows下的一个分支,该项目是由tinybit(不点)于2003年发起的,目前活跃的开发者主要有tinybitbeanchenallroykaryonix等。现在已经发展为面向广阔应用领域的启动引导程序。它的兼容性做的比较好。最新版本是0.4.6a。稳定版本为0.4.4。它兼容所有的GURB 0.97命令,功能比较全。

下载地址:https://code.google.com/p/grub4dos-chenall/downloads/

 

    WinVBlock 是一个开源的Windows虚拟磁盘支持驱动,它支持内存磁盘,支持从MEMDISKGRUB4DOS启动。也就是说它能够检测到MEMDISKGRUB4DOS映射出来的块设备(光盘,硬盘和软盘)并供Windows读写。主要用于Windows XPWindows2003 系统。它的作者是Sha0 Miller,于2009610日创建。

官方地址:http://reboot.pro/topic/8168-winvblock/

 

    FiraDISKWinVBlock类似,同样是为了让Windows能够识别到GRUB4DOS映射出来的磁盘,模拟SCSI 卡。但是支持的Windows系统更为广泛,经过我的测试可以从Windows XP支持到现在的Windows 2012。现在最新的版本为v0.0.1.30。它的作者是karyonix,创建与2009822日。

官方地址在:http://reboot.pro/topic/8804-firadisk-latest-00130/

 

参考资料

The Syslinux Project http://www.syslinux.org/wiki/index.php/The_Syslinux_Project

http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_1.php#whatislinux_gnu

维基百科的SYSLINUX介绍http://zh.wikipedia.org/zh/SYSLINUX

维基百科的Grub4Dos介绍http://zh.wikipedia.org/zh-cn/Grub4Dos


注:

GNU是GNU is NotUnix 的简写

1. 经过GPL授权的软件就可以称为自由软件,任何人都可以拥有它。

2. 开发 GPL 的团体(或商业企业)可以经由该软件的服务来取得服务的费用。

3. 经过 GPL 授权的软件,其属于Opensource 的情况,所以应公布其原始码。

4. 任何人皆可修改由 GPL 授权过的软件,使其符合自己的需求。

5. 经过修改过后 Opensource 应该回馈给 Linux 社群。



本文出自 “梦想成真” 博客,请务必保留此出处http://zhile.blog.51cto.com/9599674/1577951

如何制作一个通用的多系统安装U盘(工具介绍)