On a PC the motherboard's BIOS together with the SCSI BIOS provided by most SCSI host adapters takes care of the problem of loading the boot loader's image from a SCSI disk into memory and executing it. This may require some settings to be changed in the motherboard's BIOS. When more than one SCSI adapter is involved, the SCSI BIOS settings may need to change to indicate which one contains the disk with the boot image. The boot image make also come from an IDE disk, a bootable CD-ROM or a floppy.
While LILO is the most common boot loader in use with Linux today, other boot loaders such as "grub" [see www.gnu.org/software/grub] should be considered if the root partition is a reiserfs or ext3 partition.
Some boot parameters related to the SCSI subsystem:
single [enter single user mode] <n> [enter run level <n> {0..6}] root=/dev/sda6 [*] root=/dev/scsi/host0/bus0/target0/lun0/part6 [*] root=/dev/sd/c0b0t0u0p6 [*] devfs=mount [overrides CONFIG_DEVFS_MOUNT=n] devfs=nomount [overrides CONFIG_DEVFS_MOUNT=y] init=<command> [executes <command> rather than init] quiet [reduce output to console during boot] debug [increase output to console during boot] max_scsi_luns=1 [limits SCSI bus scans to lun==0] * When devfs is in use the initial read-only mount of the root partition can be done via the old /dev/sd<a><n> notation or the new devfs notation (and two of these are shown). The joint "root=/dev/sda6 single" may be useful when disk or adapter changes have broken the kernel boot load. |
When Linux fails to boot after reporting a message like:
VFS: Cannot open root device 08:02 |
Lilo's configuration file /etc/lilo.conf can take the "root=" option in two ways. The normal way is a line like: 'root=/dev/sda2'. In this case /dev/sda2 is converted into major and minor numbers based on the state of the system when the lilo command is executed. This can be a nuisance, especially if hardware is going to be re-arranged. The other way is a line of the form: 'append="root=/dev/sda2"' In this case the /dev/sda2 is passed through to the kernel the next time it is started. This is the same as giving the "root=/dev/sda2" string at the kernel boot time prompt. It is interpreted by the kernel at startup (once the HBAs and their attached devices have been recognized) and thus is more flexible.