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

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

42
задан 25 January 2014 в 18:05

1 ответ

Скачать

Скачать 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 ].

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

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 для автоматического выполнения автоматической установки и настройки операционной системы.

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

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

sudo apt-get install system-config-kickstart
ksconfig

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

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

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

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

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

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

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

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

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

enter image description here

И добавление сервера лампы для установки с помощью 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-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/
  • 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)

0
ответ дан 25 January 2014 в 18:05

Другие вопросы по тегам:

Похожие вопросы: