SysLinux 主要包含4个程序:SysLinux, pxelinux, isolinux 和 extlinux。
除 pxelinux 只用于从网络上启动操作系统外,其它都是用于在不同类型的文件系统上创建操作系统的引导程序。
SysLinux用于MS-DOS/Windows FAT文件系统上;
pexlinux用于在从网络上启动操作系统;
isolinux用于ISO 9660/El Torito CD-ROM文件系统上;
extlinux用于Linux ext2/ext3文件系统上;
先看SysLinux的使用:
这里以 FAT32 格式的优盘为例,插入后,若有自动挂载, 请先卸载U盘。
然后执行
#SysLinux /dev/sdb
上面的命令会改变U盘上的启动分区,并复制一个文件 LDLINUX.SYS 到其根目录中。
然后将包含下面内容的 SysLinux.cfg 保存到U盘根分区上。其中的root=/dev/sda4 是启动目标机上的第4个分区。同时复制内核 vmlinux 到U盘根分区上。
DEFAULT 2.6.31sda4
TIMEOUT 50
LABEL 2.6.31sda4
SAY Now booting the kernel from SysLinux…
LINUX vmlinux
APPEND rw root=/dev/sda4
然后将目标机上设置为从U盘启动, 插入U盘,就会看到 SysLinux 引导系统成功。
extlinux 的操作对象是文件系统类型为ext2/ext3的已挂载的设备上的目录。
先将U盘重新分区,并格式化
#mkfs.ext3 /dev/sdb1
#mkfs.ext3 /dev/sdb2
这里第一个分区中操作,
#cd /media/disk
#extlinux .
#cp ~/SysLinux.cfg extlinux.conf
#cp kernel .
因为 exlinux 生成的引导文件只是保存在U盘中的普通文件,需要改变MBR,来指向它。
所以要用 SysLinux 包中附带的 mbr 覆盖U盘原来的mbr。并需要用 fdisk 将要启动的分区的 boot flag 设置为 on。
#cat /usr/lib/SysLinux/mbr.bin > /dev/sdb
# fdisk /dev/sdb1
t
a
1
因 extlinux 与 SysLinux 所用的配制文件只是名字不同,内容完全一样,所以可简单的复制一份过来。