Введение
В данном руководстве мы проследим создание первого публичного релиза SliTaz и проведем вас в самое сердце системы Linux. Вы научитесь как модифицировать существующую систему, так и создавать полностью новые дистрибутивы; они будут работать в оперативной памяти (RAM) и их можно будет установить на жесткий диск или флешку. Уже в самом начале работы можно извлечь диск из привода и продолжать работать в SliTaz. Также SliTaz может служить chroot-окружением или использовать CD-ROM с целью многозадачности. Всё, что потребуется для начала — основная система, в которой вы будете хранить библиотеки, запускать компилятор и утилиты разработки и т.д. Основной системой может служить окружение chroot, тот или иной мини-дистрибутив Linux, сам SliTaz, установленный на жесткий диск, или дистрибутив общего назначения (Debian, Slackware, Fedora, Gentoo, Mandriva, Arch и др.). В течение всего процесса работы никакие пакеты не будут установлены в основную систему, так что она останется нетронутой.
В качестве базы для системы и для ядра Linux SliTaz использует BusyBox (получивший прозвище «Швейцарский нож» за многофункциональность). Это встроенное приложение, занимающее совсем немного места в памяти и содержащее множество программ. Для нас BusyBox — основной источник информации и утилита из проекта Debian, которую мы используем и ценим.
Также SliTaz использует загрузчик Syslinux и архив файловой системы (initramfs), сжатой при помощи cpio. Ядро Linux распаковывает этот образ в память при загрузке, при этом размер системы не фиксирован и сохраняется контроль над процессом загрузки. При компиляции программ и их добавлении в репозитории мы используем утилиту strip для очистки репозиториев. Системные команды genisoimage или mkisofs используются для создания ISO-образов. По окончании работы образ можно протестировать в Qemu или записать на CD/DVD-RW.
Создание рабочей папки
Чтобы начать процесс создания SliTaz, нам понадобится папка с несколькими вложенными папками для работы. Независимо от того, работаете вы в chroot-окружении или в основной системе, советуем создать папку distro/ в качестве рабочей. Эта папка может быть как простой папкой, так и разделом, в целом, вы вольны расположить ее где пожелаете.
distro/
Содержимое рабочей папки:
- rootfs/ — корневая файловая система, созданная для работы в RAM, она используется для создания образа initramfs.
- rootfs.gz — образ initramfs нашей системы — cpio-архив, сжатый в gzip.
- rootcd/ — корневая папка файлов, которые будут помещены в образ CD.
- src/ — все исходники (ядра, Syslinux, Busybox, Dropbear и т.д.), также может быть символической ссылкой.
И еще — образы initramfs и загрузочный ISO (slitaz-cooking.iso) мы создадим в папке SliTaz/ в нашей рабочей папке.
По выбору: rootfs.ext2 — использование виртуального жесткого диска
rootfs.ext2 (корневая файловая система в ext2) — это виртуальный жесткий диск, форматированный в ext2 и монтируемый в петлю rootfs. Монтирование такого устройства позволит использовать файл как стандартное устройство (жесткий диск, floppy-дисковод и т.д.) и создать внутри него файловую систему. Этот файл может быть любого размера, мы же советуем выбрать размер 20 480 байт, что соответствует 20 мегабайтам:
# dd if=/dev/zero of=rootfs.ext2 bs=1k count=20480
Теперь создадим файловую систему ext2 в этом файле опцией -F команды mkfs. Важно отметить, что опция -m 0 не выделяет пространства для корневой папки пользователя (по умолчанию он занимает приблизительно 5%), а опцией -t мы задаем тип файловой системы, например, ext2 или ext3:
# mkfs -t ext2 -F -m0 rootfs.ext2
Далее подключим rootfs.ext2 в петлю в папке rootfs/ опцией -o loop команды mount. Проверить успешность операции можно командой df -h:
# mkdir rootfs # mount -o loop rootfs.ext2 rootfs # df -h
В конце работы отмонтируем том командой umount:
# umount rootfs
А сейчас перейдем к созданию базового варианта SliTaz.
Статью перевел Cyril