Как создать полностью автоматическую установку Ubuntu Desktop 16.04.1 LTS?

Цель

Я хочу установить Ubuntu Desktop 16.04.1 LTS полностью без присмотра.

Проблемы

Параметры загрузки неверны. Вопросы, которые все еще задаются и требуют щелчков мыши. Конвоированные ответы с использованием kickstart / preseed. Примеры документации не работают, как указано, в частности, от partman и ubunutu

Я наткнулся на этот пост здесь, и он был близок к тому, что мне нужно, но не совсем выполнил то, что мне было нужно, так как это было для Ubuntu Server. Сообщение предлагает использовать «неграфическую» установку Ubuntu, но я не смог найти неграфическую установку для Ubuntu Desktop, что имеет смысл. Я попытался адаптировать этапы и заставить их работать для Ubuntu Desktop 16.04.1 LTS.

Документация Используется

Я использовал все следующие ресурсы ...

[d12 ] По-видимому, я не могу включить все свои ресурсы, потому что askubuntu не разрешает более двух ссылок. Ну, это не очень полезно - вот список:

Параметры загрузки неверны Ubuntu install.en.pdf Вопросы, которые еще требуют и требуют щелчков мыши [!d5 ] Документация установщика Ubiquity Сконструированные ответы с использованием kickstart / preseed Рецепт раздела Объяснение трех чисел и их взвешивания Примеры документации не работают, как указано, в частности, от partman и ubunutu

Текущее решение

В настоящее время я создал автоматическую установку, но не уверен, что это правильно - это означает, что я должен был отредактировать isolinux / isolinux.cfg

. Были много различий между сообщением, которое я связал, и образ рабочего стола Ubuntu. Вот мое решение:

Шаг 1

Установил Ubuntu ISO, чтобы я мог скопировать содержимое в другой каталог, а затем отредактировать соответствующие файлы.

mkdir -p /mnt/iso
mount -o loop ubuntu.iso /mnt/iso

] Шаг 2

Затем я скопировал файлы ISO в другой каталог для редактирования.

mkdir -p /opt/ubuntuiso
cp -rT /mnt/iso /opt/ubuntuiso

Шаг 3

Я отредактировал файл isolinux/isolinux.cfg и заменил все внутри со следующим:

default live-install
label live-install
  menu label ^Install Ubuntu
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/ks.preseed auto=true priority=critical debian-installer/locale=en_US keyboard-configuration/layoutcode=us ubiquity/reboot=true languagechooser/language-name=English countrychooser/shortlist=US localechooser/supported-locales=en_US.UTF-8 boot=casper automatic-ubiquity initrd=/casper/initrd.lz quiet splash noprompt noshell ---

Строка append очень длинная, поэтому для удобства чтения, вот все опции, которые я использовал:

file=/cdrom/ks.preseed 
auto=true 
priority=critical 
debian-installer/locale=en_US 
keyboard-configuration/layoutcode=us 
ubiquity/reboot=true 
languagechooser/language-name=English 
countrychooser/shortlist=US 
localechooser/supported-locales=en_US.UTF-8 
boot=casper 
automatic-ubiquity 
initrd=/casper/initrd.lz 
quiet 
splash 
noprompt 
noshell

Я обнаружил, что все эти параметры загрузки были необходимы, чтобы получить полностью автоматическую установку. Для Ubuntu Server это может быть другим.

Шаг 4

Я попытался использовать и создать много файлов preseed, но я нашел более сложным, тем больше вероятность ошибок. Это мой простой файл preseed, который работает с указанным выше файлом isolinux.cfg.

### Partitioning
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-auto/choose_recipe select atomic

# This makes partman automatically partition without confirmation
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

# Locale
d-i debian-installer/locale string en_US
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us

# Network
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
d-i netcfg/choose_interface select auto

# Clock
d-i clock-setup/utc-auto boolean true
d-i clock-setup/utc boolean true
d-i time/zone string US/Pacific
d-i clock-setup/ntp boolean true

# Packages, Mirrors, Image
d-i base-installer/kernel/override-image string linux-server
d-i base-installer/kernel/override-image string linux-image-amd64
d-i mirror/country string US
d-i mirror/http/proxy string
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i pkgsel/install-language-support boolean false
tasksel tasksel/first multiselect ubuntu-desktop

# Users
d-i passwd/user-fullname string Liason
d-i passwd/username string liason
d-i passwd/user-password-crypted password [crpyt 3]
d-i passwd/root-login boolean true
d-i passwd/root-password-crypted password [crypt 3]
d-i user-setup/allow-password-weak boolean true

