Создание Live CD

From ArchWiki

Jump to: navigation, search
Image:Tango-dialog-warning.png This article is out of date.
Please help improve the wiki by updating the article and correcting mistakes.
i18n
Русский
English

Contents

Зачем создавать Live CD?

Часто бывает удобно иметь под рукой версию Arch Linux, работающую полностью с CD. Live CD может использоваться для восстановления вашей системы, для проверки новых машин или оборудования на совместимость с GNU/Linux, для создания демонстрационного диска для показа ваших проектов и многого другого.

Прежде чем начать, вам потребуется

  1. Для создания iso-образа, форматирования файловой системы и для изменения размера образа, вам понадобятся пакеты "cdrtools" и "e2fsprogs".
pacman -S cdrtools
pacman -S e2fsprogs
  1. Также вам понадобятся создать на жестком диске
    1. 1 раздел для установки дистрибутива
    2. 1 директория на вашем активном разделе, чтобы сохранить образ для записи на диск.
  2. CD-RW диск для записи и проверки разных версий образов, и пишущий привод.
  3. Установить пакет для записи CD (если вы не знаете, что выбрать, устанавливайте "k3b").
pacman -S k3b

Детали

Для примера, в этой статье мы рассмотрим создание mini Arch Linux Live CD (110MB). Он основан на базовых пакетах, установленных с помощью Arch Linux's CD installer версии 0.5

Загрузитесь с помощью Arch Linux CD installer и установите базовые пакеты

Установив пакеты, установите ядро, но не устанавливайте загрузчик. Также вы можете копировать образ вашего собсвенного ядра (/boot/vmlinuz), и соответствующих ему модулей (/lib/modules/2.x.x) с вашей системы. Чтобы загрузиться в новую систему, настройте соответствующим образом ваш загрузчик.

Совет: Для проверки на наличие ошибок в процессе загрузки, примонтируйте раздел с новой системой в ваш Arch Linux и исправьте следующие строчки в файле /etc/rc.local для приостановки системы перед аутентификацей пользователя:

echo "Press any key to continue..."
read KEY

Внимание: Не забудьте убрать паузу!!

В вашей системе, в /root создайте каталог "mylivecd" и два подкаталога: "isolinux" и "system" (вы можете использовать свои имена).

# cd /root
# mkdir mylivecd
# cd mylivecd
# mkdir isolinux
# mkdir system

Установите isolinux. Скопируйте его с Live CD

  1. Загрузите "isolinux.bin" и "boot.cat" в каталог /root/mylivecd/isolinux/ :

http://amlug.bliss-solutions.org/live-cd/distfiles/0.5.1/isolinux/

  1. Создайте загрузочное сообщение "boot.msg" (текстовый файл) и запишите туда краткое описание вашего live CD. Сохраните этот файл в /root/mylivecd/isolinux/.

Пример boot.msg:

This is a Live CD test ver. 0.1.
F1 - boot message
F2 - package list
 
 Press Enter
  1. Создайте "isolinux.cfg" и поместите туда следующий текст. Сохраните файл в /root/mylivecd/isolinux/
prompt 1
timeout 0
display boot.msg
F1 boot.msg
F2 package.txt
default vmlinuz initrd=miniroot.gz init=/sbin/init ramdisk_size=100000 load_ramdisk=1 prompt_ramdisk=0 vga=788 root=/dev/ram0

Создайте один miniroot образ

Miniroot загружается в оперативную память во время загрузки и действует также как и на HD. Используйте файловую систему Ext2.

Внимание: Настройка miniroot зависит от /etc/inittab, /etc/rc.sysinit, /etc/rc.multi, и /etc/rc.shutdown. Перед созданием miniroot-образа, внимательно изучите эти файлы и продумайте как они могут быть изменены при необходимости. В каталоге /sbin вам понадобятся слеующие файлы:
http://amlug.bliss-solutions.org/live-cd/distfiles/0.5.1/miniroot/init/sbin/

  1. Создайте текстовый файл "miniroot" в /root/mylivecd с файловой системой Ext2. Размер образа зависит от того, как много пакетов вы собираетесь включить в него. В нашем примере мы создадим образ 15.8MB. Рекомендуется создавать образ как можно меньше. Когда будете готовы, примонтируйте образ например в /mnt/image
# cd /root/mylivecd
# touch miniroot
# mkfs.ext2 miniroot 15840 (press "y" for each question)
# mkdir /mnt/image
# mount -t auto -o loop miniroot /mnt/image
# rm -R /mnt/image/lost+found

Внимание: Если вы хотите поменять размер, используйте следующие команды (для уменьшения размера до 11.5MB):

