Поиск






Воскресенье, 24.11.2024, 19:21

| RSS

ОТДЕЛ
ИНФОРМАЦИОННЫХ
ТЕХНОЛОГИЙ
 
Каталог статей


Главная » Статьи » Интересные статьи

Создание Linux LiveCD
Источник http://www.ibm.com/developerworks/ru/
Иван Орехов, технический руководитель команды JEE разработчиков, Exigen Services

Linux Live-CD – это загрузочный диск, который строится на основе дистрибутива Linux. Он не требует установки на жесткий диск. Для инициализации необходимо вставить в диск в привод CD-ROM. Так же Linux Live-CD очень удобно применять в целях ознакомления, так как использование данного программного продукта не предусматривает владения пользователем практически ни каких специальных знаний и навыков. Операции выполняются буквально в два шага, не влияют на установленные операционные системы.

А начинается всё с того известного факта, что необходимая для работы Linux корневая файловая система может быть расположена в ОЗУ, на виртуальном, так сказать, диске. Не "к ночи буде упомянута" MicroSoft Co., кстати, тоже подобного достигла. На уровне MS DOS 7.0, если память не изменяет. То есть, виртуальный диск был известен в MS DOS с версии 3.3, но одновременно перенести ядро ОС в расширенную память, а файловую систему - на виртуальный диск, да так, чтобы дисковод можно было освободить и продолжать работать... Мне, почему-то такое удалось увидеть только на Start-Up дискете Windows'95. Не исключаю, впрочем, что это моя вина: плохо смотрел. Только неважно это: последующие ОС от MicroSoft начисто такой возможности лишились - и забудем об этом. Вернёмся к Linux.

Так же Live-CD повсеместно применяют на производстве. Компьютеры, которые интегрированы в электронные игровые автоматы или киоски зачастую загружают операционную систему с CD носителя.

Достоинствами такого использования служат:

  • Неизменность данных на оптическом диске;
  • Высокая надежность CD-RO приводов;
  • Удобство замены носителя с системой;
  • Простота производственного процесса. Не требуется производить предварительную настройку или установку операционной системы.

Замечено довольно большое появление на рынке новых Linux LiveCD. И это не удивительно. Всегда существовала потребность в проблемно – ориентированных системах, которые можно было использовать, не устанавливая на жесткий диск. Скороть развития IBM PC и широкие возможности Linux позволили с довольной легкостью создавать подобные системы.

Основная настройка

Linux ASP, Linux Gentoo, Linux Mandrake, Linux SuSE, …, Linux Ubuntu – и можно привести в пример еще целый ряд программных продуктов. Но остановимся на Linux Fedora. Установка и настройка Linux Fedora на столько проста, что с ней справится даже ребенок.

Система инсталлирована. Теперь для использования Live-CD необходимо иметь пакет «инструментов» для того, чтобы создать загрузочный диск livecd-tools. Производим запуск менеджера пакетов pirut.

Листинг : Установка pirut

[root@localhost ~]# yum install pirut
[root@localhost ~]# pirut

Вбиваем в поиск livecd-tools и устанавливаем все, что предложил pirut.


Создание CD

Отметим появление новой команды - livecd-creator.

root@localhost ~]# livecd-creator help
Usage: livecd-creator [options]

Options:
-h, help show this help message and exit
Image options:
These options define the created image.
-c KSCFG, config=KSCFG
Path to kickstart config file
-b BASE_ON, base-on=BASE_ON
Add packages to an existing live CD iso9660 image.
-f FS_LABEL, fslabel=FS_LABEL
File system label (default based on config name)
System directory options:
These options define directories used on your system for creating the
live image
-t TMPDIR, tmpdir=TMPDIR
Temporary directory to use (default: /var/tmp)
cache=CACHEDIR Cache directory to use (default: private cache)

