Вход:  Пароль:  
FreeSource: AltLinux/Sisyphus/LiveCD/Howto ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия AltLinux/Sisyphus/LiveCD/Howto за 2006-10-14 01:35:30..

Вступление

Мне на работе часто приходится решать задачу — накидать какую-то инфу на CD/DVD (далее — просто CD) с тем, чтобы потом можно было скинуть её где-нибудь в другом городе, где найти комп с Win проблема, не говоря уже о том, чтобы была нормальная ОС.


Так что поневоле приходится смотреть, как и где делаются загрузочные CD. В принципе, есть проприетарные программы, но речь тут не о них.

Алгоритм работы Live CD?

Допустим, мне надо перенеси небольшую «кучку» RPM с одного места на другое, и я хочу, чтобы носителем этой «кучки» был небольшой дистрибутив Linux (желательно последнее ядро и интерфейс покрасивее, чтобы на меня смотрели не с сожалением, а с изумлением :) ).

Рассмотрим вначале вопрос — что должно находится на этом CD .


1 – Поскольку это загрузочный диск, то на нём должен находится загрузчик, умеющий работать с isofs (iso9660).


Из тех, что на слуху – это или grub или syslinux

Для grub команда установки загрузчика (сформулировано мной нечётко, но кратко)
выглядит так (info grub раздел 3.4):


$ mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \
-boot-load-size 4 -boot-info-table -o grub.iso iso

Для syslinux так (isolinux.man) :
mkisofs -o <isoimage> \
          • b isolinux/isolinux.bin -c isolinux/boot.cat \
          • no-emul-boot -boot-load-size 4 -boot-info-table \
          <root-of-iso-tree>

(Опции – см man mkisofd)


2 – Сформированный «контейнер» пакетов – собственно то, что будет являться тем дистрибутивом, который расположена на Live CD?
В последнее время эту среду упаковывают в какую-нибудь специфическую файловую систему – это на ваш выбор.


3 – То, что видно пользователю при открытии диска.


Если говорить образно, то первый и второй пункт это тот «корабль», который может иметь на своему борту пассажиров.
А третий пункт – это то, что нужно увидеть пользователю для текущей работы (дистрибутив установки, сырцы и т.п.)

Непосредственный алгоритм работы Live CD?


Работа Live CD? аналогична работе обычной работе с жёсткого диска, но отличается всем понятыми отличиями :


– Нет возможности изменять файлы на самом CD поэтому приходится размещать корень файловой системы в памяти (одна из причин упаковки в специфическую файловую систему).
Live CD? должен уметь определять аппаратуру компьютера на который он загружен и подгружать необходимые модули.
– В частности Live CD? должен уметь находить разделы жёсткого диска компьютера и внешние носители информации (флеш-память, флоппи-диски и т.п.)
– Желательна возможность догружать «редко встречающиеся» и специфичные модули ядра (cups и т.п.) не учтённые при создании Live CD?.


1 загрузка ядра и его модулей из initrd (ещё одна упакованная файловая система с «драйверами»).
2 распаковка модулей ядра из Мandrake arhiv (mar) – исторически идёт от Мандрейка.
3 монтирование специфического файлового образа и создание корня в памяти компьютера.
4 монтирование остальных файловых систем (в том числе некоторых то-же в памяти)


В остальном всё аналогично обычной или сетевой загрузке.

Как сформировать образ Live CD?


Для того, чтобы сформировать образ Live CD? необходимо
– во-первых необходимо иметь пакетную базу (репозитарий пакетов), из которого можно спокойно собрать сборочную
среду и желательно, что-бы эта пакетная база была «непротиворечива» (без unmet` ов и т.п.)
– во-вторых создать какой-нибудь «контейнер» для построения будущего Live CD?

Создание пакетной базы


Теоретически, если у вас есть устойчивый и непротиворечивый дистрибутив, то вам можно сказать повезло и вам этот этап возможно не потребуется. Другое дело, если вы хотите собрать дистрибутив из пакетной базы, в которой «не всё так гладко» или надо выбрать из неё только часть пакетов.
Наверное. есть более простой путь, чем предлагаю я, но он ведёт к написанию собственных скриптов или пакетов (что конечно это самый правильный путь).


В пакете rpmtools есть очень полезный перловый скрипт gendistrib, как я понимаю, он остался ещё со времён старого установщика.
У него есть очень полезное для нас свойство – он в заданной директории, заполненной пакетами rpm (назовём это базой дистрибутива) находит :
+ недостающие для этой базы дистрибутива пакеты
+ указывает на нарушение зависимостей и конфликты пакетов (написал и задумался – а так-ли это ?)
но у него есть один недостаток – он работает с определённой структурой папок (можно посмотреть, например в Junior )


Ссылки


Страницы, ссылающиеся на данную: AltLinux/Sisyphus/LiveCD



 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]