# e2fsck -f miniroot (press "y" for /lost+found not found.  Create<y>?)
# resize2fs miniroot 11520
  1. Примонтируйте раздел с новой системой. Копируйте файлы и каталоги из нового раздела в /mnt/image
# mkdir /mnt/tmp
# mount /dev/hda3 /mnt/tmp
# cp -Ra /mnt/tmp/bin /mnt/image/
# cp -Ra /mnt/tmp/etc /mnt/image/
# cp -Ra /mnt/tmp/sbin /mnt/image/
# cp -Ra /mnt/tmp/tmp /mnt/image/
# cp -Ra /mnt/tmp/var /mnt/image/
  1. Копируйте /usr, /lib/modules/2.x.x/, /lib/modules/evms/, /lib/modules/security/ в /root/mylivecd/system/ :
# cp -Ra /mnt/tmp/usr /root/mylivecd/system/
# cp -Ra /mnt/tmp/opt /root/mylivecd/system/
# mkdir /root/mylivecd/system/lib
# cp -Ra /mnt/tmp/lib/modules /root/mylivecd/system/lib/
# cp -Ra /mnt/tmp/lib/evms /root/mylivecd/system/lib/
# cp -Ra /mnt/tmp/lib/security /root/mylivecd/system/lib/

Внимание: : Если /bin и /sbin слишком велики вы можете попробовать использовать busybox: http://www.busybox.net/ Или использовать временные папки, которые будут удалены или переименованы при загрузке /rc.sysinit. Здесь пример как это можно сделать: http://amlug.bliss-solutions.org/live-cd/distfiles/0.5.1/miniroot/init/sbin/rc.sysinit

  1. Создайте следующие каталоги в /mnt/image и копируйте /mnt/tmp/lib файлы в /mnt/image/lib/ (не копируйте /mnt/tmp/lib/module, ~/lib/evms и ~/lib/security):
# cd /mnt/image
# mkdir dev
# mkdir home
# mkdir lib
# mkdir mnt/cdrom
# mkdir mnt/floppy
# mkdir root
# mkdir proc
# mkdir lib/modules
# cd /mnt/tmp/lib/
# cp -a l* /mnt/image/lib/
  1. С каталогами /usr и /opt создайте ссылки в /mnt/image/. Также создайте ссылку на /system/lib/modules/2.x.x/. Копируйте образ ядра в /root/mylivecd/isolinux/:
# cd /mnt/image
# ln -sf /mnt/cdrom/system/usr usr
# ln -sf /mnt/cdrom/system/opt opt
# cd /mnt/image/lib/modules/
# ln -sf /mnt/cdrom/system/lib/modules/2.4.22 2.4.22
# cd /mnt/image/lib/
# ln -sf /mnt/cdrom/system/lib/evms evms
# ln -sf /mnt/cdrom/system/lib/security security
# cp /mnt/tmp/boot/vmlinuz /root/mylivecd/isolinux/
  1. Исправьте /mnt/image/etc/fstab как показано здесь:
/dev/root      /      ext2    defaults 0 0
none           /proc  proc    defaults 0 0
/dev/floppy/0          /mnt/floppy   auto      user,rw,noauto,unhide     0      0
/dev/cdroms/cdrom0     /mnt/cdrom   iso9660   ro,user,noauto,unhide  0      0
  1. Добавьте следующие строчки в файл rc.sysinit (после строки: stat_busy "Mounting Local Filesystems") в /mnt/image/etc/. Это позволит чтение файлов из каталога /system с CD.
/bin/mount /dev/cdroms/cdrom0 /mnt/cdrom -o ro -t iso9660
  1. Сожмите miniroot и поместите miniroot.gz в /root/mylivecd/isolinux/
# cd /root/mylivecd/
# umount /mnt/image
# gzip -c miniroot >> miniroot.gz
# mv miniroot.gz isolinux/
  1. Перед компиляцией, переместите /root/mylivecd/miniroot в безопасное место. Создайте временный каталог для iso образа (не внутри /mylivecd). Выполните следующий код (не забудьте "." в конце строки):
# cd /root/mylivecd
# mkdir /root/isotmp
  1. Создайте ISO:
mkisofs -o /root/isotmp/test-livecd-0.1.iso -R -V "Test 0.1" \
-T -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \
-boot-load-size 4 -boot-info-table -A "Test Live CD 0.1" .

Заключение

Надеемся это руководство помогло вам. Удачи!


Дополнительная информация:

Исходные коды и содержимое AMLUG Live CD: http://www.amlug.net/new-projects/forum/index.php?showforum=23

Создание Live CD в других дистрибутивах: http://www.babytux.org/articles/howto/how2livecd.php


Personal tools