|
本帖最后由 2012findteam 于 2014-2-28 22:13 编辑
好久没有碰syslinux了,发现版本都升级到6.02了。
环境 xubuntu12.04 + xfce4.10
查了下系统自带的syslinux和extlinux版本停留在4.05。只好自己升级了。
不让我发链接就样吧
我下的是.tar.bz2的包。因为我喜欢用bz2压缩。
解压后看到有makefile,直接就make 和make install 了。当然,你要去看看readme。因为里面提到了几个要依赖的包。
装好后查了下发现没有问题
接下来就是做启动盘了。
我一开始是用extlinux的,分区用的ext4.结果在这里发现个问题。syslinux WiKi说支持ntfs,ext4等等。结果安装好后man手册说只支持ext2,ext3,fat16,fat32。这是什么意思嘛?难道是Linux版本只能这样????我想了想换成syslinux和fat32格式了。下面讲的就是以这个格式为基础。
查看设备位置
用 也可以查看
- sudo syslinux -d /boot/syslinux/ -i /dev/sdXX
复制代码
开始制作引导。
然后就搞定了。
现在开始说要拷贝哪些文件。有人说能进菜单但是不能引导,那是因为你少拷贝文件了。
Syslinux6.02依赖ldlinux模块。ldlinux.c32(bios),ldlinux.e32(EFI IA32)或者ldlinux.e64(EFI X64);syslinux的”.c32“依赖libcom32.c32,libgpl.c32,liblua.c32,libmenu.c32,libutil.c32。这些模块要拷贝进/boot/syslinux。
特别注意。拷贝.c32文件时要注意区分不同的二进制文件。BIOS,EFI32,EFI64都有各自的文件,引导时要注意区分。特别是EFI启动需要syslinux.efi引导加载程序(从各自的目录),还要相应的ldlinux模块:ldlinux.e32从EFI IA32, ldlinux.e64 从EFI X64.
我使用BIOS引导,所以文件都来源于BIOS文件夹。拷贝错了就不能启动了。下面也只讨论BIOS启动。EFI只要模块对了。其实都是一样的。
我懒,图形窗口模块只使用menu.c32。因为我加载了syslinux自带的 shell 。有一堆文件。一般有个图形的和上面提到的几个必须的依赖文件就够了。
看上去只要这些,就能启动了引导了。
libcom32.c32,libgpl.c32,liblua.c32,libmenu.c32,libutil.c32 menu.c32 reboot.c32
然后建立syslinux.cfg文件。文件格式必须是DOS和UNIX。
我的syslinux.cfg
UI /boot/syslinux/menu.c32
# 启动Veket
LABEL veket
SAY Now booting the Veket8.01 x86
MENU LABEL ^Veket 8.01 x86
KERNEL /boot/syslinux/veket/vmlinuz
APPEND initrd=/boot/syslinux/veket/initrd.gz pmedia=cd
# 启动MaxDOS
LABEL MaxDOS
SAY Now booting the MaxDOS Tools
MENU LABEL ^MaxDOS
KERNEL /boot/syslinux/memdisk
APPEND initrd=/dos/MaxDOS.img
# 重启动
LABEL reboot
SAY Rebooting System NOW!!
MENU LABEL ^Reboot system
KERNEL /boot/syslinux/reboot.c32
APPEND warm
# 调用Syslinux终端
LABEL Terminator
SAY Loading Syslinux Read-Only SHell
MENU LABEL [^C] Read-Only SHell
KERNEL /boot/syslinux/rosh.c32
最后启动完全搞定。觉得syslinux自己带的那个shell还真不错。
祝玩新版本愉快。 |
|