По адресу /usr/share/livecd-tools/ расположено большое количество ks-файлов. Возникает вопрос, что находится в файлах с расширением .ks.

  • lang en_US.UTF-8 – язык системы;
  • keyboard us - раскладка клавиатуры;
  • timezone US/Eastern - временная зона (США/Восточная);
  • auth useshadow enablemd5 - вид аутентификации: применять файл shadow и применять md5;
  • selinux –enforcing - включить систему безопасности (разграничения доступа);
  • firewall –disabled - отключить файервол;
  • part / size 1024 - деление корня файловой системы на части;
  • repo name=development mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch - указать репозиторий с именем development и зеркалами, где его можно достать;
  • %packages - перечисляется, какие пакеты добавлять;
  • @core – ядро;
  • bash - коммандный интерпретатор (консоль);
  • kernel – ядро Linux;
  • passwd - для управления авторизацией по паролям;
  • policycoreutils - утилиты для управления политиками ядра, необходимые для работы; chkconfig - настройки утилиты проверки;
  • authconfig - настройки утилиты авторизации;
  • rootfiles - файлы, которые будут положены в домашний каталог рута.

Необходимо разобраться так же и в остальных .кs-файлах. У них простой синтаксис и это достаточно увлекательное занятие.

В качестве настройки конфигурации в livecd-creator вставляем один из .кs- файлов. Получится образ диска livecd.iso. его можно записать на оптический диск или запустить в виртуальной машине.

 [root@localhost ~]# livecd-creator 
config=/usr/share/livecd-tools/livecd-fedora-minimal.ks

Первый Live-CD диск готов. Но это пока что консоль.

Теперь сделаем еще один загрузочный диск, который будет иметь графический интерфейс и примитивное программное обеспечение. Для этих целей в инструментарий livecd-creator поставим файл livecd-fedora-8-kde.ks.

 [root@localhost ~]# livecd-creator 
config=/usr/share/livecd-tools/livecd-fedora-8-kde.ks

Таким образом создание загрузочных дисков с различным содержанием сводится к применению файлов с расширением .кs в инструментарий livecd-creat.

Широкое применение получил способ создания LiveCD на сонове Gentoo Linux. Получившейся диск будет русифицирован, будет установлена KDE, обеспечено монтирование накопителей flash автоматически. В роли загрузчика применяется ISOLINUX. Ранее использовался GRUB, но от него отказались, потому что не функционировал на некоторых ноутбуках.

Созданный при помощи рассмотренной инструкции диск можно постоянно модифицировать, устанавливать обновленный пакеты, то есть делать с ним все, что можно делать с обыкновенным установочным файлом, который находится на персональном компьютере.


Подготовка

Для подготовки нужно создать некоторую структуру каталогов. Место создания не имеет значения. Можно расположить его в домашней директории.

Вот его структура:

  • livecd conf – набор файлов конфигурации;
  • source – дистрибутив, создаваемый пользователем;
  • scripts - набор вспомогательных скриптов;
  • distr - исходники: portage, stage, картинки и пр;
  • target - здесь сборочный скрипт создаст squashfs образ.

Создаем:

- $ cd $ mkdir -p livecd/{conf,distrib,scripts,source,target};

Сборка Live-СD будет происходить на второй стадии. Необходимо скачать ее из интернета и копировать в distr. Распаковать в каталог сборки. Распаковка должна происходить с правами доступа root, так как иначе возникнут проблемы с созданием устройств в каталоге /dev.

# sudo tar -C source/ -pxjvf distrib/stage2-i686-2007.0.tar.bz2

Распаковывать архив с портеджами и дистфайлами не нужно. Скрипты в автоматическом режиме будут монтировать эти каталоги от основной системы.

Для наиболее легкого отличия консоли в chroot – окружении от консоли основной системы необходимо для chroot – консоли изменить приглашение в командной строке. Вместо значения "#" необходимо прописать "(LIVECD) #". Для этих целей нужно копировать файл root/bashrc, который был заготовлен заранее в директории conf, и вставить его в каталог source/root. В начало названия необходимо прописать точку.

Для того, чтобы собрать образ, нужно чтобы на компьютере был установлен набор пакетов cdrtools и squashfs-tools. Первый предназначен для записи CD дисков, а второй – для работы с файловой системой SquashFS.

