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

Мне нужен компакт-диск или USB-накопитель, который установит Ubuntu на полностью безголовую машину. Вставьте компакт-диск и перезапустите, клавиатура или экран не должны быть задействованы.

Есть несколько препятствий:

  1. Меню выбора языка при первой загрузке компакт-диска.
  2. Тот факт, что меню компакт-диска ждет.
  3. Установщик задает вопросы во время установки.

Полное решение - это:

Переделайте компакт-диск, т.е. загрузите неграфический установочный ISO-файл ubuntu (серверный или альтернативный установочный компакт-диск), смонтируйте его

$ sudo su -# mkdir -p /mnt/iso# mount -o loop ubuntu.iso /mnt/iso

Скопируйте соответствующие файлы в другой каталог

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

Предотвратите появление меню выбора языка

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

Используйте программу с графическим интерфейсом, чтобы добавить начальный файл с именем ks.cfg

# apt-get install system-config-kickstart# system-config-kickstart # save file to ks.cfg

Чтобы добавить пакеты для установки, добавьте %package раздел, посвященный ks.cfg начальный файл, добавьте в конец ks.cfg запишите что-нибудь вроде этого.

%packages@ ubuntu-serveropenssh-serverftpbuild-essential

Это приведет к установке ubuntu-server "bundle" и добавит openssh-server, ftp и build-essential пакеты.

Добавьте файл предварительной загрузки, чтобы исключить другие вопросы

# echo 'd-i partman/confirm_write_new_label boolean trued-i partman/choose_partition \select Finish partitioning and write changes to diskd-i partman/confirm boolean true' > ks.preseed

Настройте командную строку загрузки на использование файлов kickstart и 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 --

Теперь создайте новый iso

# 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 после загрузки с него, не требуя ни одного нажатия клавиши.

Инструкции в этом вопросе охватывают процесс создания загрузочного ISO EFI (например, официального ISO Ubuntu x86_64).:

Как мне создать загрузочный ISO-файл EFI для настроенной версии Ubuntu?

Основные отличия заключаются в установке этого параметра в качестве файла предварительной загрузки:

d-i partman-auto/method string lvmd-i partman-auto-lvm/guided_size string maxd-i partman-auto/choose_recipe select atomicd-i partman-partitioning/confirm_write_new_label boolean trued-i partman/confirm_write_new_label     boolean trued-i partman/choose_partition            select  finishd-i partman/confirm_nooverwrite         boolean trued-i partman/confirm                     boolean trued-i partman-auto/purge_lvm_from_device  boolean trued-i partman-lvm/device_remove_lvm       boolean trued-i partman-lvm/confirm                 boolean trued-i partman-lvm/confirm_nooverwrite     boolean trued-i partman-auto/init_automatically_partition       select      Guided - use entire disk and set up LVMd-i partman/choose_partition                select      Finish partitioning and write changes to diskd-i partman-auto-lvm/no_boot            boolean trued-i partman-md/device_remove_md         boolean trued-i partman-md/confirm                  boolean trued-i partman-md/confirm_nooverwrite      boolean true

Используйте это в качестве стартового файла:

lang en_USlangsupport en_USkeyboard usmousetimezone America/Los_Angelesrootpw --disableduser USERNAME --fullname "USERNAME" --password "PASSWORD"reboottextinstallcdromauth  --useshadow  --enablemd5 network --bootproto=dhcp --device=eth0firewall --disabled skipx%packages@ ubuntu-serveropenssh-server

Отредактируйте конфигурацию загрузки grub EFI для ISO:

sudo nano ~/ubuntu/boot/grub/grub.cfg

Установлен в:

if loadfont /boot/grub/font.pf2 ; then    set gfxmode=auto    insmod efi_gop    insmod efi_uga    insmod gfxterm    terminal_output gfxtermfiset menu_color_normal=white/light-blueset menu_color_highlight=light-blue/light-grayset timeout=10set default=0menuentry "Automatically Install Ubuntu Server with Custom Config" {    set gfxpayload=keep    linux   /install/vmlinuz  file=/cdrom/preseed/ubuntu-server.seed quiet ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --    initrd  /install/initrd.gz}menuentry "OEM install (for manufacturers)" {    set gfxpayload=keep    linux   /install/vmlinuz  file=/cdrom/preseed/ubuntu-server.seed quiet oem-config/enable=true --    initrd  /install/initrd.gz}menuentry "Multiple server install with MAAS" {    set gfxpayload=keep    linux   /install/vmlinuz  modules=maas-enlist-udeb vga=788 initrd=/install/initrd.gz quiet --    initrd  /install/initrd.gz}menuentry "Check disc for defects" {    set gfxpayload=keep    linux   /install/vmlinuz  MENU=/bin/cdrom-checker-menu quiet --    initrd  /install/initrd.gz}menuentry "Rescue a broken system" {    set gfxpayload=keep    linux   /install/vmlinuz  rescue/enable=true --    initrd  /install/initrd.gz}

