it-roy-ru.com

Как создать собственный ISO-образ Ubuntu Server?

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

42
Shadin

Скачать

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

ubuntu-13.10-server-i386.iso 
ubuntu-13.10-server-AMD64.iso 

Я буду использовать 13.10 64-битную версию в следующих инструкциях, поэтому настройте команды для загрузки, которую вы сделали. Сохраните копию вашей загрузки, чтобы вы могли создавать несколько новых версий из исходной загрузки на случай, если вам нужно улучшить свой проект. Я также предполагаю, что мы используем ~/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/
  • Будет выдано 1 сообщение об ошибке: mount: block device /discworld/Downloads/ubuntu-13.10-server-AMD64.iso is write-protected, mounting read-only

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

Выполнение:

Executing

Результат:

Result

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

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

Это создаст новую опцию под названием "Install Custom Ubuntu server" и добавит файл кикстарта (файл кикстарта используется для изменения опций; объяснено ниже):

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 - это просто метка, которую вы можете использовать для определения вашего варианта.
  • "Install Custom Ubuntu Server" - это текст, который будет отображаться в меню загрузки.
  • Если вы хотите сделать опцию меню по умолчанию, вам нужно всего лишь изменить default install на default myownoption.

Пример:

enter image description here

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

enter image description here

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

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

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

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

Sudo apt-get install system-config-kickstart
ksconfig

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

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

enter image description here

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

enter image description here

enter image description here

См. 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 из командной строки.

enter image description here

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

enter image description here

Предпосевная обработка (настройка файла конфигурации вручную)

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

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

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

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

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

enter image description here

И добавление lamp-сервера для установки вместе с tasksel:

enter image description here

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

    d-i 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-сервера mysql-сервера 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/
  • 2-я строка создает новую контрольную сумму и нужна только при добавлении пакетов.
  • третий делает ISO из вашего проекта, который вы можете записать на DVD.

Результат:

enter image description here

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

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

enter image description here

Поиск ошибок

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

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

### Package Selection
tasksel tasksel/first multiselect Custom-Ubuntu-Server
d-i 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
d-i 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)

61
Rinzwind