# emerge -av squashfs-tools cdrtools


Сборка базовой системы

На данном этапе представляется возможным входить в полученную систему и настраивать ее под собственные требования.

# cd scripts
# ./enter

В случае удачного завершения работы на дисплее не должно быть сообщений об ошибке. Приглашение командной строки должно иметь следующий вид:

"(LIVECD) #"

На данной стадии процесс создания находится на этапе распакованной из stage2 системы.

Общий план работ выглядит следующим образом:

  1. Установка имени машины (домена), профиля; установка USE флагов в make.conf, создание /etc/fstab.
  2. Установка часового пояса, перевод часов в режим Local; генерация русских локалей, установка русской раскладки клавиатуры и шрифтов.
  3. Произвести emerge -e system и emerge -e world для перехода на Stage3.
  4. Установить пароль root'у.
  5. Сборка ядра, настройка разгрузчика, перезагрузка.
  6. Установка пользовательских приложений.
  7. Создание ISO образа и запись его на диск.

Первые два пункта может выполнить специально подготовленный скрипт "_prepare.sh". он был написан в связи с тем, что собрать livecd с первого раза не удавалось. Его необходимо копировать и вставить в source директорию, выполнить единожды для полученного stage-2. Копировать его можно в /root или прямиком в корень. Очень важно не забыть удалить его перед созданием ISO образа.

Начинаем создание образа диска. Следует напомнить, что все происходит в chroot окружении.

  1. Подготовка и русификация системы;
    (LIVECD) # ./_prepare.sh
    (LIVECD) # rm _prepare.sh

  2. Установка основных утилит для управления пакетами
    (LIVECD) # emerge -av gentoolkit

  3. Сборка Stage3
    (LIVECD) # emerge -e system

    Обновление конфигурационных файлов обновленных приложений

    (LIVECD) # dispatch-conf

Здесь необходимо быть предельно внимательны. Нужно не затереть те файлы конфигурации, которые Вы сами изменяли (или их изменил скрипт _prepare.sh). Это применимо для русского шрифта, раскладки клавиатуры и тому подобное. Прежде чем в ответ на вопрос dispatch-conf'a нажимать 'u', нужно внимательно посмотреть, какой файл он хочет обновить. В случае, если это файлы: clock, consolefont, hostname или keymaps - нажимайте 'z' (не обновлять).

(LIVECD) # revdep-rebuild

(LIVECD) # emerge -e world
(LIVECD) # dispatch-conf
(LIVECD) # revdep-rebuild

Пересборка system на Turion64X2 заняла приблизительно 2.5 часа, world - 3 ч.

При использовании emerge -e system возникают трудности с perl. Если такое произойдет, нужно сделать так (ставиться будет 15 минут):

(LIVECD) # emerge --oneshot gdbm db
(LIVECD) # emerge -N --oneshot --nodeps perl

После нужно снова выполнить emerge -e system.

Есть возможность возникновения ошибки в system в пакете sys-apps/attr. Она будет иметь следующий вид:

libexpat.so.0: cannot open shared objects file: No such file or directory".

В это случае нужно создать символическую ссылку с libexpat.so на libexpat.so.0 и продолжить сборку системы. Выполнить действия:

(LIVECD) # ln -s /usr/lib/libexpat.so /usr/lib/libexpat.so.0
(LIVECD) # emerge –resume

Существуют небольшие недочеты при применении portage от 05.03.2008. - возникает прерывание на emerge -e system в пакете 'which-2.19'. ошибка выглядит: "error: readline/rlstdc.h: No such file or directory". При сборке в системе должна присутствовать библиотека readline. Но она отсутствует. Этот файл необходимо установить в ручную и продолжить сборку system.

Подробнее:

(LIVECD) # emerge -av readline
(LIVECD) # emerge --resume

