Building a Live CD (Русский)

From ArchWiki
Revision as of 20:36, 7 September 2011 by Strcat (Talk | contribs) (Bot: Removing from Category:Русские HowTo)

Jump to: navigation, search

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Building a Live CD (Русский)#)

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی


Зачем создавать 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

или

pacman -S brasero

Детали

Для примера, в этой статье мы рассмотрим создание 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