Обычно, все начинают модификацию дистрибутива с переделки iso образа дистра.
Современные же компьютеры обзавелись возможностью загрузки с usb флешки.
Поэтому, рациональнее в своих экспериментах использовать usb флешку, чем портить кучу компактов.
В составе дистрибутива Slackware есть загрузочный образ для установки дистрибутива с флеш-карты, находящийся по адресу
/usb-and-pxe-installers/usbboot.img.
Вот его то и попробуем распаковать для предполагаемых изменений.
Образ предназначен для записи на флеш-карту и имеет размер в 28 мегабайт. То есть, при воссоздании загрузочной флешки, на ней будет воссоздан fat-раздел с файлами обеспечивающими установку дистрибутива. Остальное пространство флешки не используется никак. Что не есть карашо.
Обратно,
usbboot.img воссоздавать не будем, а воспользуемся утилитой
syslinux для создания загрузочной флешки. Тем самым задействуем пространство памяти флешки полностью, и дополнительно разместим на ней все пакеты устанавливаемого дистрибутива.
Ну это я забежал немного вперед, пока расскажу как добраться до скриптов инсталлятора.
Для своих экспериментов я создал рабочий каталог
/work, куда и поместил образ
usbboot.img.
Чтобы извлечь содержимое образа его нужно примонтировать.
Для этого я создал еще один каталог
/work/boot, куда и примонтировал образ командой:
mount -o loop usbboot.img ./boot
Для интереса, успех операции проверил утилитой
kdf:
С ее же помощью удобно потом отмонтировать примонтированный образ.
Теперь можно просмотреть на спрятанные в образе файлы:
Затем я создал каталог
/work/files и скопировал туда содержимое образа.
Отмонтировал образ, и привел в нормальное состояние атрибуты файлов.
Каталог
/work/boot и образ
usbboot.img удалил, теперь они уже не нужны.
Из всех извлеченных из образа файлов нас интересует один -
initrd.img.
Его то и нужно разархивировать, чтобы добраться до скриптов инсталлятора.
Для удобства копируем файл
initrd.img в каталог
/work и разжимаем его с помощью нескольких команд от Патрика:
mkdir extract
cd extract
zcat ../initrd.img | cpio -div
Вот мы и у цели - скрипты инсталлятора дистрибутива Slackware находятся по адресу
/work/extract/usr/lib/setup!
Теперь можем модифицировать скрипты в свое удовольствие. Но это уже другая песня, теперь соберем все назад и создадим загрузочную флешку.
Удаляем немодифицированный
initrd.img из каталога
/work, переходим в каталог
/work/extract и вводим команду:
find . | cpio -o -H newc | gzip -9fv > ../initrd.img
Как видите по дате создания файла initrd.img, воссоздание прошло успешно.
На следующем этапе возвращаем модифицированный файл
initrd.img в каталог
/work/files и модифицированный набор файлов для загрузки на флешку у нас готов.
Как я говорил выше, образ для флешки воссоздавать не будем, а просто скопируем все файлы из каталога
/work/files на предварительно отформатированную и примонтированную флешку.
Флешку лучше отформатировать с файловой системой
ext2.
Переименовать файл
syslinux.cfg в
extlinux.conf!
затем вводим команды:
extlinux -i /mnt/usb/boot # install syslinux to partition
cat /usr/lib/syslinux/mbr.bin > /dev/sdb # make it bootable through MBR
Все, загрузочная флешка создана. Осталось скопировать на нее каталог дистрибутива
/slackware.