一:extlinux简介:

extlinux是由syslinux派生来的,可以从ext2和ext3 linux文件系统启动系统。其工作方式和syslinux差不多。


二:安装livecd到USB中,使用extlinux,定制格式为ext3

步骤一:划分USB分区,指定启动分区

fdisk /dev/sdb  <

n

p

1


+500M


a

1


w

EOF


步骤二:格式化启动分区为ext3文件系统

mkfs.ext3 /dev/sdb1


步骤三:指定启动分区的卷标

e2label /dev/sdb1 "CentOS"

注意:指定卷标之前必须格式化启动分区,否则错误提示如下:

e2label:Bad magic number in superblock while trying to 

open /dev/sdb1 Could not find valid filesystem superblock


步骤四:使用extlinux指令,创建ldlinux.sys文件

mkdir /mnt/sdb1 

mount /dev/sdb1 /mnt/sdb1

extlinux -i /mnt/sdb1


步骤五:拷贝livecd中的光盘文件到/dev/sdb1

cp -r CentOS/*  /mnt/sdb1

注意:CentOS是livecd的挂载点


步骤六:在syslinux目录下创建extlinux.conf文件

cp syslinux.cfg  extlinux.conf

修改文件内容如下:

**************************************

default vesamenu.c32

timeout 120


label linux

  menu label Boot 

  kernel vmlinuz0

  append initrd=initrd0.img root=live:CDLABEL=CentOS rootfstype=ext3 ro liveimg  \

  LANG=en_US.UTF-8 live_ram  quiet nodiskmount nolvmmount  vga=791 rd.luks=0 rd.md=0 rd.dm=0


**************************************

注意:root=live:CDLABEL=CentOS 指定由卷标指向的设备作为根分区

目前root的写法可以如下:

方法一:

root=live:CDLABEL=CentOS

root=CDLABEL=CentOS

root=LABEL=CentOS

方法二:通过UUID指定root

查看启动分区的UUID:blkid /dev/sda1

/dev/sda1: UUID="C44D-23A2" TYPE="vfat" 

root=UUID=C44D-23A2

错误:当使用root=/dev/sda1无法启动系统出现如下的提示:

/dev/sda1 already mounted or /sysroot busy 

according to mtab,/dev/sda1 is already mounted in

/sysroot

排除:通过添加rdshell参数,出错过程中,获取调试控制台:

cat /etc/mtab

/dev/sda1  /sysroot  ext3 0 0

步骤七:卸载挂载点,重启电脑

umount /mnt/sdb1

rm -rf /mnt/sdb1