В случае возникновения каких-либо проблем. Нужно скачать или обновить архив кортежей.

  1. Установка пароля root'у:
    (LIVECD) # passwd 

  2. Создание пользователя livecd:
    (LIVECD) # useradd -m -G users,wheel,audio,video,cdrom,cdrw,usb -s /bin/bash livecd
    (LIVECD) # passwd livecd

  3. Установка splash темы для красочной графической загрузки системы:
    (LIVECD) # emerge -av splash-themes-livecd

  4. Установка и компиляция ядра:
    (LIVECD) # emerge -av gentoo-sources

    genkernel должен быть не старее, чем 3.4.10_pre4.

    Установка этого компонента:

    (LIVECD) # echo 'sys-kernel/genkernel ~x86' > /etc/portage/package.keywords


    (LIVECD) # emerge -av genkernel
    (LIVECD) # genkernel all --gensplash=livecd-2007.0

  5. Необходимо установить и добавить в автозагрузку скрипты Gentoo LiveCD. Снять маскировку. Она установлена разработчиками для предупреждения предназначения их для применения только вместе с livecd.
    (LIVECD) # echo 'app-misc/livecd-tools' > /etc/portage/package.unmask
    (LIVECD) # echo 'x11-misc/mkxf86config' > /etc/portage/package.unmask
    (LIVECD) # echo 'sys-apps/hwsetup' > /etc/portage/package.unmask

    livecd-tools необходим версии не ниже 1.0.40_pre1.

    Выполнить действия:

    (LIVECD) # echo 'app-misc/livecd-tools ~x86' > /etc/portage/package.keywords
    (LIVECD) # emerge -av livecd-tools
    (LIVECD) # rc-update add autoconfig default

  6. Установка загрузчика:
    (LIVECD) # emerge -av syslinux
    (LIVECD) # mkdir /boot/isolinux
    (LIVECD) # cp /usr/lib/syslinux/isolinux.bin /boot/isolinux
    (LIVECD) # cp /boot/kernel-genkernel-x86-2.6.23-gentoo-r6/boot/isolinux/vmlinuz
    (LIVECD) # cp /boot/initramfs-genkernel-x86-2.6.23-gentoo-r6 /boot/isolinux/initrd

    Из директории с конфиг. файлами копируем в /boot/isolinux файл isolinux.cfg.

  7. создать образ и произвести пробную установку.

    Выйти из chroot окружения и запустить скрипт "build.sh"

    (LIVECD) # exit
    # ./build.sh

Длительность процесса сборки образа происходит около пяти минут. Следующим шагом нужно забрать iso файл в директории livecd. Так же можно записать его на диск. Специалисты советуют для подобных целей использовать виртуальную машину VMWare для повышения удобства и скорости работы.

Запись на CD диск:

# cdrecord -v -eject speed=10 fs=8m dev=/dev/cdrw image.iso

Запись на DVD диск:

# growisofs -dvd-compat -Z /dev/dvd=image.iso

Загрузка образа произошла. После приглашения нужно ввести свой root и пароль. В случае удачной сборки системы можно считать, что половина дела сделана. Рекомендуется создать архив, который будет содержать архив с каталогом livecd на случай, есди при дальнейшей установке произойдут сбои. Можно будет вернуть систему в прежнее состояние.


