一:extlinux简介:
extlinux是由syslinux派生来的,可以从ext2和ext3 linux文件系统启动系统。其工作方式和syslinux差不多。
二:安装livecd到USB中,使用extlinux,定制格式为ext3
步骤一:划分USB分区,指定启动分区
fdisk /dev/sdb <<EOF
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