Создание своей загрузочной флешки на основе SystemRescued

Есть такой замечательный дистрибутив, Linux который позиционируется как спасательная флешка — SystemRescueCD. Есть конечно и еще какие то, но я пользуюсь этим, потому как привычно и собран он на базе Gentoo Linux. Мне довольно часто приходится его использовать как на работе, так и при обслуживании своих личных ПК. В дистрибутиве есть практически все для восстановления данных и различных тестировок, но лично мне не хватает некоторых инструментов идущих в дистрибутиве по умолчанию. В связи с этим я немного модифицирую состав установленных инструментов и собираю загрузочный образ заново. Именно о процессе пересборки загрузочной флешки от SystemRescueCD и пойдет речь в этой статье.

Для начала пара слов о том, что нам понадобится для этого:

1. Машина с линухом. Дистрибутив скорее всего не важен, если не использовать какой нибудь очень экзотический.
2. Squasfstools. Установить эти инструменты через пакетный менеджер Вашего дистрибутива не составит труда. В Ubuntu ставится с помощью одной строчки в терминале.

sudo apt-get isntall squashfs-tools

3. ISO образ скачанный с оффсайта

Гентушникам, или пользователям других дистров, которые используют pure amd64 и выбросили из ядра поддержку 32 битного кода, советую включить IA32 в конфиге ядра. Без этого Вы не сможете чрутнуться в целевую систему после ее распаковки.

Executable file formats / Emulations  --->
                                        [*] IA32 Emulation

Создадим директорию /ISO в которую примонтируем скачанный образ System Rescue CD командой

sudo mkdir /ISO
sudo mount -o loop /path/to/sysrescue.iso /ISO

После этого создаем еще одну директорию например /SRC

sudo mkdir /SRC

На самом деле Вы вольны выбирать сами где будете создавать эти временные директории, скажу лишь, что лучше ничего не монтировать в /mnt, так как эту директорию использует скрипт с помощью которого заливается собранный дистрибутив на флешку.

Теперь копируем все содержимое из директории /ISO в /SRC

cd /ISO
 sudo cp -Rav . /SRC

После этого мы получим копию распакованного образа. Нас больше всего интересует файлик sysrcd.dat. Это сжатый образ файловой системы squashfs, который распаковывается при загрузке с флешки являясь корневой файловой системой LiveCD.

Следующим шагом мы смонтируем как файловую систему файлик sysrcd.dat Например в /DAT

mount -t squashfs /SRC/sysrcd.dat /DAT

Так как squashfs это файловая система которую Вы сможете примонтировать только на чтение, необходимо создать еще одну директорию в которую скопировать содержимое из /DAT. Делаем по аналогии

sudo mkdir /DEST
cd /DAT
cp -Rav . /DEST

Выполним смену окружения (chroot) в директорию /DEST для изменения корневой системы LiveCD

sudo su
mount -o bind /dev/ /DEST/dev
mount -t proc none /DEST/proc
chroot /DEST /bin/bash

Теперь мы находимся в окружении, так же как если бы загрузились с флешки. Сейчас мы вольны собрать любой софт в нашу загрузочную флешку, какой только есть в дереве portage Gentoo. Я обычно добавляю WHDD

Обновим дерево портежа до актуального состояния.

emerge --sync

Если на хост системе имеется уже настроенный доступ в интернет, то и chroot оно тоже скорее всего будет, поэтому синхронизация дерева не должно быть проблемой.

Осталось только скомпилировать нужные пакеты, выставив USE флаги и приступать к пересборке образа заливаемого на флешку. Не забываем выйти из окружения в которое мы делали chroot

exit
umount /DEST/proc
umount /DEST/dev

Для того чтобы собрать измененный образ, как я уже говорил требуется squashfstools

mksquashfs /DEST /SRC/sysrcd_new.dat -comp xz

Сборка образа может занять достаточно много времени, все зависит от производительности компьютера. После успешной сборки образа в директории /SRC/ появится файлик

sysrcd_new.dat который мы переименуем в sysrcd.dat предварительно удалим исходный sysrcd.dat или переместив его в другое место.

И завершающим этапом будет собственно заливка измененного образа на флешку. Если работает автомонтирование съемных устройств, то перед началом следует ее отмонтировать и находясь в директории /SRC запустить скрипт

./usb_inst.sh

Он автоматом найдет флешку и запишет измененный образ на нее. Советую быть внимательным, так как съемные HDD подключенные в момент операции тоже могут предлагаться в качестве устройства для записи. Поэтому советую тщательно проверить на какое устройство будет производиться запись.

//Также хочу отметить, что можно создать и LiveCD из того, что находится в директории /SRC с помощью mksiofs.

//Замечания по ошибкам, опечаткам и просто пожелания прошу оставлять в коментариях к материалу.

Оцените статью