Как создать индивидуальный Ubuntu Server ISO?

Я хотел бы создать настраиваемый Ubuntu Server 12.04 ISO, но не смог найти четкого подхода к тому, как это сделать. Я вижу, что Ubuntu-builder – очень хорошее приложение для создания настроенного рабочего стола Ubuntu, но как насчет Ubuntu Server?

Скачать

Загрузите ISO-код Ubuntu из этого места . У вас есть возможность перейти на 32-разрядную или 64-разрядную версию. Имя файла для версии сервера будет выглядеть примерно так:

ubuntu-13.10-server-i386.iso ubuntu-13.10-server-amd64.iso 

Я буду считать версию 13.10 64-bit в следующих инструкциях, поэтому отрегулируйте команды для загрузки. Сохраните копию своей загрузки, чтобы вы могли создавать несколько новых версий из исходной загрузки, если вам нужно улучшить свой проект. Я также предполагаю, что мы используем ~/Downloads/ для выполнения всей нашей работы.

Начальная настройка

Это создаст 2 каталога «iso» и «isoNew» внутри вашего каталога «Загрузки», смонтирует ISO и скопирует содержимое с «iso» на «isoNew», чтобы начать новый проект.

Поместите это в текстовый файл, сохраните его, сделайте его исполняемым и выполните его:

 # Ubuntu custom server # rinzwind askubuntu.com # topic: http://askubuntu.com/questions/409607/how-to-create-a-customized-ubuntu-server-iso/409651#409651 cd ~/Downloads/ mkdir -p iso newIso sudo mount -o loop ./ubuntu-13.10-server-amd64.iso ./iso sudo cp -r ./iso/* ./newIso/ sudo cp -r ./iso/.disk/ ./newIso/ sudo umount ./iso/ cd ~/Downloads/newIso/ 
  • Он mount: block device /discworld/Downloads/ubuntu-13.10-server-amd64.iso is write-protected, mounting read-only 1 сообщение об ошибке: mount: block device /discworld/Downloads/ubuntu-13.10-server-amd64.iso is write-protected, mounting read-only

Пример изображений, как это будет выглядеть:

Выполнение:

проведение

Результат:

результат

Добавление опции меню загрузки

Параметры меню для установщика хранятся в файле isolinux/txt.cfg и вы можете создавать новые параметры между default install label install .

Это создаст новый параметр «Установить пользовательский сервер Ubuntu», и он добавит файл kickstart (файл kickstart используется для изменения параметров, объясняется ниже):

 label myownoption menu label ^Install Custom Ubuntu Server kernel /install/vmlinuz append file=/cdrom/preseed/ubuntu-custom.seed initrd=/install/initrd.gz quiet ks=cdrom:/preseed/ks-custom.cfg -- 
  • myownoption – это всего лишь ярлык, который вы можете использовать для определения вашего варианта.
  • «Установить пользовательский сервер Ubuntu» – это текст, который будет отображаться в меню загрузки.
  • Если вы хотите сделать свой вариант меню по умолчанию, вам нужно только изменить default install по default myownoption по default myownoption .

Пример:

введите описание изображения здесь

и редактирование файла (я использовал nano, но если доступно, используйте gedit, vim или другой редактор). Вот мое дополнение к этому файлу, где я использовал «lamperver» в качестве ярлыка, и мое семя будет называться «lamperver».

введите описание изображения здесь

Kickstart (графическая настройка файла конфигурации)

Метод установки Red Hat Kickstart используется в основном (но не исключительно) операционной системой Red Hat Enterprise Linux для автоматической установки и настройки автоматической установки операционной системы.

Документация по выбору / kickstart для Ubuntu . Ubuntu имеет ограниченную поддержку кикстарта (и предпосылки); одна из недостающих вещей – графический интерфейс для предпродажного обслуживания. У Kickstart есть варианты для этого (см. Изображения), но они, похоже, не работают на Ubuntu. Вы можете сделать это вручную (см. Ниже).

Установка и запуск kickstart:

 sudo apt-get install system-config-kickstart ksconfig 

** ПРЕДУПРЕЖДЕНИЕ **

kickstart прослушивается в Ubuntu 13.10, и при запуске он ошибается. Вот исправление . Поместите патч в комментарий в текстовый файл, сохраните его (я назвал его «patch») и зафиксировал его:

введите описание изображения здесь

После этого ksconfig работал, и он запустит редактор конфигурации, который позволит вам манипулировать множеством опций.

введите описание изображения здесь

введите описание изображения здесь

См. Red Hat Linux 7.2: Официальное руководство по настройке Red Hat Linux для описания всех параметров, которые вы можете установить.

