Автозапуск своих скриптов в Systemrescuecd
Введение
Systemrescuecd - Live-CD образ linux основанный на Arch Linux, до версии 6.0, основа данного образа являлась Gentoo. В рабочих задачах порой незаменимый ToolPack для сисадмина или иных технических специалистов.
В какое-то время у нас возникает желание что-то автоматизировать, а не постоянно вводить длинные и большие по количеству команды. В нашем случае используя systemrescuecd, мы добавим простенький скрипт меню в автозагрузку используя whiptail.
И так, начнём.
ШАГ 1. Подготовка
Создание каталога проекта и дочерний каталог для распаковки iso образа:
mkdir -p ~/rescuecd/unpacked
Переходим в каталог rescuecd и скачиваем посредством wget iso образ:
cd ~/rescuecd
wget https://fastly-cdn.system-rescue.org/releases/11.03/systemrescue-11.03-amd64.iso -O systemrescuecd.iso
Далее для распаковки образа iso, а также его сборки нам необходим sysrescue-customize, также через wget:
wget https://gitlab.com/systemrescue/systemrescue-sources/-/raw/main/airootfs/usr/share/sysrescue/bin/sysrescue-customize?inline=false -O sysrescue-customize
Присваиваем права на выполнение sysrescue-customize:
chmod +x ./sysrescue-customize
ШАГ 2. Распаковка образа
С помощью sysrescue-customize распаковываем iso образ командой:
./sysrescue-customize --unpack --source=systemrescuecd.iso --dest=./unpacked
ШАГ 3. Создаём базовый скрипт меню
С помощью whiptail, мы позволим пользователю взаимодействовать со скриптом более интерактивно, поэтому напишем такой скрипт в каталоге autorun распакованного образа:
vim ./unpacked/filesystem/autorun/auto-menu.sh
#!/bin/bash
MENU=$(
whiptail --title "Your menu" \
--menu "Choose task" 15 60 4 \
"1" "First item" \
"2" "Second item" \
"3" "Third item" \
3>&1 1>&2 2>&3)
execstat=$?
if [ $execstat = 0 ]; then
echo "Selected $MENU"
read -p "Press enter: "
else
echo "Canceled"
read -p "Press enter: "
fi
После сохраняем и закрываем файл. Важно выдать сразу права на исполнение, иначе при запуске получим Permission denied:
chmod +x ./unpacked/filesystem/autorun/auto-menu.sh
ШАГ 4. Настройка автозапуска
Настройку автозапуска, мы будем производить посредством конфигурации YAML, поэтому редактируем файл:
vim unpacked/filesystem/sysrescue.d/100-defaults.yaml
#Редактируем блок autorun
autorun:
exec:
300:
path: "/run/archiso/bootmnt/autorun/auto-menu.sh"
Путь в запущенном образе каталог autorun содержится в /run/archiso/bootmnt/, в YAML конфигурации как мы видим, мы указали абсолютный путь до скрипта, после чего нам необходимо только собрать образ в iso и выполнить его запуск в виртуальной машине или записать на носитель, тут уж кто во что горазд.
ШАГ 5. Сборка образа
В сборке образа iso, также используем sysrescue-customize:
./sysrescue-customize --rebuild --source=unpacked --dest=sysres.iso
Если после изменений скрипта автозапуска или других файлов, вам не хочется удалять каждый раз изменёный только что образ iso, используем опцию --overwrite
.
ШАГ 6. Запускаем и радуемся
Финальная картина, следующая:

P.S.
Вот таким образом мы смогли создать скрипт и внести его в автозагрузку Live-CD systemrescuecd. Статья написана более подробно, так как изначально рассчитана на обширный круг интересующих данной темой читателей.
Если в данной статье вы нашли ошибку, что-то у вас не получилось или имеются предложения по статье, прошу в комментарии.