установка_с_флешки_через_iso_образ
Это старая версия документа!
Для начала нам нужен стенд на котором мы будем собирать образ системы. Для стенда подойдет любой дистрибутив. В нашем случае это виртуальная машина с минимальным набором ПО к которой есть доступ по ssh.
Создаем основной скрипт создания iso образа.
cat /root/make_auto_iso.sh
#!/bin/bash
isobuilder='/mnt/isobuilder/'
isodist='/exports/repo/iso/alse/alse-1.8.1.6-27.06.2024_14.12-di.iso'
mountpoint='/mnt/isobuilder/isomntpoint/'
irmod='/mnt/isobuilder/irmod'
cddir='/mnt/isobuilder/cd/'
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
##### Проверки наличия #####
if [ ! -f ${isodist} ]; then
echo "ISO образ не найден по указанному пути"
else
echo "ISO образ ${isodist} найден"
fi
if [ ! -d ${mountpoint} ]; then
echo "Точка монтирования не найдена по указанному пути"
echo "Создаю точку монтирования ${mountpoint}"
mkdir ${mountpoint} && echo " Точка монтирования ${mountpoint} создана"
else
echo "Точка монтирования ${mountpoint} уже существует"
fi
echo " Монтирую ISO образ ${isodist} в точку монтирования ${mountpoint}"
sudo mount -o loop ${isodist} ${mountpoint} && echo "ISO образ ${isodist} успешно смонтирован в точку монтирования ${mountpoint}"
if [ ! -d ${irmod} ]; then
echo "Папка irmod не найдена по указанному пути"
echo "Создаю папку ${irmod}"
mkdir ${irmod} && echo " Папка ${irmod} создана"
else
echo "Папка ${irmod} уже существует"
fi
if [ ! -d ${cddir} ]; then
echo "Папка cd не найдена по указанному пути"
echo "Создаю папку ${cddir}"
mkdir ${cddir} && echo " Папка ${cddir} создана"
else
echo "Папка ${cddir} уже существует"
fi
echo -e "Синхронизирую содержимое смонтированного диска в папку ${cddir} ${YELLOW}"
rsync -a -v -H --exclude=TRANS.TBL /mnt/isobuilder/isomntpoint/ /mnt/isobuilder/cd
tput sgr0
echo -e "* Отмонтирую ${mountpoint} $GREEN"
umount ${mountpoint} && echo "* Отмонтирован ${mountpoint} успешно"
echo "* Удаляю ${mountpoint}"
rm -rf ${mountpoint} && echo "* Папка ${mountpoint} удалена успешно"
cd ${irmod} && echo "* Перехожу в папку ${irmod} - успешно"
gzip -d < ../cd/install.amd/initrd.gz | cpio --extract --make-directories --no-absolute-filenames && echo "* Распаковываю initrd.gz - успешно"
cp -f ../preseed.cfg preseed.cfg && echo "* Копирую файл preseed.cfg - успешно"
find . | sudo cpio -H newc --create | sudo gzip -9 > ../cd/install.amd/initrd.gz && echo "* Запаковываю образ initrd.gz - успешно"
cd ${cddir} && echo "* Перехожу в директорию ${cddir} - успешно"
pwd
cp -f ../txt.cfg ./isolinux/ && echo "* Копирую кастомное текстовое меню в папку ./isolinux/txt.cfg - успешно"
cp -f ../menu.cfg ./isolinux/ && echo "* Копирую кастомное текстовое меню в папку ./isolinux/txt.cfg - успешно"
mkdir ./extra/ && echo "* Создаю папку extra - успешно"
cp -f ../postinst.sh ./extra && echo "* Копирую файл postinst.sh extra - успешно"
cp -f ../first_start.sh ./extra && echo "* Копирую файл first_start.sh extra - успешно"
cp -f ../firstinit.sh ./extra && echo "* Копирую файл first_init.sh extra - успешно"
md5sum `find -follow -type f` > ./md5sum.txt && echo "* Пересчитываю MD5sum - успешно"
cd ${isobuilder} && echo "* Перехожу в директорию ${isobuilder} - успешно"
echo "* Начинаю схлопывать образ в output.iso "
genisoimage -o ./output.iso -r -J -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/boot.cat ./cd && echo -e "* Схлопывание образа завершено - успешно"
if [ ! -f ./output.iso ]; then
echo "ISO образ не найден по указанному пути"
else
echo -e "${GREEN}ISO образ output.iso найден - успешно"
fi
mv -f /mnt/isobuilder/output.iso /exports/repo/iso/alse/ && echo "* Переношу файл образа в папку /exports/repo/iso/alse/ - успешно"
rm -rf ${cddir}
rm -rf ${irmod}
tput sgr0
2. mkdir /mnt/isobuilder 3. Содержимое директории:
ls mnt/iso/builder/ firstinit.sh first_start.sh menu.cfg postinst.sh preseed.cfg preseed.cfg.save preseed.cfg.save.1 txt.cfg
установка_с_флешки_через_iso_образ.1736423785.txt.gz · Последнее изменение: 2025/01/09 11:56 — wikiadmin
