|
SIBLO - Simple Boot Loader,此引导程序derived from syslinux,专门针对U盘设计
功能肯定没有grub4dos强大,但是兼容性方面应该继承了syslinux的特点,并且提供了直接启动NTLDR, SETUPLDR.BIN的功能
SIBLO - Simple Boot Loader(c) 2007 Dipl.-Ing. Michael Niederle
(c) 1994-2007 H. Peter Anvin
Last update: May, 19th, 2007
SIBLO is the first working part of the Simplux-Project. (Simplux will be a complete working environment on a USB-stick offering Linux and (optional) Windows functionality. It should work on the majority of modern PC systems without the need of installation and without using builtin drives - not even for swapping.) SIBLO is a boot loader intended to be used with USB-sticks, where several operating systems and tools share one single FAT-formatted partition. It is derived from SYSLINUX by H. Peter Anvin.
download siblo.zip (contains source code and binary files)
1.) LICENSEThis software is available under the GNU Public License. See gpl.txt for further information.
2.) DIFFERENCES TO SYSLINUXCurrently there are three main differences to SYSLINUX:
- SIBLO can directly start NT-loaders (NTLDR, SETUPLDR.BIN) - so you can boot Windows Live Systems like BartPE from FAT32-formatted USB-sticks of any size (up to 2 terrabyte).
- SIBLO writes itself into the reserved sectors at the beginning of a partition - there is no boot loader file (with the exception of the configuration file)
- SIBLO comes with its own installer program
Some compatibility options for old BIOSes were removed. (They surely won't boot from USB ...)
3.) INSTALLATIONThe installation tool is Windows-only.
To install the boot loader onto a partition just call the "install.bat" batch-file with the partition name as its only argument, e.g.
install f:SIBLO is intended to be used with (large) FAT32 formatted USB-Sticks. It will work on FAT16 partitions, too, but will need at least 23 reserved sectors on the partition. By default FAT32 partions will have enough reserved sectors, but FAT16 partitions won't. Under Linux you can specify the number of reserved sectors as an option to the format tools.
A FAT32 "info sector" is left untouched if it is stored immediately behind the boot sector (which is usually the case) otherwise it might get overwritten. In this case the device will still work but IO-performance might suffer.
Despite the fact that the installer works under Windows, big USB-sticks are best formatted using Linux, which offers the option to use small cluster sizes. Cluster size affects performance and waste of space. A cluster size of 2KB (4 sectors) seems to be appropriate.
I'm currently investigating optimal cluster sizes. Maybe not even the size but also the offset of the first cluster from the beginning of the partition might considerably influence stick performance.
File fragmentation is no problem with an USB-stick, because there are practically no seek overheads!
4.) THE CONFIGURATION FILEThe configuration file is named "siblo.cfg" and has the same structure as "syslinux.cfg".
There is currently one single new option (compared to SYSLINUX) for use in configuration files:
Here is an example siblo.cfg:
prompt 1
timeout 0
default 1
say 1 Linux
say 2 Bart PE
say 3 Bart PE / RAM-Disk
say 4 RAM-Test (memtest86)
say 5 RAM-FS
label 1
kernel vmlinuz
append root=/dev/ram0 initrd=initrd.gz PMEDIA=usbflash
label 2
ntloader setupldr.xp
label 3
ntloader setupldr.2k3
label 4
kernel memdisk
append initrd=memtest.ima
label 5
kernel ramboot
append initrd=rbdisk.ima PMEDIA=usbflash
The above example from one of my own USB-sticks uses two different ways of loading BartPE:
- directly from the stick - using the Windows XP version of "setupldr.bin"
- from a RAM-Disk - using the Windows 2003 version of "setupldr.bin" (you will also need "ramdisk.sys")
5.) CREATING SIBLO FROM SOURCETo build the boot loader from source you need NASM and Perl. (You will need Perl only, if you want to introduce new keywords.)
To start the build process just call the "build" batch-file.
The installer uses Windows specific function calls to access the partition. It shouldn't be too complicated to replace them with Linux specific function calls to build an installer runable from the Linux command prompt.
To build the installer from source you need a C++-Compiler. The sources contain a project file for Visual Studio .NET but it should be easy to to create a Makefile - there are just three source code files.
[ 本帖最后由 barton 于 2007-11-18 11:45 AM 编辑 ] |
|