Задача: Создать один CD, с которого можно загрузить как Linux (дистрибутив Linux-BBC), так и FreeBSD (Frenzy), т.е. в зависимости от потребностей можно грузить то Linux, то FreeBSD.
Все операции производились под Linux. ISO образы Linux-BBC и FreeBSD-Frenzyможно скачать с ftp://ftp.opennet.ru/pub/mini-cd/
1. Копируем Linux-BBC и FreeBSD-Frenzy в одну директорию, например, mix_cd:
mkdir 0 mkdir mix_cd
# Копируем содержимое Linux-BBC mount -o loop bbc-2.1.iso ./0 cd 0 find . -xdev | cpio -pdumv ../mix_cd cd ..
# монтируем образ floppy из Linux-BBC и копируем некоторые файлы # (memtest.gar, root.bin и linux) в корень mix_cd. mkdir 1 mount -o loop ./0/lnx.img ./1 cp ./1/memtest.gar ./mix_cd/ cp ./1/root.bin ./mix_cd/ cp ./1/linux ./mix_cd/ umount 0
# Копируем содержимое Frenzy mount -o loop frenzy_v02_release.iso ./0 cd 0 find . -xdev | cpio -pdumv ../mix_cd cd .. umount 0
2. Настраиваем загрузчик isolinux, чтобы грузить несколько образов с одного CD:
- Качаем архив syslinux_2.04.orig.tar.gz с сайта http://syslinux.zytor.com/iso.php
- Копируем загрузчик isolinux.bin из поставки syslinux в корень mix_cd.
- Создаем в корне mix_cd файл isolinux.cfg, следующего содержания: --------------- isolinux.cfg -------------- SERIAL 0 DEFAULT 1 TIMEOUT 150 DISPLAY main.txt PROMPT 1
LABEL 0 KERNEL boot/cdboot.bin LABEL 1 KERNEL linux APPEND vga=normal console=ttyS0,9600n8 console=tty0 root=/dev/ram0 initrd=root.bin ramdisk_size=10000 init=/linuxrc rw LABEL 2 KERNEL linux APPEND vga=785 console=ttyS0,9600n8 console=tty0 root=/dev/ram0 load_ramdisk=1 initrd=root.bin ramdisk_size=10000 init=/linuxrc rw LABEL 3 KERNEL linux APPEND vga=788 console=ttyS0,9600n8 console=tty0 root=/dev/ram0 load_ramdisk=1 initrd=root.bin ramdisk_size=10000 init=/linuxrc rw LABEL 4 KERNEL linux APPEND vga=791 console=ttyS0,9600n8 console=tty0 root=/dev/ram0 load_ramdisk=1 initrd=root.bin ramdisk_size=10000 init=/linuxrc rw LABEL 5 KERNEL linux APPEND vga=794 console=ttyS0,9600n8 console=tty0 root=/dev/ram0 load_ramdisk=1 initrd=root.bin ramdisk_size=10000 init=/linuxrc rw LABEL memtest KERNEL memtest.gar
--------------- end of isolinux.cfg --------------
- Создаем файл main.txt с подсказкой выдаваемой в момент загрузки:
--------------- end of main.txt --------------
Please press Enter for defaults or type one of the following boot options:
0 - FreeBSD Frenzy 1 - Linux-BBC, no framebuffer 2 - Linux-BBC (640x480) 4 - Linux-BBC (1024x768) 3 - Linux-BBC (800x600) 5 - Linux-BBC (1280x1024) memtest (for RAM test utility only)
--------------- end of main.txt --------------
3. Конфигурируем Frenzy и Linux-BBC под свои нужны, например, русифицируем Linux-BBC (можно сделать линк на русские шрифты от Frenzy), удаляем лишние программы и т.д. Описывать не буду, так как уе не помню, что именно было сделано :-) 4. Создаем образ и пишем на CD: mkisofs -b isolinux.bin -c boot.catalog -no-emul-boot -boot-load-size 4 -boot-info-table \ -r -J -D -o mix_cd.iso cd_mix cdrecord -dev=0,0,0 -speed=16 -eject -v mix_cd.iso