# Grub
d-i grub-installer/grub2_instead_of_grub_legacy boolean true
d-i grub-installer/only_debian boolean true
d-i finish-install/reboot_in_progress note

# Custom Commands

Я не включил свои зашифрованные пароли, поэтому, если вы попробуете этот файл preseed, пожалуйста, измените их на зашифрованный пароль , здесь - это 3 способа сделать пароль.

Шаг 5

Я создал новый ISO из каталога /opt/ubuntuiso/.

[ f6]

Шаг 6

Я, наконец, протестировал его с помощью Virtualbox и создал полностью автоматическую установку.

Вопросы

Должен ли я редактировать isolinux/isolinux.cfg file?

В другом сообщении кажется, что они могут редактировать файл isolinux/txt.cfg и могут выполнить эту работу. Я пробовал около часа использовать isolinux/txt.cfg, но это не сработало.

У кого-нибудь есть более сложный рецепт partman, который напрямую определяет разделы? Или рабочая настройка LVM? Я попытался использовать простую настройку LVM, но после перезагрузки он не загрузился и просто сидел бы на черном экране. Кроме того, ни один из предпродажных примеров, перечисленных в документации, не работал.

Спасибо за любую помощь.

1
задан 13 April 2017 в 15:24

4 ответа

Мне жаль, что мой прежний метод не сработал. К счастью, я нашел сценарий, разработанный Ринк Зонненберга (netson), что создало бы без присмотра AMD64 ISOs из Ubuntu Server на GitHub, и я раздвоенной его. Затем я улучшил сценарий, добавив возможность создания I386 ISO. Я также сменил ОС с Ubuntu Server на Ubuntu Desktop. Вам не нужно посещать хранилище GitHub, вы можете просто следовать приведенным ниже инструкциям

Выполните эти команды. :

$ wget https://raw.githubusercontent.com/iPlus-TechNet/ubuntu-unattended/master/create-unattended-iso.sh
$ chmod +x create-unattended-iso.sh
$ sudo ./create-unattended-iso.sh

Иногда wget не доступен. Если это так, то используйте curl:

.

$ curl -O https://raw.githubusercontent.com/iPlus-TechNet/ubuntu-unattended/master/create-unattended-iso.sh

Если ни одна из этих работ, загрузить его и переместить его в вашу домашнюю папку

Вы будет задан вопрос, который версию Ubuntu для установки, а затем вопросы Ubuntu спросят, выполняете ли вы ручную установку. Затем скрипт загрузит ISO Ubuntu, а затем применит внесенные в него изменения. Теперь у вас есть ISO, который готов для автоматической установки!

Это должно ответить на ваш вопрос, потому что это сработало для меня отлично. Также хорошо, что этот метод намного проще, чем мой прежний ответ. Надеюсь, это сработает для вас, как и для нас.

1
ответ дан 23 May 2018 в 07:29
  • 1
    Я благодарен за ответ, и после прочтения вашего сценария я вижу, что вы используете Ubuntu Server , который я явно сказал несколько раз, но не хочу использовать. Я уже знаю, что Ubuntu Server использует d-i и фактически использует традиционные параметры preseed. Тем не менее, я хочу, чтобы Ubuntu Desktop четко указывал на мой вопрос. Я не хочу устанавливать сервер и после установки устанавливать версию рабочего стола. – Brandon Authier 6 September 2016 в 21:24
  • 2
    ОК. Я изменю его на Ubuntu Desktop. – iplustech.net 7 September 2016 в 02:51
  • 3
    Я починил это. Надеюсь, теперь это сработает. – iplustech.net 7 September 2016 в 03:07
  • 4
    Ну, это должно быть очень просто - ваш скрипт загружает только изображения SERVER - это не то, о чем я просил, и поэтому ваше решение для сценариев не работает. Он имеет все, что связано с моей системой, и ничего странного, так как это версия DESKTOP, о которой я прямо заявил в вопросе об этой теме. Спасибо за попытку, но изображение сервера не решит этот вопрос. – Brandon Authier 13 October 2016 в 23:14
  • 5
    github.com/iPlus-TechNet больше не существует? У меня ошибка 404. – Hadrien TOMA 1 July 2017 в 19:42

ПОЖАЛУЙСТА, НЕ ПОПРОБУЙТЕ ЭТОТ МЕТОД. НЕ РАБОТАЕТ (ЕСЛИ ВЫ ПЫТАЕТЕ УБИТЬ ВРЕМЯ):

