Guía de detalles para personalizar el instalador de Ubuntu

9

Intenté leer las guías para la preselección y la personalización , pero no entendí cómo y dónde modificar qué opciones. Solo puedo aprender cómodamente a través de ejemplos prácticos, para los cuales hago esta pregunta.

Estoy buscando una solución de preselección y personalización para hacer algunas tareas específicas:

  • Vuelva a escribir completamente los paquetes instalados de forma predeterminada, al igual que las instalaciones mínimas y con el --no-install-recommendsindicador de apt-get.
  • Agregue algunas aplicaciones propietarias a la lista de instalación predeterminada
  • Instale y monte automáticamente controladores propietarios en la sesión de instalación y en vivo
  • Edite los archivos de configuración predeterminados para las aplicaciones instaladas por defecto
  • Especificar particiones junto con permiso
  • Modifique el conjunto de paquetes en el medio de instalación (CD / DVD / USB), preferiblemente utilizando herramientas de línea de comandos similares a apt-gety aptitude.

¿Alguien puede decirme cómo configurar la opción predeterminada para hacer solo lo anterior?

Nota : no entiendo la parte GPG después de agregar / eliminar paquetes en el grupo.

PD El tercer punto es de particular importancia.

Oxwivi
fuente
Para ser claros, ¿"Ubuntu Installer" se refiere al instalador gráfico (uniquity) o alternativo (debian-installer)?
komputes
@komputes, cualquiera lo hará.
Oxwivi

Respuestas:

6

Para una referencia preseleccionada, puede consultar la instalación-guía-i386 que contiene la siguiente muestra preseleccionada:

  /usr/share/doc/installation-guide-i386/example-preseed.txt.gz
  • Reescribe completamente los paquetes instalados por defecto, al igual que las instalaciones mínimas
  • Agregue algunas aplicaciones propietarias a la lista de instalación predeterminada

Para proporcionar la lista de paquetes que desea instalar, puede buscar la siguiente línea:

  tasksel tasksel/first   multiselect ubuntu-desktop

Donde "ubuntu-desktop" se puede cambiar por un número arbitrario de paquetes o metapaquetes.

  • Instale y monte automáticamente controladores propietarios en la sesión de instalación y en vivo

Aparte de especificar los paquetes necesarios (para los controladores propietarios), no estoy seguro de cómo se lograría esto. Como nota al margen, "monta" una partición, "carga" un módulo / controlador del núcleo.

  • Edite los archivos de configuración predeterminados para las aplicaciones instaladas por defecto

Para hacer ese tipo de cambios con guión, probablemente desee examinar:

  d-i preseed/late_command string ...

Donde el "..." se puede reemplazar con comandos arbitrarios como sed -i, por ejemplo.

  • Especificar particiones junto con permiso

Hay una sección de partición en el ejemplo preestablecido mencionado anteriormente.

Ubicuidad con preseed

Casper admite valores predeterminados y la ubicuidad puede tener muchos valores predeterminados. Estas son algunas de las variables que pueden preseleccionarse relevantes para la ubicuidad:

ubiquity countrychooser/shortlist select US
ubiquity languagechooser/language-name select English
ubiquity localechooser/supported-locales multiselect en_US.UTF-8
ubiquity ubiquity/summary note
ubiquity ubiquity/reboot boolean true
ubiquity ubiquity/poweroff boolean true
ubiquity ubiquity/success_command string ...

Donde "..." contendría lo mismo que late_command mencionado anteriormente, success_command se lee por ubicuidad y late_command por di.

komputes
fuente
¿No hay forma de cambiar los archivos de configuración de antemano? ¿Cómo evito la instalación de los paquetes recomendados? ¿Cómo agrego paquetes propietarios para la instalación fuera de línea?
Oxwivi
Parece que desea crear una imagen personalizada, como se describe aquí: help.ubuntu.com/community/LiveCDCustomization La imagen también puede contener un archivo preestablecido donde puede cambiar los archivos de configuración como se describió anteriormente. Otro enfoque es que también puede crear sus propios paquetes para algunas de las personalizaciones.
komputes
De acuerdo, olvide cambiar la configuración, ¿necesito instrucciones de CD personalizadas para incluir paquetes que no están presentes en el disco de forma predeterminada?
Oxwivi
Monté una imagen, copié el contenido en un directorio, modifiqué los parámetros de Ubiquity. ¿Cómo lo finalizo?
Oxwivi
Para finalizar / construir la imagen ISO, siga la charla titulada "Producir la imagen del CD" aquí: help.ubuntu.com/community/LiveCDCustomization
komputes
3

Lo siguiente crea una imagen de arranque modificada. Grabarlo en un CD o insertar el ISO en una máquina virtual para probarlo. Necesitará cpioy genisoimage(esos son los nombres de los paquetes y ejecutables).

Lo siguiente tiene la forma de un Makefile, pero se puede ingresar de forma interactiva. ${IN_ISO}se refiere a la imagen ISO original (utilicé la -alternativeversión, y te sugiero que hagas lo mismo), ${OUT_ISO}al nombre ISO deseado.

