Descargar
Descargue el ISO del servidor Ubuntu desde esta ubicación . Tiene la opción de utilizar 32 bits o 64 bits. El nombre del archivo para la edición del servidor será similar a este:
ubuntu-13.10-server-i386.iso
ubuntu-13.10-server-amd64.iso
Asumiré la versión 13.10 de 64 bits en las siguientes instrucciones, así que ajuste los comandos a la descarga que realizó. Guarde una copia de su descarga para que pueda crear múltiples versiones nuevas de la descarga original en caso de que necesite mejorar su proyecto. También asumiré que solíamos ~/Downloads/
hacer todo nuestro trabajo.
Configuración inicial
Esto creará 2 directorios "iso" e "isoNew" dentro de su directorio de Descargas, montará el ISO y copiará el contenido de "iso" a "isoNew" para comenzar un nuevo proyecto.
Ponga esto en un archivo de texto, guárdelo, hágalo ejecutable y ejecútelo:
# Ubuntu custom server
# rinzwind askubuntu.com
# topic: http://askubuntu.com/questions/409607/how-to-create-a-customized-ubuntu-server-iso/409651#409651
cd ~/Downloads/
mkdir -p iso newIso
sudo mount -o loop ./ubuntu-13.10-server-amd64.iso ./iso
sudo cp -r ./iso/* ./newIso/
sudo cp -r ./iso/.disk/ ./newIso/
sudo umount ./iso/
cd ~/Downloads/newIso/
- Lanzará 1 mensaje de error:
mount: block device /discworld/Downloads/ubuntu-13.10-server-amd64.iso is write-protected, mounting read-only
Imágenes de ejemplo sobre cómo se verá esto:
Ejecutando:
Resultado:
Agregar una opción de menú de arranque
Las opciones de menú para el instalador se almacenan isolinux/txt.cfg
y puede crear nuevas opciones entre default install
y label install
.
Esto creará una nueva opción llamada "Instalar servidor Ubuntu personalizado" y agregará un archivo kickstart (el archivo kickstart se usa para modificar las opciones; se explica a continuación):
label myownoption
menu label ^Install Custom Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-custom.seed initrd=/install/initrd.gz quiet ks=cdrom:/preseed/ks-custom.cfg --
myownoption
es solo una etiqueta que puede usar para identificar su opción.
- "Instalar el servidor Ubuntu personalizado" es el texto que aparecerá en el menú de arranque.
- Si desea que su opción de menú sea la predeterminada, solo necesita cambiarla
default install
a default myownoption
.
Ejemplo:
y editando el archivo (usé nano pero si está disponible use gedit, vim u otro editor). Aquí está mi adición a este archivo donde utilicé "lamperver" como etiqueta y mi semilla también se llamará "lamperver".
Kickstart (configuración gráfica de un archivo de configuración)
El sistema operativo Red Hat Enterprise Linux utiliza el método de instalación Red Hat Kickstart principalmente (pero no exclusivamente) para realizar automáticamente la instalación y configuración desatendida del sistema operativo.
Documentación sobre preseeding / kickstart para Ubuntu . Ubuntu tiene soporte limitado para kickstart (y preseeding); Una de las cosas que faltan es una interfaz gráfica para la preselección. Kickstart hace tener opciones para esto (ver las imágenes) pero éstos no parecen funcionar en Ubuntu. Sin embargo, puede hacerlo manualmente (consulte Presentación a continuación).
Instalación y arranque kickstart:
sudo apt-get install system-config-kickstart
ksconfig
** ADVERTENCIA **
kickstart tiene errores en Ubuntu 13.10 y al iniciarlo, se equivoca. Aquí hay una solución . Coloque el parche en el comentario en un archivo de texto, guárdelo (lo llamé "parche") y confírmelo:
Después de eso ksconfig
funcionó e iniciará un editor de configuración que le permite manipular muchas opciones.
Consulte Red Hat Linux 7.2: la Guía oficial de personalización de Red Hat Linux para obtener una descripción de todas las opciones que puede configurar.
Una vez que haya terminado, guarde los cambios en un ks.cfg
archivo y cópielo a la ISO que estamos cambiando:
sudo cp ks.cfg ~/Downloads/newIso/preseed/ks-custom.cfg
- Si cambia algo aquí, el instalador SALTARÁ pidiendo esa información si se considera válida. Si no cambió una opción, el instalador aún le pedirá que responda.
- También puede descargar archivos kickstart y guardarlos como
ks-custom.cfg
en ~/Downloads/newIso/preseed/
.
Ejemplo donde inserté mis credenciales. Lo empecé con sudo ksconfig
desde la línea de comandos.
Y guardarlo en el proyecto:
Presentación (configuración manual de un archivo de configuración)
Presentar proporciona una manera de establecer respuestas a las preguntas formuladas durante el proceso de instalación, sin tener que ingresar manualmente las respuestas mientras se ejecuta la instalación. Esto hace posible automatizar completamente la mayoría de los tipos de instalación e incluso ofrece algunas características que no están disponibles durante las instalaciones normales.
Copie los valores predeterminados para la instalación normal en su propia etiqueta:
sudo cp newIso/preseed/ubuntu-server.seed newIso/preseed/ubuntu-myownoption.seed
- cambia el
myownoption
a lo que usaste.
Ahora para cambiar la configuración. Usando debconf-get-selections
desde el debconf-utils
puede investigar qué parámetros puede usar con un software específico.
Ejemplo configurando esto:
Y agregando lamp-server para ser instalado con taskel:
Si desea agregar paquetes "openssh" y "build-essential" puede incluir esto en el archivo semilla:
d-i pkgsel/include string openssh-server build-essential
Un ejemplo para openssh:
debconf-get-selections | grep openssh
openssh-server ssh/vulnerable_host_keys note
openssh-server ssh/use_old_init_script boolean true
openssh-server ssh/encrypted_host_key_but_no_keygen note
openssh-server ssh/disable_cr_auth boolean false
Puede agregar estas opciones a custom-iso/preseed/ubuntu-myownoption.seed
.
- Explicación / ejemplos usando la configuración de debconf .
- Un ejemplo de archivo preseleccionado
- Ejemplos relacionados con: localización, configuración de red, consola de red, reloj y hora, particionamiento
Al final del archivo preestablecido, puede agregar paquetes (ejemplos aleatorios) como este:
% paquetes openssh-server mysql-server apache2
Instalación fuera de línea
En caso de que agregue paquetes y estos NO estén en la ISO, el instalador los descargará del repositorio. Si no tiene una conexión a Internet activa, esto será problemático, por lo que deberá agregar todos esos paquetes (y dependencias) a su proyecto y grabarlos en un DVD. Afortunadamente, el ISO normal del servidor tiene mucho espacio, pero tenga cuidado: los CD y / o DVD tienen un tamaño limitado.
Descargue todos los paquetes DEB que necesite y guárdelos ~/Downloads/
. Estos 2 directorios son necesarios en el nuevo ISO:
mkdir -p ~/Downloads/newIso/dists/stable/extras/binary-i386
mkdir -p ~/Downloads/newIso/pool/extras/
sudo cp ~/Downloads/*.deb newIso/pool/extras/
Y esto actualizará nuestro proyecto con los nuevos paquetes:
cd ~/Downloads/newIso
sudo apt-ftparchive packages ./pool/extras/ > dists/stable/extras/binary-i386/Packages
sudo gzip -c ./dists/stable/extras/binary-i386/Packages | tee ./dists/stable/extras/binary-i386/Packages.gz > /dev/null
cd ~/Downloads/
Crea el ISO
cd ~/Downloads/
sudo md5sum `find ! -name “md5sum.txt” ! -path “./isolinux/*” -follow -type f` > md5sum.txt
sudo mkisofs -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c isolinux/isolinux.cat -o ./ubuntu-13.10-myowninstall-amd64.iso -joliet-long newIso/
- la segunda línea crea una nueva suma de verificación y solo es necesaria al agregar paquetes.
- el tercero crea un ISO de su proyecto que puede grabar en un DVD.
Resultado:
Y ahora puede probarlo en realidad quemándolo e instalándolo. Aconsejaría usarlo como máquina virtual, ya que será más rápido para probar el ISO creado inicialmente (de lo contrario, continuará reiniciando).
Y después de instalar VirtualBox me sale el siguiente menú:
Caza de insectos
Se encontró con 1 problemas durante la instalación: no se seleccionó el predeterminado.
Shadin De su archivo semilla en comentario
### Package Selection
tasksel tasksel/first multiselect Custom-Ubuntu-Server
d-i pkgsel/include string openssh-server build-essential
%packages openssh-server postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3
probablemente necesita ser así:
### Package Selection
tasksel tasksel/first multiselect lamp-server
d-i pkgsel/include string openssh-server build-essential postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3
Deshágase de la línea de tareas de usted no desea un servidor LAMP (es decir, Apache, Mysql, Php)