Я видел ответ на все это. Я расскажу вам самое общее решение. Я никогда не пробовал это перед собой, поэтому он может быть устаревшим. Я действительно не понимаю смысла, потому что просто выполнить ручную установку было бы проще, но в любом случае ...

Войти как root или запустить $ sudo su -

Загрузить и установите ISO.

# mkdir -p /opt/ubuntuiso
# cp -rT /mnt/iso /opt/ubuntuiso

Заблокировать часть языка GUI из

# cd /opt/ubuntuiso
# echo en >isolinux/lang

Добавить файл «Kickstart».

# apt install system-config-kickstart
# system-config-kickstart

[OPTIONAL] Добавить пакеты для вашей установки

# vim /path/to/ks.cfg #[OPTIONAL]

Или просто найти его в своих файлах и отредактируйте его напрямую. Добавьте %packages раздел и поместите под него свои пакеты.

%packages
# Add your packages below. Example:
@ ubuntu-server
apache2
mysql-server
php7.0
php-pear
libapache2-mod-php7.0 
php7.0-mysql
php7.0-curl
php7.0-json
php7.0-cgi

Как я уже сказал, я никогда не делал этого сам, поэтому, если у вас была такая конфигурация, как выше, (! d9)

Подавлять вопросы с помощью файла «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' > ks.preseed

Активировать файлы:

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

Теперь вы можете создать новый ответ:

# 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

И вот вы идете! [ ! d15]

1
ответ дан 23 May 2018 в 07:29
  • 1
    Теперь, когда я огляделся, я увидел ту же самую формулу здесь из Elazar Leibovich . Наверное, я был прав, потому что это был самый распространенный. – iplustech.net 20 August 2016 в 17:27
  • 2
    Хммм, я не уверен, что случилось с моим комментарием до этого сообщения ... Этот метод НЕ РАБОТАЕТ . Если вы читаете это, ища ответ, не пробуйте это, это пустая трата времени. Я конкретно связываю этот точный процесс с моим оригинальным вопросом, четко излагая недостатки этого метода: ks слишком ограничены файлами ps с Ubuntu 16.01, из-за вездесущности, игнорируют множество функций. Txt.cfg не работает для Ubuntu Desktop 16.04 как обозначенные этими или другими сообщениями. Вы должны пройти довольно много параметров загрузки, чтобы обойти и даже достигнуть ps-ding для повсеместности – Brandon Authier 2 September 2016 в 04:14
  • 3
    Плакат явно не читал мой пост. Он писал: «Я никогда не пробовал это перед собой , поэтому он может быть устаревшим. Я действительно не понимаю смысла, потому что просто выполнить ручную установку было бы проще , но в любом случае ... ». Даже не попробовал и не решил это как решение ??? Во-вторых, я объясняю, что хочу установить без установки , где я могу уйти. Не ручной. Представьте, что вы устанавливаете 100 ящиков, вы хотите сделать это вручную? Нет. – Brandon Authier 2 September 2016 в 04:34
  • 4
    Ой. Извини за это. Я мог бы изучить другие способы сделать это. – iplustech.net 6 September 2016 в 04:17

Посмотрите: https://github.com/core-process/linux-unattended-installation

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

1
ответ дан 23 May 2018 в 07:29
  • 1
    Хм, выглядит несколько интересным. Я определенно буду ждать 18.04 LTS, но я могу испортить это, чтобы посмотреть, как это работает. Я уже закончил тем, что решил это, разобрав все, как указано выше. Однако, видя, как другие люди решают это, всегда хорошо для разных идей. – Brandon Authier 1 September 2017 в 02:06
  • 2
    Просто добавлена ​​поддержка создания образов дисков, а также изображений ISO. Наслаждайтесь! – Niklas 13 September 2017 в 00:26

Отличная работа Brandon Authier за ваши сообщения и инструкции, вы мне очень помогли.

У меня была одна проблема с вашим методом: я узнал, что после завершения установки и перезагрузки ПК GRUB зависает. [ ! d1]

Итак, я добавил к ks.preseed следующее:

# Due notably to potential USB sticks, the location of the MBR can not be
# determined safely in general, so this needs to be specified:

d-i grub-installer/bootdev  string /dev/sda

# To install to the first device (assuming it is not a USB stick):
#d-i grub-installer/bootdev  string default

Это предотвратит сбой установки grub, если вы не удалите USB-накопитель. Я получил это от https://www.debian.org/releases/stable/example-preseed.txt

0
ответ дан 23 May 2018 в 07:29

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

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