# Extract the ISO image to mount/ and copy it to cdroot/
cdroot:
    mkdir -p mount
    sudo mount -o loop ${IN_ISO} mount
    mkdir cdroot
    cd cdroot && tar cf - ../mount --transform 's,^mount/,,' | tar xf -
    sudo umount mount && rm -r mount
    chmod -R a+rw cdroot

# Copy new files to the disk. Content of those files is posted below
prepare: cdroot
    cp isolinux.cfg cdroot/isolinux/isolinux.cfg
    test -e ./initrd.orig.gz || cp cdroot/install/initrd.gz ./initrd.orig.gz
    mkdir -p initrd
    cd initrd && gunzip <../initrd.orig.gz | sudo cpio -i && cd ..
    cp preseed.cfg initrd/preseed.cfg
    cd initrd && find . | cpio -o --format=newc | gzip -9 > ../cdroot/install/initrd.gz && cd ..
    sudo rm -rf initrd

# Create the ISO image. Make sure to use extensions for lower-case filenames    
iso: cdroot prepare
    genisoimage -o ${OUT_ISO} \
        -force-rr -J \
        -b isolinux/isolinux.bin -c isolinux/boot.cat \
        -no-emul-boot -boot-load-size 4 -boot-info-table \
        cdroot

Necesita algunos archivos adicionales:

isolinux.cfgconfigura el gestor de arranque. Desea que solo se inicie y pase automáticamente por el proceso de instalación. Debe tener un aspecto como este:

default install
label install
  menu label ^Install my custom Ubuntu
  kernel /install/vmlinuz
  append auto initrd=/install/initrd.gz --
# Leave 2 seconds to abort or debug
prompt 1
timeout 20

Esos son todos los preparativos que necesitamos antes de configurar realmente la instalación. Descargue el ejemplo predeterminado y asígnele el nombre preseed.cfg. Revísalo y edita lo que quieras. Las opciones importantes son:

# Locale
d-i debian-installer/locale string en_US
d-i time/zone string US/Eastern

# Partitioning. The following settings WILL OVERWRITE ANYTHING
# Don't insert the CD into your boss' computer ...
d-i partman-auto/method string regular
d-i partman/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

# To create a normal user account.
d-i passwd/user-fullname string Ubuntu User
d-i passwd/username string ubuntu
d-i passwd/user-password password insecure
d-i passwd/user-password-again password insecure
d-i user-setup/allow-password-weak boolean true

# Package selection. Don't include ubuntu-desktop to significantly reduce the content
tasksel tasksel/first multiselect standard

#d-i preseed/early_command string driver installation commands (stuff needed to boot)
#d-i preseed/late_command string driver installation commands, custom software, etc.

Pero le sugiero que no use lo anterior como ejemplo, sino que descargue el ejemplo de Ubuntu y configúrelo según sus necesidades late_command, puede hacer cualquier cosa desde shell, incluida la descarga y ejecución de un script que instala y configura su software personalizado. Por ejemplo, use esto como late_command:

d-i preseed/late_command string in-target sh -c 'wget https://example.com/my/install.sh && sh install.sh'

Alternativamente, puede colocar install.shen el initrd anterior y ejecutarlo directamente. Su contenido podría verse así:

#!/bin/sh
aptitude install -y x11-apps any-package-you-want-installed
wget http://proprietary.com/drivers/for/ubuntu.tar.gz -O- | tar xf - && sh drivers/instal.sh

Realmente depende de cómo funciona la rutina de instalación del controlador propietario.

phihag
fuente
Como dije en la pregunta, quiero orientación sobre cómo exactamente para las tareas que enumeré; ¿Cómo reescribo los paquetes que se van a instalar? ¿Qué pasa con la instalación automática de controladores propietarios?
Oxwivi
@Oxwivi Escriba un script que instale todo lo que desee, y descárguelo y ejecútelo late_command. Package selectiones la parte que puede usar para instalar sus propios paquetes, pero también puede hacerlo en el script.
phihag
1
@Oxwivi Puede instalar jockey y luego eliminarlo con aptitude purge jockeyun script. No estoy seguro de lo que quiere decir con una "forma genérica de instalar cualquier tipo de controladores propietarios". Esta es una forma genérica de instalar cualquier controlador restringido, simplemente coloque el paquete del controlador que está instalando en taskel o después aptitude install -yen el script, y funcionará. Si desea que su imagen funcione en varias máquinas, probablemente tendrá que encontrar una manera de pedirle a jockey todos los controladores propietarios aplicables. ...
phihag
1
@Ocwivi ... Sin embargo, la instalación de todos los controladores propietarios disponibles generalmente es una mala idea: los controladores propietarios suelen ser antiguos, no son compatibles y requieren una configuración adicional no estándar. Además, debe asegurarse de que está legalmente permitido distribuir controladores no libres.
phihag
1
@Oxwivi Esa confianza es infundada, dado que cualquiera puede poner cualquier cosa en los repositorios no libres. Sin embargo, esta discusión está fuera del alcance de esta pregunta (sobre la presentación previa). Debe preguntar cómo se obtiene una lista de los controladores propietarios aplicables para el sistema actual.
phihag