1. First, the CD image is the ISO file using the "ISO 9660" file system.
The files on the CD all exist in this simple ISO file system, Linux can use the Mount-o loop to mount the *.iso file directly into a directory to view.
2. CD ROM also supports a standard called "El Torito Bootable CD specification" which allows the user to specify the boot loader on the CD.
When the computer starts up, the BIOS checks the CD/DVD for the boot flag, and then loads the boot program.
In a Linux system, you can specify a bootstrapper when you use the MKISOFS command for an ISO file, such as
Mkisofs-o <isoimage> \ b isolinux/isolinux.bin-c isolinux/boot.cat \-no-emul-boot- Boot-load-size 4-boot-info-table \ <root-of-iso-tree> More ISO file related options refer to Mkisofs Help
3. Linux CD-ROM installation, the use of the General Isolinux boot program, that is, with this isolinux is written to the above ei torito extension inside. The Isolinux boot program is loaded automatically when the system starts.
Isolinux is one of a series of boot programs for the Syslinux project, simply to say something like grub, which is to boot and boot the kernel. The Isolinux feature, which is distinguished from GRUB lilo and so on, is that he can recognize the iso9660 file system, so you can read the kernel image and Inird image on the CD and boot.
Isolinux startup, the default is to read out the CD root directory of a isolinux.cfg file, isolinux.cfg similar to Grub MENU.LST, the specified kernel image location and so on. This isolinux.cfg syntax can refer to Syslinux's documentation. Here's A
For example, specify the display terminal can use this option
---------------------------------------------
SERIAL port [[baudrate] FlowControl]
enables a serial port to act as the console. "Port" is a number (0 = /dev/ttys0 = com1, etc.) or an i/o port address (e.g. 0X3F8); if "baudrate" is omitted, the baud rate defaults to 9600 bps. the serial parameters are hardcoded to be 8 bits, no Parity, 1 stop bit. "FlowControl" is a combination of the following bits: &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;0X001&NBSP;-&NBSP;ASSERT&NBSP;DTR &nbSp; 0x002 - assert rts 0x008 - enable interrupts 0x010 - wait for cts assertion 0x020 - Wait for Dsr assertion 0x040 - wait for ri assertion 0x080 - Wait for DCD Assertion 0x100 - Ignore input unless Cts asserted 0x200 - Ignore input Unless dsr asserted 0x400 - Ignore Input unless ri asserted 0x800 - Ignore input unLess dcd asserted all other bits are reserved. typical values are: 0 - No flow control (default) 0x303 - null modem cable detect 0x013 - rts/cts flow control 0x813 - rts/cts flow control, modem input 0x023 - dtr/dsr flow control 0x083 - dtr/dcd flow control for the serial directive to be guaranteed to work properly, &nBsp;it should be the first directive In the configuration file. NOTE: "Port" values from 0 to 3 means the first four serial ports detected by the bios. they may or may not correspond to the legacy port values 0x3f8, 0x2f8, 0x3e8, 0x2e8. Enabling interrupts (setting the 0x008 bit) may give better responsiveness Without setting the nohalt option, but could potentially cause problems with buggy bioses. Nohalt flag_val if flag_val is 1, don ' T halt the processor while idle. Halting the processor while idle Significantly reduces the power consumption, but can cause poor responsiveness to the serial console, especially when using scripts to drive the serial console, as opposed to human interaction. Console flag_val If flag_val is 0, Disable output to the normal video console. if flag_val is 1, enable output to the video console (This is the default.) Some BIOSes try to forward this To the serial console and sometimes Make a total mess thereof, so this option lets you disable the video console on these systems.
-----------------------------------------------------------------
Syslinux don't know is be blocked or how, homepage cannot open, here has a source directory
Can find some simple documents and look at the code, Syslinux includes for the network boot Pxelinux and other programs, you can see for yourself.
4. Isolinux boot load Linux kernel follows a standard called "multiboot specification"
This multiboot defines how the Isolinux can be loaded into memory by the kernel file in the specified format, as well as specifying how the module is loaded and so on.
Isolinux first to load its own MBOOT.C32 module to support multiboot mode, and then MBOOT32.C32 to load the kernel and modules according to the configuration.
Like a isolinux.cfg.
LABEL Xen KERNEL mboot.c32 APPEND xen.gz dom0_mem=15000 nosmp noacpi---linux.gz console=tty0 root=/dev/hda1---Init Rd.img
Mboot's Code
Each module and parameter is parsed and then loaded in the Get_modules function. APPEND after the string passed to Mboot.c32, MBOOT.C32 with "---" as the dividing line, xen.gz dom0_mem=15000 nosmp noacpi is "dom0_mem=15000 nosmp NOACP I "passed to the Xen.gz module as a parameter. "Console=tty0 root=/dev/hda1" is passed to the Linux.gz module as a parameter. Linux.gz These are located in the CD image inside the location, generally with the directory bar.
Linux.gz These loads run, it is natural to read console=tty0 These parameters according to the Multiboo format.
At this point the system booted successfully, switching to the Linux environment, such as specifying a python program for the inird.img file system, and then starting to display the interface, prompting the user to install.
What is the Isolinux.cfg file?