I read Bootable CD-ROM format Specification and other documents
provided by Phoenix, and realized what is needed to support CD-ROM and
other media in GRUB.
For bootable CD-ROM support, two kinds of implementation are
possible:
1. Support only hard disk emulation. In this case, GRUB doesn't need
to know if a boot disk is CD-ROM or other, because CD-ROM acts as
if it were the first hard disk. If the hard disk image is ext2fs or
other GRUB-supported filesystem, then we don't have to modify GRUB
at all.
2. Support all emulations. In this case, GRUB must check if a boot
disk is an emulated image, if so, terminate the emulation, get the
actual drive, and set the boot drive to it. In addition, we need to
support ISO-9660 filesystem and 0x800 bytes per sector drives.
Clearly, the second way is preferable, as we need to support ISO-9660
fs and 0x800 bytes per sector drives anyway if the user wants to use a
CD-ROM for a computer that does not support bootable CD-ROM.
For other media such as MO, GRUB must support drives whose sector
size is not 0x200 bytes. Currently, GRUB assumes that the size of a
sector is always 0x200 bytes for any drive, as well as many other
softwares. It is natural to fix this bad assumption.
Thanks,
OKUJI
----------------------------------------------------------------------
OKUJI Yoshinori <[EMAIL PROTECTED]> ^o-o^
http://duff.kuicr.kyoto-u.ac.jp/~okuji (in English) m /