我在北京中关村的一家以服务器,存储为主要产品的公司供职售前职位。公司的售后部门经常要给客户安装系统和存储。安装系统传统的方式就是通过光驱,而光驱和光盘因为种种原因经常出现各种问题而无法安装系统。比如光盘划伤,光驱的读盘纠错能力差等。
为了解决这个问题,我开始尝试用U盘来安装各种系统(Linux,Windows,Vmware),最重要的是能把各种操作系统的安装集成在一个U盘中。首先要解决的问题是如何引导U盘,经过选型,最终确定了两种引导加载程序。Syslinux和Grub4dos。另外,还有两个虚拟磁盘驱动程序,WinVBlock和FiraDISK,用于在安装Windows时加载虚拟磁盘。下面介绍一下这几种程序。
SYSLINUX是一个轻量级的 IBM PC 兼容机启动程序套装,其主要开发者为H. Peter Anvin,遵循GNU General Public License协议。
SYSLINUX包含几个独立的系统:
SYSLINUX从FAT和NTFS文件系统开机(如软盘和USB块设备)
ISOLINUX从CD-ROM ISO 9660 文件系统开机
PXELINUX从设置了预启动执行环境(preboot execute environment)的网络服务器开机
EXTLINUX从Linux的ext2/ext3/ext4或Btrfs文件系统开机
MEMDISK一个工具,用来启动一些比较旧的操作系统(如DOS),通常与PXELINUX和ISOLINUX配合使用
SYSLINUX包含于各中Linux发行版中。从SYSLINUX4开始,EXTLINUX和SYSLINUX已经整合在一起了,而且从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 13(disk driver)中断,在实模式下调取MBR硬盘第一个扇区的446字节开机管理程序(bootloader)
3.MBR查找活动的分区,找到后启动分区引导程序。如果是ext或fat系列文件系统,ldlinux.sys开始的扇区是被写死到卷启动记录程序里的,卷启动程序将执行(ldlinux.sys)。如果是btrfs,ldlinux.sys将被存储在卷启动记录之后的扇区上。
4.SYSLINUX完全加载后,它会查找提供选单的syslinux.cfg或isolinux.cfg或者extlinux.conf。
5.加载配置文件供用户选择。
6.载入用户选择的内核文件或转交其它loader处理。
7.开始操作系统的功能。
Grub4DOS 是一个将Linux下的GNU GRUB启动程序移植到dos和windows下的一个分支,该项目是由tinybit(不点)于2003年发起的,目前活跃的开发者主要有tinybit,bean,chenall,roy和karyonix等。现在已经发展为面向广阔应用领域的启动引导程序。它的兼容性做的比较好。最新版本是0.4.6a。稳定版本为0.4.4。它兼容所有的GURB 0.97命令,功能比较全。
下载地址:https://code.google.com/p/grub4dos-chenall/downloads/
WinVBlock 是一个开源的Windows虚拟磁盘支持驱动,它支持内存磁盘,支持从MEMDISK和GRUB4DOS启动。也就是说它能够检测到MEMDISK或GRUB4DOS映射出来的块设备(光盘,硬盘和软盘)并供Windows读写。主要用于Windows XP和Windows2003 系统。它的作者是Sha0 Miller,于2009年6月10日创建。
官方地址:http://reboot.pro/topic/8168-winvblock/
FiraDISK与WinVBlock类似,同样是为了让Windows能够识别到GRUB4DOS映射出来的磁盘,模拟SCSI 卡。但是支持的Windows系统更为广泛,经过我的测试可以从Windows XP支持到现在的Windows 2012。现在最新的版本为v0.0.1.30。它的作者是karyonix,创建与2009年8月22日。
官方地址在: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
原文地址:http://zhile.blog.51cto.com/9599674/1577951