В начало → Создание LiveCD дистрибутива на базе Gentoo Linux → Собираем базовую систему |
Сейчас можно входить (chroot'иться как еще говорят) в собираемую систему и начинать подгонять ее под свои потребности.
#
cd scripts
#
./enter.sh
Если все прошло нормально — на экране не должно быть никаких ругательных сообщений, а приглашение командной строки выглядеть
вот так: "(LIVECD) #
". Сейчас мы находимся в только-что распакованной из stage2 системе.
Общий план работ таков:
Установить имя машины/домена, профиль, дописать USE
флагов в make.conf
,создать /etc/fstab
.
Установить часовой пояс, перевести часы в режим Local, сгенерировать русские локали, установить русскую расскладку клавиатуры и экранный шрифт.
Выполнить emerge -e system и emerge -e world для получения Stage3.
Не забыть установить пароль root'у.
Собрать ядро, настроить загрузчик и попробовать перезагрузиться.
Установить свои приложения.
Создать ISO образ и записать его на диск.
Первые два пункта за вас может выполнить подготовленный скрипт "_prepare.sh
". Написан он был потому как собрать livecd получилось не с первого раза, и делать одно и тоже на только-что распакованных
stage-2 порядком надоело. Его нужно скопировать куда нибудь в source директорию и выполнить один раз для свеже распакованного
stage-2. Скопировать можно например в /root или пря мо в корень (важно не забыть перед созданием ISO образа его оттуда удалить).
Итак начинаем:
Напомню что все действия происходят в chroot окружении.
Подготавливаем и русифицируем систему.
(LIVECD) #
./_prepare.sh
(LIVECD) #
rm _prepare.sh
Устанавливаем основные утилиты для управления пакетами
(LIVECD) #
emerge -av gentoolkit
Собираем 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.
Устанавливаем пароль root'у
(LIVECD) #
passwd
Создаем пользователя livecd
(LIVECD) #
useradd -m -G users,wheel,audio,video,cdrom,cdrw,usb -s /bin/bash livecd
(LIVECD) #
passwd livecd
Устанавливаем splash темы для красивой графической загрузки
(LIVECD) #
emerge -av splash-themes-livecd
Устанавливаем и компилируем ядро
(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
Устанавливаем и добавляем в автозагрузку 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
Устанавливаем загрузчик
(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.
Создаем образ и пробуем его загрузить. Выходим из 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 → Собираем базовую систему |