From: Ляшков Павел <bilbo.kem@gmail.com.>
Date: Mon, 16 Jun 2005 18:21:07 +0000 (UTC)
Subject: Создание собственного варианта загрузочного CD Gentoo Linux
Итак у меня возникла потребность в создании своего варианта
загрузочного сд диска - причина проста надо было установить генту на
файловую систему не поддерживаемую ядрами стандартных live cd
(ReiserFS 4 http://www.namesys.com/v4/v4.html ).
Создовать свой диск можно или на основе уже существующего live CD или
используя гентушный старге http://www.gentoo.org.
Для начала я решил разобрать стандартный инсталяционный сд генту.
На нём мы находим файл сжатой файловой системы LIVECD.SQU.
В данном случае используется сжатая файловая система SquashFS
http://squashfs.sourceforge.net/ , но возможно так же
использование других файловых систем:
-cramfs http://sourceforge.net/projects/cramfs/.
-cloop http://build.lnx-bbc.org/packages/kernel/cloop.html
http://packages.qa.debian.org/c/cloop.html. С использованием этой
файловой системы создан знаменитый live CD Knoppix http://www.knoppix.org/.
Для сравнения этих файловых систем приведу конечный размер сжатого
файла - ядро версии 2.6.6:
Для того что бы воспользоваться файловой системой SquashFS, вам нужно
скачать набор состоящий из патча для ядра - позволяющим получить
возможность монтировать сжатые файлы и набор утилит для создания
файловой системы http://sourceforge.net/project/showfiles.php?group_id=63835
Так же рекомендую прочитать FAQ
http://www.artemio.net/projects/linuxdoc/squashfs/SquashFS-HOWTO.html
Итак патчим ядро:
# cd /usr/src/squashfs
# cp linux-2.x.y/squashfs-patch /usr/src/linux
# cd /usr/src/linux
# patch -p1 < squashfs-patch
Компилим ядро черезgenkernell all или как обычно
#cd /usr/src/linux
# make distclean
# make mrproper
File systems> Miscellaneous file systems>Squashed filesystem
# make
# cp ./arch/i386/boot/bzImage /boot/bzImage-sqsh
# make modules_install
И устанавливаем утилиты:
# cd /usr/src/squashfs/squashfs-tools
# make
# cp mksquashfs /usr/sbin
Перегружаемся под новым ядром.
Создаём рабочую папку и точку монтирования сжатой файловой системы:
bash# mkdir /tmp/distr
bash# mkdir /tmp/squ
Монтируем CDROM с инсталяционным диском генту, а так же сжатый файл:
# mount /mnt/cdrom; mount -o loop /mnt/cdrom/livesd.squ /tmp/squ ,
копируем корневую папку стандартного Live CD
# cp -rf /tmp/squ /tmp/distr/
# umount /tmp/squ.
Теперь мы приступаем к тому ради чего всё было затеено - к поддержке в
новом CD ReiserFS 4.
Читаем FAQ http://www.namesys.com/install_v4.html . Скачиваем
самую новую версию библиотеки libaal и утилиты reiser4progs
ftp://ftp.namesys.com/pub/reiser4progs/ , и самое главное патч на ядро
выше linux-2.6.8.1-mm2 (лучше последний)
http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6
И делаем несколько простых операций :). готовим ядро для нашего LiveCD
# su
# cd /usr/src/linux
# patch -p1 < /usr/linux/2.6.xx-mm1
Важно - мы патчим ядро которое уже было пропатчено для поддержки squashfs.
Code maturity level options
---> Prompt for development and/or incomplete code/drivers
Kernel hacking ---> Use 4Kb for kernel stacks instead of 8Kb
# tar -xzvpf libaal-XXXXXX.tar.gz
# cd libaal-X.X.X
# ./configure --enable-stand-alone --enable-memory-manager
# make
# make install
# ldconfig
# tar -xzvpf reiser4progs-XXXXXX.tar.gz
# cd reiser4progs-X.X.X
# ./configure
# make
# make install
Собираем ядро с для LiveCD, что включать в это ядро - зависит от целей
создания диска - если вы делаете его только для себя то включите
стандартные настройки плюс поддержка ReiserFS4 и SquashFS, если же вы
планируете использовать диск для нескольких машин включите монолитом в
ядро поддержку основных чипсетов, файловых систем и если есть
необходимость - agp.
(не забудьте изменить название ядра - что бы не затереть предыдушее -
делается это правкой файла Makefile в /usr/linux)
После сборки ядра и модулей копируем их в соответсвуюшие каталоги
рабочей папки:
Меняем корневой каталог и устанавливаем утилиты для работы с ReiserFS4
в рабочую папку.
# chroot /tmp/distr /bin/bash
# tar -xzvpf libaal-XXXXXX.tar.gz
# cd libaal-X.X.X
# ./configure --prefix=/tmp/distr/usr --enable-stand-alone --enable-memory-manager
# make clean
# make
# make install
# ldconfig
# tar -xzvpf reiser4progs-XXXXXX.tar.gz
# cd reiser4progs-X.X.X
# cd reiser4progs-X.X.X
# ./configure --prefix=/tmp/distr/usr
# make
# make install
#exit
Теперь сжимаем рабочую папку в файл:
#mksquashfs /tmp/livecd.squ /tmp/distr
И, наконец, создаём папку где будем формировать iso образ, и формируем
его с помошью программы syslinux http://syslinux.zytor.com .