A continuación se muestra un ejemplo de un fichero de preconfiguración funcional que puede utilizar para realizar una instalación automatizada. Su uso se explica en Sección 4.4, “Instalación automática”. Tal vez quiera descomentar alguna de las líneas antes de usar el fichero.
Para poder presentar este ejemplo correctamente en el manual hemos tenido que dividir algunas líneas. Esto se indica con el uso del carácter de continuación de línea “\” y un nivel de indentación adicional en la línea siguiente. En un fichero de preconfiguración real estas líneas deben colocarse en una sola línea. Si no lo hace así, la preconfiguración fallará con resultados impredecibles.
#### Modificar syslinux.cfg. # Edite el fichero syslinux.cfg (o similar) y añada parámetros al final de # la línea «append» del núcleo. # # Por lo menos querrá añadir un parámetro indicando al instalador desde donde # obtener el fichero de preconfiguración. # Si está instalando desde un medio USB, use el siguiente parámetro, y coloque # el fichero de preconfiguración en el directorio raíz del dispositivo USB. # preseed/file=/hd-media/preseed # En cambio, si está arrancando desde red, use este: # preseed/url=http://maquina/ruta/hacia/fichero/preseed # Si está remasterizando un CD, podría usar este otro: # preseed/file=/cdrom/preseed # Asegúrese de copiar este fichero a la ubicación que ha especificado. # # Mientras está realizando esto, tal vez quiera cambiar allí a # debconf/priority=critical, para obviar la mayoría de preguntas incluso # si la siguiente preconfiguración excluye alguna. # También podría definir el tiempo de espera a 1 en syslinux.cfg para # evitar la necesidad de presionar «Enter» para arrancar el instalador. # # La selección de idioma, país y teclado no puede ser preconfigurada desde # un fichero, debido a que éstas se configuran antes de que se cargue # el fichero de preconfiguración. # En su lugar, para obviar estas preguntas, pase algunos parámetros más # al núcleo: # # languagechooser/language-name=Spanish # countrychooser/shortlist=ES # console-keymaps-at/keymap=es # # Note que el núcleo acepta un máximo de 8 opciones de línea de órdenes # y 8 opciones de entorno (incluyendo cualquier opción añadida en forma # predeterminada por el instalador). Si éstas se exceden, los núcleos # 2.4 eliminarán cualquier opción de exceso y los 2.6 darán un mensaje # de «panic». # Algunas opciones predeterminadas, como «vga=normal» y «devfs=mount», # podrían ser eliminadas sin problemas para la mayoría de instalaciones, # lo cual le permitiría añadir más opciones para preconfiguración. #### Órdenes del intérprete de comandos. # La preconfiguración de d-i es inherentemente insegura. Ninguna parte del # instalador verifica intentos de desbordamiento de buffer u otras # formas de vulneración de los valores de un fichero de preconfiguración # como éste. ¡Use solamente ficheros de preconfiguración de fuentes # confiables! Para poder gestionar esto, y porque generalmente es útil, # a continuación ofrecemos una forma de ejecutar cualquier orden de shell # que desee dentro del instalador, de forma automática. # La primera orden a ejecutar tan pronto como sea posible, después de que # se lea el fichero de preconfiguración: #d-i preseed/early_command string \ # wget http://url/to/my.udeb -O /tmp/my.udeb ; udpkg -i /tmp/my.udeb # Ésta orden se ejecuta justamente antes de que finalize la instalación, # pero cuando todavía existe un directorio /target usable: #d-i preseed/late_command string \ # for deb in /hd-media/*.deb; do cp $deb /target/tmp; \ # chroot /target dpkg -i /tmp/$(basename $deb); done # Ésta orden se ejecuta tan pronto como se inicie «base-config»: #base-config base-config/early_command string echo hola mama # Ésta orden se ejecuta después de que finalice «base-config», y # antes de presentar el indicador «login:». Esta es un buen método de # instalar el conjunto de paquetes que desea, o de modificar la # configuración del sistema: #base-config base-config/late_command string \ # apt-get install zsh; chsh -s /bin/zsh #### Configuración de red. # Obviamente, ¡esto no funcionará si está cargando su fichero de # preconfiguración desde la red!. Pero es fantástico si está arrancando # desde CD o memoria USB. También puede pasar parámetros de configuración # de red en los parámetros del núcleo si está cargando el fichero de # preconfiguración desde la red. # «netcfg» elegirá una interfaz que en lo posible tenga conexión. Esto # hace que se evite mostrar una lista si existe más de una interfaz. d-i netcfg/choose_interface select auto # En caso prefiera configurar la red manualmente, puede hacer lo siguiente: #d-i netcfg/disable_dhcp boolean true #d-i netcfg/get_nameservers string 192.168.1.1 #d-i netcfg/get_ipaddress string 192.168.1.42 #d-i netcfg/get_netmask string 255.255.255.0 #d-i netcfg/get_gateway string 192.168.1.1 #d-i netcfg/confirm_static boolean true # Note que cualquier nombre de máquina o dominio asignado desde dhcp # tomará precedencia sobre los valores definidos aquí. Sin embargo, # el hacerlo evita que se muestren las preguntas incluso si los # valores vienen desde dhcp. d-i netcfg/get_hostname string unassigned-hostname d-i netcfg/get_domain string unassigned-domain # Deshabilita el molesto cuadro de diálogo de clave WEP d-i netcfg/wireless_wep string # El nombre de máquina dhcp que algunos ISPs usan como un tipo de claves. #d-i netcfg/dhcp_hostname string radish #### Configuración de servidor espejo d-i mirror/country string enter information manually d-i mirror/http/hostname string http.es.debian.org d-i mirror/http/directory string /debian d-i mirror/suite string testing d-i mirror/http/proxy string ### Particionado. # Si el sistema tiene espacio libre puede elegir particionar solamente # este espacio. #d-i partman-auto/init_automatically_partition \ # select Use the largest continuous free space # # Alternativamente, puede especificar un disco a particionar. El nombre del # dispositivo se puede ingresar tanto en formato tradicional o en devfs. # Por ejemplo, para usar el primer disco dvfs: d-i partman-auto/disk string /dev/discs/disc0/disc # Puede elegir cualquiera de las recetas de particionado predefinidas: d-i partman-auto/choose_recipe select \ All files in one partition (recommended for new users) #d-i partman-auto/choose_recipe select Desktop machine #d-i partman-auto/choose_recipe select Multi-user workstation # O indique su propia receta # El formato de las recetas está documentado en el fichero # devel/partman-auto-recipe.txt. # Si tiene una forma de colocar el fichero de receta dentro del entorno # del d-i, simplemente puede direccionarlo a éste. #d-i partman-auto/expert_recipe_file string /hd-media/recipe # Si no, puede colocar la receta en una línea. Este ejemplo crea una # partición /boot pequeña, una partición de intercambio y usa el resto # del espacio para la partición raíz: #d-i partman-auto/expert_recipe string boot-root :: \ # 20 50 100 ext3 $primary{ } $bootable{ } method{ format } format{ } \ # use_filesystem{ } filesystem{ ext3 } mountpoint{ /boot } . \ # 500 10000 1000000000 ext3 method{ format } format{ } \ # use_filesystem{ } filesystem{ ext3 } mountpoint{ / } . \ # 64 512 300% linux-swap method{ swap } format{ } . # Para que sirva de referencia, aquí puede ver la misma recenta # en un formato más legible: # boot-root :: # 40 50 100 ext3 # $primary{ } $bootable{ } # method{ format } format{ } # use_filesystem{ } filesystem{ ext3 } # mountpoint{ /boot } # . # 500 10000 1000000000 ext3 # method{ format } format{ } # use_filesystem{ } filesystem{ ext3 } # mountpoint{ / } # . # 64 512 300% linux-swap # method{ swap } format{ } # . # Lo siguiente hace que «partman» particione automáticamente sin confirmación. 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 #### Instalación del gestor de arranque. # GRUB es el gestor de arranque predeterminado (para x86). Si quiere instalar # lilo en su lugar, descomente esto: #d-i grub-installer/skip boolean true # Ésta es una configuración adecuada y segura, hace que grub se instale # automáticamente en el MBR si no se detecta otro sistema operativo en # la máquina. d-i grub-installer/only_debian boolean true # Lo siguiente hace que el «grub-installer» instale en el MBR si también # se encuentra otro sistema operativo, lo cual es menos seguro puesto que # podría dejar sin posibilidad de arrancar al otro sistema operativo. d-i grub-installer/with_other_os boolean true # Alternativamente, si desea instalar en una ubicación distinta al MBR, # descomente y edite estas líneas: #d-i grub-installer/bootdev string (hd0,0) #d-i grub-installer/only-debian boolean false #d-i grub-installer/with_other_os boolean false ##### Final de la primera fase de instalación. # Obviar el mensaje final sobre la finalización de la instalación. d-i prebaseconfig/reboot_in_progress note ##### base-config de preconfiguración. # Obviar el mensaje de bienvenida. base-config base-config/intro note # Obviar el mensaje final. base-config base-config/login note # Si ha instalado un gestor de ventanas, pero no desea iniciarlo # inmediatamente después que finalice «base-config». #base-config base-config/start-display-manager boolean false ###### Configuración de zona horaria. # Controla si el reloj de hardware está configurado a GMT o no. base-config tzconfig/gmt boolean true # Si indica al instalador que se encuentra en los Estados Unidos, entonces # puede definir la zona horaria usando esta variable. # (Las opciones son: Eastern, Central, Mountain, Pacific, Alaska, Hawaii, # Aleutian, Arizona East-Indiana, Indiana-Starke, Michigan, Samoa, other) base-config tzconfig/choose_country_zone/US select Eastern # Si indica que se encuentra en Canada. # (Las opciones son: Newfoundland, Atlantic, Eastern, Central, # East-Saskatchewan, Saskatchewan, Mountain, Pacific, Yukon, other) base-config tzconfig/choose_country_zone/CA select Eastern # Si indica que se encuentra en Brasil. (Las opciones son: East, West, Acre, # DeNoronha, other) base-config tzconfig/choose_country_zone/BR select East # Muchos países solamente tienen una zona horaria. Si indica al instalador # que se encuentra en una de estas, puede elegir su zona horaria estándar # a través de esta pregunta. base-config tzconfig/choose_country_zone_single boolean true # Esta pregunta se formula como un método de soporte para otros países # distintos a los mencionados antes, y que tienen más de una zona horaria. # Puede preconfigurar una de las zonas horarias o «other». #base-config tzconfig/choose_country_zone_multiple select ###### Configuración de cuenta. # Para preconfigurar la clave de superusuario, debe colocarla en # texto legible en este fichero. Esta no es una buena idea, ¡usela con # precaución! #passwd passwd/root-password password r00tme #passwd passwd/root-password-again password r00tme # Si desea saltar la creación de una cuenta de usuario común. #passwd passwd/make-user boolean false # Alternativamente, puede preconfigurar el nombre del usuario. Note que # el usuario asignado será derivado de éste; actualmente no puede ser # modificado. El usuario asignado será (en minúsculas) el primer nombre # del nombre completo. #passwd passwd/user-fullname string Usuario de Debian #passdw passwd/username string debian # Y su clave, ¡pero uselo con precaución! #passwd passwd/user-password password insegura #passwd passwd/user-password-again password insegura ###### Configuración de Apt. # Esta pregunta controla que fuente usará la segunda fase de la # instalación para obtener paquetes. Las opciones son cdrom, http, ftp, # filesystem y editar la lista en forma manual. base-config apt-setup/uri_type select http # Si elige ftp o http, se le preguntará el país y un servidor espejo base-config apt-setup/country select enter information manually base-config apt-setup/hostname string http.es.debian.org base-config apt-setup/directory string /debian # Para luego de elegir un servidor espejo. base-config apt-setup/another boolean false # Puede elegir instalar software desde «non-free» y «contrib». #base-config apt-setup/non-free boolean true #base-config apt-setup/contrib boolean true # Habilitar actualizaciones de seguridad. base-config apt-setup/security-updates boolean true ###### Selección de paquetes. # Puede elegir instalar cualquier combinación de paquetes que esté # disponible. Las tareas disponibles al momento de escribir este fichero # incluyen: Entorno de escritorio, Servidor web, Servidor de impresión, # Servidor DNS, Servidor de ficheros, Servidor de correos, Base de datos, # Selección manual de paquetes. La última de éstas ejecutará aptitude. # También puede elegir el no instalar tareas y forzar la instalación de # un conjunto de paquetes de alguna otra manera. tasksel tasksel/first multiselect Desktop environment #tasksel tasksel/first multiselect Web server, Mail server, DNS server ###### Configuración de agente de correo. # Durante una instalación común, exim solamente formula dos preguntas. # Ésta es una forma de evitar incluso éstas. Es posible crear una # preconfiguración más complicada. exim4-config exim4/dc_eximconfig_configtype \ select no configuration at this time # Es una buena idea configurar esto a la cuenta que ha elegido crear. # El dejar el valor en blanco va a significar que el correo de postmaster # se entregue en «/var/mail/mail». exim4-config exim4/dc_postmaster string ###### Configuración de X. # La preconfiguración de X en Debian es posible, pero probablemente # necesitará saber algunos detalles sobre el hardware de vídeo de la # máquina, puesto que el programa de configuración no efectúa una # configuración totalmente automática de todo. # X puede detectar el controlador adecuado para algunas tarjetas, pero # si está preconfigurando, puede modificar el que éste elija. Incluso así, # vesa funcionará para la mayoría de hardware. #xserver-xfree86 xserver-xfree86/config/device/driver select vesa # Un problema con la autodetección del ratón es que si falla, X # reintentará vez tras vez. De modo que si se efectúa la preconfiguración, # existe la posibilidad de un bucle infinito si no se autodetecta el ratón. #xserver-xfree86 xserver-xfree86/autodetect_mouse boolean true # Se recomienda autodetección de monitor. xserver-xfree86 xserver-xfree86/autodetect_monitor boolean true # Descomente si tiene una pantalla LCD. #xserver-xfree86 xserver-xfree86/config/monitor/lcd boolean true # X tiene tres métodos de configuración para el monitor. Esta es la forma # de preconfigurar el método «medio», que siempre esta disponible. El # método «simple» podría no estar disponible y la «avanzada» formula # muchas preguntas. xserver-xfree86 xserver-xfree86/config/monitor/selection-method \ select medium xserver-xfree86 xserver-xfree86/config/monitor/mode-list \ select 1024x768 @ 60 Hz ###### Todo lo restante. # Dependiendo del software que elija instalar, o si las cosas no salen # bien durante el proceso de instalación, es posible que se formulen # otra preguntas. También puede preconfigurar éstas, por supuesto. # Para obtener una lista de cada posible pregunta que podría ser # formulada durante una instalación, efectúe una instalación y # ejecute estas órdenes: # debconf-get-selections --installer > fichero # debconf-get-selections >> fichero # Si gusta, puede incluir otros ficheros de preconfiguración en éste. # Cualquier configuración en estos ficheros modificará los valores # preexistentes de este fichero. Se puede listar más de un fichero, # separado por espacios, todos éstos serán cargados. Los ficheros # incluidos también pueden tener directivas propias de preconfiguración o # inclusión. Note que si los nombres de fichero son relativos, éstos son # tomados del mismo directorio donde se ubica el fichero que los incluye. #d-i preseed/include string x.cfg # Esto es todavía más flexible, se ejecuta una orden de shell y si ésta # presenta como resultado los nombres de los ficheros de preconfiguración, # éstos se incluyen. Por ejemplo, para alternar configuraciones basadas en # un dispositivo de almacenamiento usb particular (en este caso, un # lector de tarjetas integrado): #d-i preseed/include_command string \ # if $(grep -q "GUID: 0aec3050aec305000001a003" /proc/scsi/usb-storage-*/*); \ # then echo kraken.cfg; else echo otherusb.cfg; fi |