Создание LiveCD

Материал из NNLUG Wiki

Перейти к: навигация, поиск

Создание LiveCD на основе isolinux

Операционная система: Debian GNU/Linux "Sarge"
Образ RAM-диска initrd.img создается на основе busybox+uclibc без использования пакета initrd-tools.

1. Скомпилировать isolinux из исходников syslinux: make isolinux.bin

2. Создать каталог fs/boot/isolinux и заполнить fs/boot/isolinux/isolinux.cfg:

DISPLAY /boot/isolinux/boot.msg
PROMPT 1
DEFAULT Linux
LABEL Linux
  KERNEL /boot/vmlinuz
   APPEND initrd=/boot/initrd.img root=/dev/ram0

3. Набрать текст приглашения к загрузке в fs/boot/isolinux/boot.msg:

^L^UPiDGiN Linux

Press Enter to default boot from CD-ROM
To change root filesystem type:  Linux root=/dev/<device>
To disable ACPI type:            Linux acpi=off

4. Установить uclibc под i386: пакеты libuclibc-dev, libuclibc0, uclibc-toolchain

5. Скомпилировать busybox с использованием uclibc (make config && make) и установить (make --prefix=$BASE/initrd-fs install)

6. Скомпилировать ядро, ядро vmlinuz конфигурируется под машину (платформу)

 cp /boot/vmlinuz fs/boot/

7. Создать файловую систему, (каталог original-fs, у меня получился 1.8 MB)

8. Создать образ корневой файловой системы, initrd.img:

 dd if=/dev/zero of=initrd.img bs=1M count=4
 /sbin/mke2fs initrd.img
 sudo mount -o loop initrd.img initrd-fs/
 cp -a original-fs/* initrd-fs/ # конфигурационные файлы
 sudo umount initrd-fs
 mv initrd.img fs/boot/

Должна получиться следующая структура каталогов:

fs/
fs/boot/
fs/boot/isolinux/
fs/boot/isolinux/boot.msg
fs/boot/isolinux/isolinux.bin
fs/boot/isolinux/isolinux.cfg
fs/boot/initrd.img
fs/boot/vmlinuz
fs.iso
initrd-fs/
initrd.img
...
original-fs/
...

9. Создать ISO-образ диска:

mkisofs -l -r -J \
  -hide-rr-moved -no-emul-boot -boot-load-size 4 -boot-info-table \
  -b boot/isolinux/isolinux.bin -V "PiDGiN Linux" -o fs.iso fs/

10. Загрузить через BIOS или через qemu:

qemu -cdrom fs.iso

Размер образа диска LiveCD под AMD K7 получается порядка 3.7 Мбайт.
Скриншот системы сразу после загрузки в qemu:

Screenshot-pidgin-k7-busybox-uclibc.png

Ссылки: