[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RE[2]: Booting Linux using AHA2940UW (no IDE), with aic7xxx as modu



On Sun, 29 Nov 1998, Tani Wallach wrote:

> Disclaimer: I have not looked into the technical details of how it works 
> (but as I recall the LDP has a document called the "LILO Technical
> Overview" in addition to the "LILO Users Guide"). 

Fair enough.

> Lilo STARTS to boot a kernel (aka _bootstraps_) from any (including SCSI)
> disk BEFORE the kernel itself is in memory. So in the same way LILO can
> access the kernel image from the disk it can access the initial ramdisk
> (such as the "initrd" created by mkinitrd) if the file's location is
> "known" to lilo in advance. Once the initrd is loaded into memory - it
> serves as what it's called an "initial ramdisk" - i.e. a temporary root
> directory to help the kernel pull up it's pants (well it finished with the
> boots by now :). A "ls -R" look at one on my systems shows (see below)
> that not much is there besides the modules needed and insmod (and also a
> script - below - and a shell to do the actual loading). 

This is mostly correct HOWEVER dued to the limitiations of the PC using in
'86 mode, as is required to use INT13h during kernel load and boot, there
is only 1M of accessable RAM. So, LILO or the Zimage boot code COULD load
and init an initrd IF there was enough space to put it into (and
uncompress, and leave room for the kernel). Since there isn't any,
however, it does not. EMM/bugshit etc can't be used because when the init
code switches the CPU to virtual mode the access to the stored pages and
to the infamous extenders that built them is lost.

In other words, for this to work, LILO should be about as smart as the
kernel is, and it is not. After all it's a 4k boot loader.

The kernel must be able to read the initrd file wherever it is. If it is
on SCSI and the kernel can't read SCSI (i.e. the SCSI driver is not built
into it) it will have a problem. 

Peter