Установка KDE

  1. Установка Xorg:
    (LIVECD) # emerge -av xorg-xserver

  2. Установка оригинального драйвера nVidia:
    (LIVECD) # emerge -av nvidia-drivers

  3. Правка таблицы соответствия устройства - драйвер для карт nVidia.

    Открыть файл /usr/share/hwdata/Cards.

    1. Найти строку NAME NVIDIA Legacy и сменить наименование драйвера 'vesa' на 'nv'.
    2. Найти строку NAME NVIDIA GeForce и сменить наименование драйвера с 'vesa' на 'nvidia'.
  4. Установить минимальную комбинацию KDE:
    (LIVECD) # emerge -av kdm kdebase-startkde kde-i18n

  5. Добавить в автозапуск xdm и указать в нем оконный менеджер, который нужно заменить. В файле /etc/conf.d/xdm переменной DISPLAYMANAGER присвоить значение "kdm".
    (LIVECD) # rc-update add xdm default

  6. Настройка автоматического монтирования съемных устройств:
    (LIVECD) # emerge -auv dbus hal pmount
    (LIVECD) # rc-update add dbus default
    (LIVECD) # rc-update add hald default
    (LIVECD) # gpasswd -a livecd plugdev

  7. Включить русскую раскладку клавиатуры и переключатель en/ru
    1. Открыть файл /usr/sbin/mkxf86config.sh и удалить строку вида
      "-e 's|"XkbLayout" *"[^"]*"|"XkbLayout" "'"${XKEYBOARD}"'"|g;'"${DEADKEYS}" \"

    2. Открыть файл /etc/X11/xorg.conf.in и в секции InputDevice, Keyboard0 сменить последние три строчки на следующие:
      Option "XkbLayout" "us,ru(winkeys)"
      Option "XkbVariant" "us"
      Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"

Установка автоматической авторизации в текстовой консоли миную root.

  1. Установить mingetty:
    (LIVECD) # emerge -av mingetty

  2. Прописать его в /etc/inittab вместо agetty.

    Было так:

    c1:12345:respawn:/sbin/agetty 38400 tty1 linux

    Нужно исправить:

    c1:12345:respawn:/sbin/mingetty --autologin root --noclear tty1

    Становится ясно, что вместо root можно прописать абсолютно любого пользователя.

  3. Исправить файл /sbin/rc:

    Найти секцию (приблизительно - это строка N 500):

    if [ -f "/sbin/livecd-functions.sh" -a -n "${CDBOOT}" ]
    then
    ebegin "Updating inittab"
    livecd_fix_inittab
    eend $?
    /sbin/telinit q &>/dev/null
    fi

    Изменить на:

    if [ -f "/sbin/livecd-functions.sh" -a -n "${CDBOOT}" ]
    then
    ebegin "Updating inittab"
    /bin/true #livecd_fix_inittab
    eend $?
    /bin/true #/sbin/telinit q &>/dev/null
    fi

  4. Создание своего сообщения после init:

    Открыть файл /sbin/rc, найти строку вида 'echo -e " Copyright'. Добавить ниже свое сообщение.

  5. Автоматическая авторизация в KDE:

    Открыть файл /usr/kde/3.5/share/config/kdm/kdmrc. Прописываем пользователя в строки 'DefaultUser' и 'AutoLoginUser'.

  6. Красивый и настроенный под пользователя рабочий стол:

    Запустить полученный LiveCD, загрузиться в KDE. Настраиваем его под себя. Все, шрифты, поведение окон, курсор занятости, панели и пр. Сжать свой домашний каталог (/home/livecd) и копировать его на внешний носитель. Выйти из LiveCD, chroot'иться в source. Распаковать в каталог /home/livecd/ сохраненные настройки.

Версии основных применяемых пакетов:

  • sys-fs/squashfs-tools-3.1_p2;
  • app-misc/livecd-tools-1.0.40_pre1;
  • sys-kernel/genkernel-3.4.10_pre4;
  • sys-kernel/gentoo-sources-2.6.23-r9;
  • sys-apps/hwdata-gentoo-0.3;
  • sys-apps/hwsetup-1.2;
  • x11-misc/mkxf86config-0.9.9;
  • stage2-i686-2007.0.tar.bz2;
  • portage-20080305.tar.bz2.

Таким образом, использование LiveCD в образовательных целях позволяет достаточно легко научиться создавать собственные образы ISO. При обучении необходимо делать упор на освоение стандарта ISO 9660. Данный стандарт является единой файловой системой, которая предписывает определенный метод сохранения иерархического дерева каталогов, размер, структуру и формат загрузочных секторов диска. Большинство Linux Live-CD использует стандарт ISO 9660 ISO - образов.


Категория: Интересные статьи | Добавил: sashacd (05.02.2011)
Просмотров: 3917 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright ООО "Отдел Информационных Технологий" © 2024