Замечание: Эта секция была предоставлена Rizwan Mohammed Darwe (rizwan AT clovertechnologies dot com)
Эта секция предполагает, что вы знакомы с процессом записи CD под linux. Рассматривайте ее как быструю справку на добавление возможности загрузки с создаваемого Вами CD. Для более глубокого ознакомления используйте CD-Writing-HOWTO.
На платформе x86, многие BIOS стали поддерживать загрузочные CD диски. Заплатки для mkisofs основаны на стандарте, называемом "El Torito". Проще выражаясь, El Torito - спецификация, в которой определяется формат загрузочного cdrom диска.
В спецификации "El Torito" говорится, что если BIOS поддерживает El Torito, то должно работать любое (SCSI или EIDE) устройство cdrom. До сих пор были протестированы только EDIDE устройства, так как ни один из протестированных SCSI контролеров до сих пор не поддерживает El Torito. Материнская плата должна явно поддерживать El Torito. Как же узнать поддерживает ли ваша материнская плата "El Torito"? Она должна поддерживать выбор загрузочного устройства HD, Floppy, Network или CDROM.
По стандарту El Torito, посредством BIOS, CDROM выглядит как обычный дисковод. Таким образом, вам достаточно где-либо в вашей файловой системе ISO поместить образ дискеты (а именно 1440k для 1.44 дисковода). В заголовках ISO вы помещаете указатель на этот образ. Тогда BIOS считывает этот образ с CD и создает видимость загрузки с дискеты. Например, это позволяет использовать загрузочную дискету с LILO без изменений.
Грубо говоря, первые 1.44 (или 2.88, если поддерживаются) мегабайт CD-ROM содержат образ поставляемой Вами дискеты. BIOS обходится с ним как с дискетой и загружается с него. (Вследствие этого, при загрузке с этого виртуального дисковода, Ваше настоящее устройство A: (/dev/fd0) не может быть доступно, но Вы можете попробовать /dev/fd1).
Сначала создайте файл, скажем "boot.img", который является правильным образом дискеты, с которой Вы хотите загружаться с CD-ROM. Это должна быть 1.44 MB загрузочная дискета. Это делается следующей командой
dd if=/dev/fd0 of=boot.img bs=10k count=144 |
Поместите образ где-то в дереве каталогов, из которого будет создаваться файловая система iso9660. Хорошо поместить все файлы, имеющие отношение к загрузке в отдельный каталог (например, подкаталог "boot/" в корне файловой системы iso9660).
Предостережение - Ваша дискета обязана загружать любой initial ramdisk через LILO, а не через драйвер ramdisk ядра! Так как после запуска ядра, эмуляция BIOS-ом CD как дисковода будет обойдена и не будет выполнена. LILO загружает initial ramdisk, используя дисковые процедуры BIOS, посему эмуляция будет работать как нужно.
Спецификация El Torito также требует создания "boot catalog". Это должен быть файл размером 2048 байт, который, кроме того, что должен существовать, больше ничем не интересен. Автор mkisofs сделал автоматическое создание файла boot catalog, но для этого Вам следует указать, где он должен быть помещен на файловой системе iso9660. Желательно поместить его в то же место что и загрузочный образ, и подходяще назвать, скажем, boot.catalog.
Итак, у нас есть файл с загрузочным образом boot.img, и мы собираемся поместить его в каталог boot/ на корневой файловой системе iso9660. Мы укажем размещение файла boot catalog с именем boot.catalog в том же каталоге. Команда создания образа файловой системы iso9660 в файл bootcd.iso такова:
mkisofs -r -b boot/boot.img -c boot/boot.catalog -o bootcd.iso . |
Теперь создаем уже способный загружаться CD обычным способом - командой cdrecord.
Первый шаг - получить с CD используемый загрузочный образ. Но Вы не можете просто смонтировать CD под linux и командой dd скопировать первые 1440k на дискету или в файл, такой как boot.img. Вместо этого просто загрузитесь с исходного CD-ROM.
После загрузки с Win98 CD вы попадаете в DOS приглашение на A:, который фактически - электронный диск. Установочные файлы находятся на D: или Z:. Используя dos команду diskcopy скопируйте образ A: на физические устройство, которое теперь B: Это делает следующая команда.
diskcopy A: B: |