Я хотел бы создать настроенный ISO-образ Ubuntu Server 12.04, но не смог найти четкого подхода к тому, как это сделать. Я вижу, что Ubuntu-builder - очень хорошее приложение для создания настроенного рабочего стола Ubuntu, но как насчет Ubuntu Server?
Скачать
Скачать 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/
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», и добавит файл кикстарта (файл кикстарта используется для изменения опций; поясняется ниже):
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
- это просто ярлык, который вы можете использовать для определения вашего варианта. default install
на default myownoption
. Пример:
и редактирование файла (я использовал nano, но, если доступно, используйте gedit, vim или другой редактор). Вот мое дополнение к этому файлу, где я использовал "lampserver" в качестве метки, и мое семя будет также называться "lampserver".
Kickstart (графическая настройка файла конфигурации)
Используется метод установки Red Hat Kickstart прежде всего (но не исключительно) операционной системой Red Hat Enterprise Linux для автоматического выполнения автоматической установки и настройки операционной системы.
Документация по предпосевному / кикстарту для Ubuntu . Ubuntu имеет ограниченную поддержку кикстарта (и предпосевного); одна из недостающих вещей - это графический интерфейс для предпосевной обработки. У Kickstart есть варианты для этого (см. Изображения), но они, похоже, не работают в Ubuntu. Вы можете сделать это вручную, хотя (см. Предпосевной ниже).
Установка и запуск кикстарта:
sudo apt-get install system-config-kickstart
ksconfig
** ПРЕДУПРЕЖДЕНИЕ **
Кикстарт прослушивается в 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
из командной строки.
И сохранение его в проекте:
Предпосевная обработка (настройка файла конфигурации вручную)
Предпосевная обработка обеспечивает способ Задайте ответы на вопросы, заданные в процессе установки, без необходимости вручную вводить ответы во время установки. Это позволяет полностью автоматизировать большинство типов установки и даже предлагает некоторые функции, недоступные при обычной установке.
Скопируйте preseed для обычной установки на свой собственный ярлык:
sudo cp newIso/preseed/ubuntu-server.seed newIso/preseed/ubuntu-myownoption.seed
myownoption
на то, что вы использовали. Теперь для изменения настроек. Используя debconf-get-selections
из debconf-utils
, вы можете исследовать, какие параметры вы можете использовать с определенным программным обеспечением.
Пример настройки:
И добавление сервера лампы для установки с помощью tasksel:
Если вы хотите добавить пакеты "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
.
В конце файла 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 (в противном случае вы продолжите перезагрузку).
И после установки VirtualBox я получаю следующее меню:
Поиск ошибок
Наткнулся на 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)