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

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

41 голос | спросил Shadin 23 Jpm1000000pmThu, 23 Jan 2014 15:37:48 +040014 2014, 15:37:48

1 ответ


60

Скачать

Загрузите 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.

Это создаст новый параметр «Установить пользовательский сервер Ubuntu», и он добавит файл кикстарта (файл 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 литий>

Пример:

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

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

<p> <img src = Документация по выбору /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
  • Если вы что-то меняете, установщик будет пропустить эту просьбу, если она считается действительной. Если вы не изменили вариант, установщик все равно попросит вас ответить.
  • Вы также можете загрузить kickstart файлы и сохранить их как ks-custom.cfg в ~/Downloads/newIso/preseed/.

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

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

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

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

<p> <strong> Сохранение </strong> (настройка файла конфигурации вручную) </p>

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

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

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

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

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

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

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

<p> <img src =

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

Результат:

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

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

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

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

<p> <strong> Поиск ошибок </strong> </p>

<p> Устанавливается на 1 проблему при установке: по умолчанию не было выбрано. </p>

<p> Shadin. Из <a href= файла семян в комментарии

### 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)

ответил Rinzwind 23 Jpm1000000pmThu, 23 Jan 2014 18:12:34 +040014 2014, 18:12:34

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132