Действия по созданию сервера кикстарта в Ubuntu 14.04
Нужна пошаговая процедура для создания кикстарт-сервера на Ubuntu 14.04 LTS
2 ответа
Это хорошее пошаговое руководство
TL; DR; использовать изогибрид после переупаковки нестандартного iso
Для создания этого usb я использовал виртуальную машину с установленной Ubuntu 14.04. Цель здесь - создать загрузочный USB, который не требует выбора таких вещей, как раскладка клавиатуры, язык и т. Д. Мы хотим автоматическую установку сервера Ubuntu.
Нам нужно получить образ Ubuntu, который мы собираемся настроить для нашей установки.
wget http://releases.ubuntu.com/14.04/ubuntu-14.04.2-server-amd64.iso
Нам понадобится место для монтирования распакованного iso-файла.
sudo mkdir -p /mnt/iso
После того, как мы создали точку монтирования для него, теперь мы должны смонтировать ее. Это откроет файлы, которые содержатся внутри iso. К сожалению, файлы будут только для чтения
, sudo mount -o loop ubuntu-14.04.2-server-amd64.iso /mnt/iso
Чтобы изменить файлы, нам нужно скопировать их в каталог, где мы можем их изменить, поэтому мы создадим каталог, а затем скопируем в него файлы.
sudo mkdir -p /opt/ubuntuiso sudo cp -rT /mnt/iso /opt/ubuntuiso
Наш новый рабочий каталог будет / opt / ubuntuiso
cd /opt/ubuntuiso
Чтобы избежать запроса на выбор языка в процессе установки, нам нужно сообщить ему, какой язык мы будем использовать. В данном случае используется en, потому что я говорю по-английски.
echo en | sudo tee isolinux/lang
Теперь мы собираемся создать файл кикстарта с помощью программы system-config-kickstart. Поэтому мы проверяем, что он установлен, а затем запускаем его.
sudo apt-get install system-config-kickstart system-config-kickstart
Затем сохраните файл из графического интерфейса в
/opt/ubuntuiso/
, Это должно сохранить файл с именем ks.cfg. Мой ks.cfg выглядит следующим образом#Generated by Kickstart Configurator #platform=AMD64 or Intel EM64T #System language lang en_US #Language modules to install langsupport en_US #System keyboard keyboard us #System mouse mouse #System timezone timezone America/Denver #Root password rootpw --disabled #Initial user user ubuntu --fullname "ubuntu" --iscrypted --password $1$MQ0zGB4W$pwjX8nolgr2RJch2Omamt. #Reboot after installation reboot #Use text mode install text #Install OS instead of upgrade install #Use CDROM installation media cdrom #System bootloader configuration bootloader --location=mbr #Clear the Master Boot Record zerombr yes #Partition clearing information clearpart --all --initlabel #Disk partitioning information part /boot --fstype ext2 --size 100 --asprimary part swap --recommended part / --fstype ext4 --size 1 --grow #System authorization infomation auth --useshadow --enablemd5 #Network information network --bootproto=dhcp --device=eth0 #Firewall configuration firewall --disabled #Do not configure the X Window System skipx %post #!/bin/bash exec < /dev/tty6 > /dev/tty6 chvt 6 echo 'Acquire::http { Proxy "http://10.2.4.27"; };' > /etc/apt/apt.conf.d/02proxy apt-get update apt-get -y upgrade apt-get -y dist-upgrade apt-get install -y git ansible openssh-server vim chvt 1
В постскриптуме сделано немного угона (все после
%post
). Строка, начинающаяся с exec и следующей строки (chvt 6
) заставляют установщика показывать вывод команд, которые запускаются после этого. Причина этого заключается в том, что полоса загрузки не будет двигаться во время установки, и она может выглядеть так, как будто установщик завис. Следующая строка прокси предназначена для apt-кэша в нашей локальной сети. Финальная строка (chvt 1
) возвращает вывод в основной установщик.Теперь нам нужно добавить файл preseed, чтобы избежать других вопросов.
echo 'd-i partman/confirm_write_new_label boolean true d-i partman/choose_partition \ select Finish partitioning and write changes to disk d-i partman/confirm boolean true' | sudo tee ks.preseed
Теперь нам нужно сообщить установщику о файлах, которые мы только что сохранили, поэтому нам нужно изменить isolinux/txt.cfg. Сначала нам нужно сделать файл доступным для записи.
sudo chmod +w isolinux/txt.cfg
Затем нам нужно заменить строку добавления следующего раздела
label install menu label ^Install Ubuntu Server kernel /install/vmlinuz append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --
Заменить строку добавления на
append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
Сохраните и выйдите из файла. Нам также нужно убедиться, что мы вернули файл в исходное состояние, поэтому удалите права на запись.
sudo chmod -w isolinux/txt.cfg
Теперь создайте новый ISO-файл, который мы будем использовать для создания загрузочного USB.
sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso
Чтобы завершить загрузку ISO для USB, мы должны гибридизировать его.
sudo isohybrid /opt/autoinstall.iso
После гибридизации мы можем отправить его на USB-накопитель. USB-диск в моей виртуальной машине отображается в
/dev/sdb
, но вы должны использовать правильную метку, поэтому замените X соответственно. Убедитесь, что USB-диск отключен.sudo umount /dev/sdX
И, наконец, вставьте ISO на USB-накопитель. (Обратите внимание, ** это уничтожает данные на целевом устройстве - убедитесь, что вы знаете, что делаете)
sudo dd if=/opt/autoinstall.iso of=/dev/sdX
Теперь ваш USB-накопитель должен быть готов к установке!
Полное решение:
Восстановите CD, т. Е. Загрузите неграфический установочный ISO-образ Ubuntu (серверный или альтернативный установочный CD) и смонтируйте его. В этом случае ваш Ubuntu 14 ISO.
sudo mkdir -p /mnt/iso
sudo mount -o loop ubuntu.iso /mnt/iso
Скопируйте соответствующие файлы в другой каталог
sudo mkdir -p /opt/ubuntuiso
sudo cp -rT /mnt/iso /opt/ubuntuiso
Предотвратить появление меню выбора языка
cd /opt/ubuntuiso
echo en | sudo tee isolinux/lang
Используйте программу с графическим интерфейсом для добавления файла кикстарта с именем ks.cfg
sudo apt-get install system-config-kickstart
system-config-kickstart # save file to ks.cfg
Чтобы добавить пакеты для установки, добавьте %package
раздел к ks.cfg
файл кикстарта, добавьте в конец ks.cfg
подать что-то вроде этого.
%packages
@ ubuntu-server
openssh-server
ftp
build-essential
Это установит пакет ubuntu-server и добавит openssh-server
, ftp
а также build-essential
пакеты.
Добавьте файл preseed, чтобы подавить другие вопросы
echo 'd-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
select Finish partitioning and write changes to disk
d-i partman/confirm boolean true' | sudo tee ks.preseed
Настройте командную строку загрузки на использование файлов кикстарта и preseed
sudo nano isolinux/txt.cfg
Ищи
label install
menu label ^Install Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --
добавлять ks=cdrom:/ks.cfg
а также preseed/file=/cdrom/ks.preseed
к добавленной строке. Вы можете удалить quiet
а также vga=788
слова. Должно выглядеть
append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
Теперь создайте новый ISO
sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso
Вот и все. У вас будет компакт-диск, который установит систему Ubuntu после загрузки с нее, не требуя ввода данных.
При необходимости настройте файлы ks.cfg и preseed.