После того, как вы закончите, сохраните изменения в файле ks.cfg и скопируйте их в ISO, который мы меняем:

 sudo cp ks.cfg ~/Downloads/newIso/preseed/ks-custom.cfg 
  • Если вы что-то измените, установщик пропустит пропустить эту информацию, если она считается действительной. Если вы не изменили вариант, установщик все равно попросит вас ответить.
  • Вы также можете загрузить файлы кикстарта и сохранить их в виде ks-custom.cfg в ~/Downloads/newIso/preseed/ .

Пример, когда я вставил свои учетные данные. Я начал с sudo ksconfig из командной строки.

введите описание изображения здесь

И сохранить его в проекте:

введите описание изображения здесь

Preseeding (ручная настройка файла конфигурации)

Preseeding предоставляет способ задать ответы на вопросы, заданные в процессе установки, без необходимости вручную вводить ответы во время установки. Это позволяет полностью автоматизировать большинство типов установки и даже предлагает некоторые функции, недоступные при нормальной установке.

Скопируйте предикат для обычной установки на свой собственный ярлык:

 sudo cp newIso/preseed/ubuntu-server.seed newIso/preseed/ubuntu-myownoption.seed 
  • измените myownoption на то, что вы использовали.

Теперь для изменения настроек. Используя debconf-get-selections из debconf-utils вы можете исследовать, какие параметры вы можете использовать с определенным программным обеспечением.

Пример настройки:

введите описание изображения здесь

И добавив ламповый сервер, который будет установлен с tasksel:

введите описание изображения здесь

  • Если вы хотите добавить пакеты «openssh» и «build-essential», вы можете включить это в файл семени:

     di pkgsel/include string openssh-server build-essential 
  • Пример для openssh:

     debconf-get-selections | grep openssh openssh-server ssh/vulnerable_host_keys note openssh-server ssh/use_old_init_script boolean true openssh-server ssh/encrypted_host_key_but_no_keygen note openssh-server ssh/disable_cr_auth boolean false 
  • Вы можете добавить эти параметры в custom-iso/preseed/ubuntu-myownoption.seed .

  • Объяснение / примеры с использованием настроек debconf .
  • Пример файла preseed
  • Примеры : Локализация, Конфигурация сети, Сетевая консоль, Часы и время, Разделение
  • В конце файла preseed вы можете добавлять пакеты (случайные примеры) следующим образом:

    % пакетов openssh-server mysql-server apache2

Автономная установка

Если вы добавляете пакеты, а НЕ – в ISO, установщик загрузит их из репозитория. Если у вас нет активного интернет-соединения, это будет проблематично, поэтому вам нужно будет добавить все эти пакеты (и зависимости) к вашему проекту и записать их на DVD-диск. К счастью, нормальный сервер ISO имеет много места, но остерегайтесь: компакт-диски и / или DVD-диски имеют ограниченный размер.

Загрузите все необходимые пакеты DEB и сохраните их в ~/Downloads/ . Эти 2 каталога необходимы для нового ISO:

 mkdir -p ~/Downloads/newIso/dists/stable/extras/binary-i386 mkdir -p ~/Downloads/newIso/pool/extras/ sudo cp ~/Downloads/*.deb newIso/pool/extras/ 

И это обновит наш проект новыми пакетами:

 cd ~/Downloads/newIso sudo apt-ftparchive packages ./pool/extras/ > dists/stable/extras/binary-i386/Packages sudo gzip -c ./dists/stable/extras/binary-i386/Packages | tee ./dists/stable/extras/binary-i386/Packages.gz > /dev/null cd ~/Downloads/ 

Создание ISO

 cd ~/Downloads/ sudo md5sum `find ! -name “md5sum.txt” ! -path “./isolinux/*” -follow -type f` > md5sum.txt sudo mkisofs -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c isolinux/isolinux.cat -o ./ubuntu-13.10-myowninstall-amd64.iso -joliet-long newIso/ 
  • вторая строка создает новую контрольную сумму и требуется только при добавлении пакетов.
  • третий делает ISO из вашего проекта, который вы можете записать на DVD.

Результат:

введите описание изображения здесь

И теперь вы можете попробовать его, собственно, сжечь и установить его. Я бы посоветовал использовать его в качестве виртуальной машины, поскольку он будет быстрее тестировать исходный ISO (в противном случае вы будете перезагружать).

И после установки VirtualBox я получаю следующее меню:

введите описание изображения здесь

ошибка охоты

При установке у вас возникло 1 проблема: значение по умолчанию не было выбрано.

Shadin. Из вашего файла семени в комментарии

 ### Package Selection tasksel tasksel/first multiselect Custom-Ubuntu-Server di pkgsel/include string openssh-server build-essential %packages openssh-server postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3 

вероятно, должно быть таким:

 ### Package Selection tasksel tasksel/first multiselect lamp-server di pkgsel/include string openssh-server build-essential postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3 

Отключите строку tasksel, которую вы не хотите использовать LAMP-сервер (например, Apache, Mysql, Php)