| |||||||||||||||||||||
Ключевые слова: gentoo, livecd, cdrom, linux, boot, install, (найти похожие документы)
From: Ляшков Павел <bilbo.kem@gmail.com.> Date: Mon, 16 Jun 2005 18:21:07 +0000 (UTC) Subject: Создание собственного варианта загрузочного CD Gentoo Linux Оригинал: http://www.livejournal.com/users/bilbo_kem/1061.html Итак у меня возникла потребность в создании своего варианта загрузочного сд диска - причина проста надо было установить генту на файловую систему не поддерживаемую ядрами стандартных 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: - CRAMFS 62791680 bytes (59.9M) - Squashfs 1.x 51351552 bytes (48.9M) - Cloop 46118681 bytes (44.0M) - Squashfs 2.0 45604854 bytes (43.5M) Для того что бы воспользоваться файловой системой 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) После сборки ядра и модулей копируем их в соответсвуюшие каталоги рабочей папки: # cp /usr/linux/arch/i386/boot/bzImage /tmp/distr/boot/vmlinuz-2.6.xx-mm # cp /usr/linux/initrd /tmp/distr/boot/inird-2.6.xx-mm # cp -rf /lib/modules/2.6.xx-mm /tmp/distr/lib/modules/2.6.xx-mm[/b] Меняем корневой каталог и устанавливаем утилиты для работы с 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 . # mkdir /mnt/distro1 # cp -rf /mnt/cdrom /tmp/distro1 # rm /tmp/distro1/livecd.squ # cp /tmp/livecd.squ /tmp/distro1/ # cp -rf /tmp/distr/boot/initrd-2.6.xx-mm /tmp/distro1/isolinux/gentoo-2.6.xx-mm.gz # cp -rf /tmp/distr/boot/vmlinuz-2.6.xx-mm /tmp/distro1/isolinux/gentoo-2.6.xx-mm # nano -w /tmp/distro1/isolinux/isolinux.cfg ---------------------------------------------------- label gento26 kernel gentoo-2.6.xx-mm append initrd=gentoo-2.6.xx-mm.igz root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/livecd.squashfs cdroot ---------------------------------------------------- #mkisofs -o /tmp/distro.iso -r -V "Livecd" -v -no-emul-boot \ -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin \ -c isolinux/isolinux.boot /tmp/distro1 И пишем его на диск: #cdrecord dev=0,0 -v -eject /tmp/distro.iso Вот собственно говоря и всё. P.S: понятно, что таким же образом на диск можно добавлять любые программы - всё зависит от ваших потребностей и желаний.
| |||||||||||||||||||||
|
|