Скачать
Загрузите 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
Пример изображения о том, как это будет выглядеть:
Выполнение:
Результат:
Добавление параметра меню загрузки
Опции меню для установщика хранятся в, 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
.
Пример:
и редактирование файла (я использовал nano, но если возможно, используйте gedit, vim или другой редактор). Вот мое дополнение к этому файлу, где я использовал "lampserver" в качестве метки, и мое семя будет также называться "lampserver".
Kickstart (графическая настройка файла конфигурации)
Метод установки Red Hat Kickstart используется в основном (но не исключительно) операционной системой Red Hat Enterprise Linux для автоматического выполнения автоматической установки и настройки операционной системы.
Документация по предпосевному / кикстарту для Ubuntu . Ubuntu имеет ограниченную поддержку кикстарта (и предпосевного); одна из недостающих вещей - это графический интерфейс для предпосевной обработки. Kickstart делает есть варианты для этого (см изображения) , но они , кажется , не работать на Ubuntu. Вы можете сделать это вручную, хотя (см. Preseeding ниже).
Установка и запуск кикстарта:
sudo apt-get install system-config-kickstart
ksconfig
** ПРЕДУПРЕЖДЕНИЕ **
kickstart прослушивается в Ubuntu 13.10 и при запуске выдает ошибку. Вот исправление . Поместите патч в комментарии в текстовый файл, сохраните его (я назвал его «патч») и передайте его:
После этого 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
вы можете узнать, какие параметры вы можете использовать с конкретным программным обеспечением.
Пример настройки этого:
И добавление lamp-сервера для установки вместе с 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
.
- Объяснение / примеры использования настроек 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.
Результат:
И теперь вы можете попробовать его, фактически записав и установив его. Я бы посоветовал использовать в качестве виртуальной машины, так как она будет быстрее для тестирования первоначально созданного 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)