Форум » Установщик » Модификация usbboot.img » Ответить

Модификация usbboot.img

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

Ответов - 0



полная версия страницы