Инструменты пользователя

Инструменты сайта


установка_с_флешки_через_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
установка_с_флешки_через_iso_образ.1736423434.txt.gz · Последнее изменение: 2025/01/09 11:50 — wikiadmin

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: GNU Free Documentation License 1.3
GNU Free Documentation License 1.3 Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki