В началоСоздание LiveCD дистрибутива на базе Gentoo Linux → Собираем базовую систему
Gentoo-doc HOME Пред.: Подготовительные действияВ началоУровень выше: Создание LiveCD дистрибутива на базе Gentoo LinuxСлед.: Установка KDE

3. Собираем базовую систему

Сейчас можно входить (chroot'иться как еще говорят) в собираемую систему и начинать подгонять ее под свои потребности.

# cd scripts
# ./enter.sh

Если все прошло нормально — на экране не должно быть никаких ругательных сообщений, а приглашение командной строки выглядеть вот так: "(LIVECD) #". Сейчас мы находимся в только-что распакованной из stage2 системе.

Общий план работ таков:

  1. Установить имя машины/домена, профиль, дописать USE флагов в make.conf,создать /etc/fstab.

  2. Установить часовой пояс, перевести часы в режим Local, сгенерировать русские локали, установить русскую расскладку клавиатуры и экранный шрифт.

  3. Выполнить emerge -e system и emerge -e world для получения Stage3.

  4. Не забыть установить пароль root'у.

  5. Собрать ядро, настроить загрузчик и попробовать перезагрузиться.

  6. Установить свои приложения.

    Создать ISO образ и записать его на диск.

Первые два пункта за вас может выполнить подготовленный скрипт "_prepare.sh". Написан он был потому как собрать livecd получилось не с первого раза, и делать одно и тоже на только-что распакованных stage-2 порядком надоело. Его нужно скопировать куда нибудь в 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

    Если будут еще какие-либо проблемы - скачайте или обновитесь до самого свежего архива портежей. Не поможет — идите на bugzilla.gentoo.org.

  4. Устанавливаем пароль root'у

    (LIVECD) # passwd
  5. Создаем пользователя livecd

    (LIVECD) # useradd -m -G users,wheel,audio,video,cdrom,cdrw,usb -s /bin/bash livecd
    (LIVECD) # passwd livecd
  6. Устанавливаем splash темы для красивой графической загрузки

    (LIVECD) # emerge -av splash-themes-livecd
  7. Устанавливаем и компилируем ядро

    (LIVECD) # emerge -av gentoo-sources

    genkernel должен быть не старее чем 3.4.10_pre4. На момент написания этого руководства такой версии в стабильной ветке небыло. Если у вас тоже-самое -разрешаем устанавливать его из тестовой (~x86), для этого выполним

    (LIVECD) # echo 'sys-kernel/genkernel ~x86' >> /etc/portage/package.keywords
    (LIVECD) # emerge -av genkernel
    (LIVECD) # genkernel all —gensplash=livecd-2007.0
  8. Устанавливаем и добавляем в автозагрузку 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. На момент написания этого руководства такой версии в стабильной ветке небыло. Если у вас тоже-самое — разрешаем устанавливать его из тестовой (~x86), для этого выполним

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

    libkudzu нужен не ниже чем 1.2.57.1, если будет устанавливаться более старая версия — отвечаем 'no' и разрешаем libkudzu из тестовой ветки.

    (LIVECD) # echo 'sys-libs/libkudzu ~x86' >> /etc/portage/package.keywords
    (LIVECD) # rc-update add autoconfig default
  9. Устанавливаем загрузчик

    (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.

  10. Создаем образ и пробуем его загрузить. Выходим из chroot окружения и запускаем скрипт "build.sh"

    (LIVECD) # exit
    # ./build.sh

    Процесс сборки образа длиться примерно минут 5. После него забираем iso файл в директории livecd. Можно записать его на болванку, но лучше для этих целей поставить например VirtualBox или 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 грузиться. Сейчас желательно создать архив с каталогом livecd на случай если при дальнейших манипуляциях что нибудь пойдет не так — можно будет откатиться.

Пред.: Подготовительные действияВ началоУровень выше: Создание LiveCD дистрибутива на базе Gentoo LinuxСлед.: Установка KDE
В началоСоздание LiveCD дистрибутива на базе Gentoo Linux → Собираем базовую систему