Приветствую всех кто интересуется Linux, недавно у меня появилась срочная необходимость собрать свою сборку убунту , о том как я это делал я хочу написать ниже:
Что первым делает адекватный человек без аналогичного опыта когда ему ставят такую задачу ? правильно! идет в гугл) в ходе гугления я был удивлен тем фактом что для того что бы сделать то что я хочу нужно:
- скачать "файловую систему" убунту
- в режиме chroot (sudo chroot [ каталог с файловой системой ]) выполнить нужную настройку
- cкачать файлик vmlinuz он же ядро
- и естественно скачать initrd она же временная файловая система (если быть точным Initial RAM Disk)
Дальше , после нескольких манипуляций а именно сжатия всего в squashfs и упаковки в iso-шник я получил то что нужно.
Ну вот , я заметил кучу багов и того что я не доделал , и в течении недели приходилось это все пересобирать до посидения, в итоге мной было принято решения написать баш скрипт по автоматизации всего и вся, работает на ура,сам скрипт ниже)
sudo apt-get install git && git clone https://github.com/GIThunte/build-ubuntu.git
Использование:
Первое на что хотелось бы обратить внимание это системные требования:
Желательно ubuntu 16.04
и установленные приложения
debootstrap
syslinux
isolinux
squashfs-tools
genisoimage
rsync
(Установить их можно так - sudo apt-get install debootstrap syslinux isolinux squashfs-tools genisoimage rsync -y )
Ну и самый важный момент , вам зарание нужно скачать vmlinuz и initrd а так же кинуть их на какой то свой мега ftp, все это дело делается просто, ниже мануал:
1 - sudo apt-get install vsftpd
2 - открываем любым редактором файл /etc/vsftpd.conf , ищем там строку anonymous_enable=NO и меняем NO на YES
3 - перезапускаем сервис sudo service vsftpd restart
4 - идем по этой ссылке : https://drive.google.com/file/d/1m2-G9hVsyO_abBNZxHGAsCZTfYt... и скачиваем архив
5 - дальше выполняем распаковку этих файлов в корень ftp ( у меня это /srv/ftp/ )
если вы сделалали на рабочей системе все правильно , то после перехода по адресу ftp://localhost/ вы должны увидеть 2 файла котрые вы распаковали в каталог ftp
после этого , вам нужно войти в каталог со скриптом и сделать ls увидеть вы должны примерно такой список файлов :
base_img.conf
base_img.sh
FILES
install.sh
README.md
start.sh
вам нужны только два файла base_img.conf и install.sh
base_img.conf это скажем так конфиг скрипта , все что возможно изменить , меняется там
install.sh это очень важный файл , в нем языком bash описывается все что вы хотите изменить в самом образе , например если вы хотите добавить в вашу сборку редактор vim то в конце напишите :
sudo apt-get install vim
(крч это обычный баш скрипт что выполняется в chroot-e)
Последним шагом будет редактирование конфигурационного файла base_img.conf
просто найдите там строки:
INITRD_URL="ftp://zos-ftp.com/initrd.gz"
VMLINUZ_URL="ftp://zos-ftp.com/vmlinuz"
и zos-ftp.com замените на localhost ( крч кто понимает это просто переменные с адресом откуда wget будет тянуть vmlinuz и initrd ) это может быть и прямая ссылка на эти файлы в файлообменнике
так же можете отредактировать файл isolinux.cfg в каталоге FILES
дальше просто пишем :
sudo bash start.sh
спустя некоторое время , в каталоге /srv/BUILD будет лежать ваш iso файл убунту
так же можете описать примерно так :
sudo bash http://archive.ubuntu.com/ubuntu/ /home/ваше имя пользователя/MYUBUNTU
и в каталоге
/home/ваше имя пользователя/MYUBUNTU будет ваше iso
PS: Все это писал для себя,если что то вам не нравится в коде вы можете или переписать его или не использовать=)
Ссылке по теме:
https://willhaley.com/blog/create-a-custom-debian-stretch-li...