Установите isolinux/txt.cfg следующим образом:

default installlabel install  menu label ^Install Ubuntu Server with Custom Config  kernel /install/vmlinuz  append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --label cloud  menu label ^Multiple server install with MAAS  kernel /install/vmlinuz  append   modules=maas-enlist-udeb vga=788 initrd=/install/initrd.gz quiet --label check  menu label ^Check disc for defects  kernel /install/vmlinuz  append   MENU=/bin/cdrom-checker-menu vga=788 initrd=/install/initrd.gz quiet --label memtest  menu label Test ^memory  kernel /install/mt86pluslabel hd  menu label ^Boot from first hard disk  localboot 0x80

Создайте каталог с двойной загрузкой ISO:

sudo mkisofs -U -A "Custom1404" -V "Custom1404" -volset "Custom1404" -J -joliet-long -r -v -T -o ../Custom1404.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot .

Убедитесь, что был создан загрузочный ISO-файл EFI:

dumpet -i Custom1404.iso 

Выходы:

Validation Entry:    Header Indicator: 0x01 (Validation Entry)    PlatformId: 0x00 (80x86)    ID: ""    Checksum: 0x55aa    Key bytes: 0x55aaBoot Catalog Default Entry:    Entry is bootable    Boot Media emulation type: no emulation    Media load segment: 0x0 (0000:7c00)    System type: 0 (0x00)    Load Sectors: 4 (0x0004)    Load LBA: 3100 (0x00000c1c)Section Header Entry:    Header Indicator: 0x91 (Final Section Header Entry)    PlatformId: 0xef (EFI)    Section Entries: 1    ID: ""Boot Catalog Section Entry:    Entry is bootable    Boot Media emulation type: no emulation    Media load address: 0 (0x0000)    System type: 0 (0x00)    Load Sectors: 4672 (0x1240)    Load LBA: 1932 (0x0000078c)

Вот сценарий оболочки, который выполняет эту процедуру, спасибо за введение: http://www.utech.de/2013/05/shell-script-creating-a-cd-for-unattended-ubuntu-server-installations/

Сценарий, который вы найдете по ссылке, в основном реализует процедуру, описанную @Elazar, поэтому основные части - это просто экран выше. Я добавил ссылку, чтобы сэкономить кому-то немного времени и упростить повторение этого для других версий Ubuntu.

Довольно простой метод описан по следующей ссылке на ответ в AskUbuntu,

Как я могу создать загрузочный автоматический USB-диск для восстановления?

  • Создайте систему, которую вы хотите с портативным сетевым подключением, например, в соответствии с

  • Создайте [сжатый] файл dd-изображения системы (я думаю, что это проще, чем ремастеринг).

  • Создайте shellscript и вызовите его через "автозапуск" в постоянной действующей системе согласно с это описание. Вы можете сделать это с минимальными изменениями (возможно, соответствовать только имени файла сжатого изображения), или вы можете изменить его в соответствии с вашим конкретным случаем.

Полезная ссылка: https://help.ubuntu.com/lts/installation-guide/i386/automatic-install.html

Поэтому я сделал это. однако с новым kickstart iso при перезапуске моего сервера ubunutu я получаю следующую ошибку ubuntu не удалось загрузить файл amd-ucode /microcode_amd.bin Я попытался выполнить поиск файла на моем “регулярно” установленном сервере ubunutu, но я не смог его найти … и я не получаю сообщение об ошибке когда я перезагружу его

Для Ubuntu ** Desktop ** посмотрите здесь: preseed - How do I create a completely unattended install of Ubuntu Desktop 16.04.1 LTS? - Ask Ubuntu. Приведенный ниже ответ не сработает (и его источник без указания имени находится здесь: Steps to create a kickstart server on Ubuntu 14.04 - Ask Ubuntu )