Solución:
Respondiendo
Le di algo de tiempo desde que hice mi pregunta originalmente para ver si había otras soluciones, pero parece que la solución que se me ocurrió mientras esperaba es la única solución viable que he visto hasta ahora.
Idea equivocada
Dado que esta fue la fuente de mucha confusión, intentaré aclararla. Parece que algunas de las respuestas intentaron utilizar el Servidor Ubuntu 16 image cuando intentaba específicamente crear una instalación de imagen de escritorio de Ubuntu 16 desatendida. El problema surge debido a las diferencias de implementación de di (debian installer) y ubicuidad. Dado que la imagen del servidor prestará atención y utilizará todos los comandos di en el archivo de preconfiguración, la mayoría de las preguntas que hice son irrelevantes para la imagen del servidor. Sin embargo, debido a la implementación de ubicuidad como instalador de la imagen del escritorio, se ignoran muchos comandos di y usted es muy limitado y falta mucha documentación.
Enlaces de documentación encontrados
- Aquí está el enlace para Ubiquity ignorando el preseed / late_command (creo que también ignora el preseed / early_command)
- Aquí está la documentación de Ubiquity, habla sobre qué componentes del instalador no se usarán en Ubiquity, pero como notará incluso en esta documentación, dice preseed / early_command, pero lo probaría a fondo para verificarlo, ya que no parecía funcionar para yo (admito que no probé el early_command rigurosamente, así que puedo estar equivocado).
Proceso exitoso
Este es mi proceso para crear con éxito un Ubuntu Desktop 16.04 LTS desatendido Yo asi.
Monte Ubuntu ISO
Deberá montar los archivos ISO para poder editar los archivos pertinentes.
mkdir -p /mnt/iso
mount -o loop ~/Downloads/ubuntu-16.04.1-desktop-amd64.iso /mnt/iso
Copiar archivos ISO
Necesitaremos copiar los archivos en ISO montado a un directorio diferente para poder editarlos. Siéntase libre de usar cualquier directorio que desee, elegí el directorio / opt debido a otro procedimiento, pero / tmp podría usarse con la misma facilidad.
mkdir -p /opt/ubuntuiso
cp -rT /mnt/iso /opt/ubuntuiso
Edite el archivo txt.cfg
Aquí editaremos el archivo /opt/ubuntuiso/isolinux/txt.cfg y personalizaremos nuestros parámetros de arranque para obtener una instalación completamente desatendida que incluirá un archivo preconfigurado. Utilice cualquier editor de su elección:
#default live
#label live
# menu label ^Try Ubuntu without installing
# kernel /casper/vmlinuz.efi
# append file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ---
#label live-install
# menu label ^Install Ubuntu
# kernel /casper/vmlinuz.efi
# append file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity initrd=/casper/initrd.lz quiet splash ---
#label check
# menu label ^Check disc for defects
# kernel /casper/vmlinuz.efi
# append boot=casper integrity-check initrd=/casper/initrd.lz quiet splash ---
#label memtest
# menu label Test ^memory
# kernel /install/mt86plus
#label hd
# menu label ^Boot from first hard disk
# localboot 0x80
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 ---
Por favor, tome nota de algunas cosas:
- Comenté todo el texto original del archivo.
- Agregué todo el texto después e incluyendo “instalación en vivo predeterminada” en la parte inferior
- Llamé al archivo de preselección “ks.preseed” y estará en el directorio de nivel superior de la ISO (/ opt / ubuntuiso)
Usar o crear un archivo preempaquetado
¡Utilice un archivo preconfigurado ya existente con precaución! No he encontrado ninguno que simplemente funcione. Esto no quiere decir que no existan, simplemente no encontré ninguno con bastante búsqueda. Hay muchas formas de configurar un archivo preconfigurado, pero encontré muchas opciones para ignorar, descritas en la Documentación de Ubiquity que vinculé arriba y en el enlace para preseed / late_command vs ubiquity / success_command. Incluyo mi archivo de preajuste de trabajo simple que funciona con el archivo txt.cfg anterior.
Para netcfg / get_hostname cadena y netcfg / get_domain cadena puedes poner lo que quieras que sea. Utilicé unassigned-hostname y unassigned-domain ya que lo cambiaré más tarde mediante un proceso de scripting.
Para cualquier comando personalizado que desee ejecutar después de la instalación, debe usar:
ubiquity ubiquity/success_command string
Seguido de cualquier comando que desee ejecutar. Preste atención a continuar las cadenas con “; “
y usando el “/objetivo” para cambiar cualquier cosa relacionada con el nuevo sistema instalado.
# Partitioning
# Old style using d-i command
#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
# Newer ubiquity command
ubiquity partman-auto/disk string /dev/sda
ubiquity partman-auto/method string regular
ubiquity partman-lvm/device_remove_lvm boolean true
ubiquity partman-md/device_remove_md boolean true
ubiquity 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 mirror/country string US
d-i apt-setup/multiverse boolean true
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
# Users
d-i passwd/user-fullname string User
d-i passwd/username string user
d-i passwd/user-password-crypted password yourEncryptedPasswd
d-i passwd/user-default-groups string adm audio cdrom dip lpadmin sudo plugdev sambashare video
d-i passwd/root-login boolean true
d-i passwd/root-password-crypted password rootEncryptedPasswd
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
ubiquity ubiquity/success_command string
sed -i -e 's/dns=dnsmasq/#dns=dnsmasq/' /target/etc/NetworkManager/NetworkManager.conf ;
cp -a /cdrom/scripts/ /target/root/ ;
cp -a /cdrom/salt/ /target/root/
Tenga en cuenta estas cosas como las dejé con fines ilustrativos y es probable que sean diferentes en su comando de preselección.
- Usted debe agregar la contraseña de usuario / root. Aquí está el enlace que le muestra 3 formas diferentes de crear una contraseña de Crypt 3.
- Es posible que desee cambiar los grupos a los que está asignado su usuario.
- Definitivamente querrá cambiar el success_command. Lo dejé para mostrar cómo se puede formatear y cómo usar el /objetivo medio ambiente.
Crear nueva ISO
Cree la ISO para que pueda probar su archivo preconfigurado. Si usa uno o hace el suyo propio, deberá probarlo, ya que esto PROBABLE sea el lugar donde su proceso fallará. Escribí un script para pruebas rápidas, pero podría apuntar el archivo de preselección a un archivo de preselección alojado en http: // y probar muy rápidamente de esa manera.
mkisofs -D -r -V "UNATTENDED_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /tmp/ubuntu16-desktop-unattended-install.iso /opt/ubuntuiso
No dude en cambiar el nombre de la salida y el directorio en el que la guardará.
Grabar ISO
Sugeriría probar en virtualbox o similar y, una vez que lo tenga funcionando, lo grabe en un DVD. Ahora debería tener un DVD de instalación de Ubuntu Desktop 16.04 LTS sin supervisión que funcione.
Comentarios, correcciones, errores
Escribí todo esto de una vez y puede haber errores, errores tipográficos o cosas que se estropearon en el camino. Si alguien intenta esto, avíseme si encuentra un error en el proceso. Y recuerde que si crea su propio archivo preconfigurado, probablemente no podré responder por qué su instalación desatendida está rota y no funciona, ya que a la ubicuidad le gusta ignorar y no hacer ciertas cosas en el archivo preconfigurado. Espero que esto sea de ayuda para alguien.
Eche un vistazo a: https://github.com/core-process/linux-unattended-installation
Este proyecto proporciona todo lo que necesita para crear una instalación desatendida de una configuración mínima de Linux, mientras que mínima se traduce en la configuración más ligera, incluido un servicio OpenSSH y Python, que puede obtener del instalador estándar de una distribución de Linux. La idea es que usted hará todo el despliegue de sus configuraciones y servicios con la ayuda de Ansible o herramientas similares una vez que haya completado la configuración mínima.
Buen trabajo Brandon Authier por tu publicación e instrucciones, me ayudaste mucho.
Sin embargo, tuve un problema con su método: descubrí que después de que finaliza la instalación y la PC se reinicia, GRUB se cuelga.
Así que agregué al ks.preseed lo siguiente:
# 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
Esto evita que se bloquee la instalación de grub si no retira la memoria USB. Obtuve esto de https://www.debian.org/releases/stable/example-preseed.txt