UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

193 lines (129 loc) 9.65 kB
Artículos relacionados * [Diskless System](/index.php/Diskless_System "Diskless System") De [Wikipedia:Preboot Execution Environment](https://en.wikipedia.org/wiki/Preboot_Execution_Environment "wikipedia:Preboot Execution Environment"): *Preboot eXecution Environment (PXE) (Entorno de ejecución de prearranque), es un entorno para arrancar e instalar el sistema operativo en ordenadores a través de una red, de manera independiente de los dispositivos de almacenamiento de datos disponibles (como discos duros) o de los sistemas operativos instalados.* En esta guía, PXE se usa para arrancar los medios de instalación con una Option Rom apropiada que soporte PXE como objetivo. ## Contents * [1 Preparación](#Preparaci.C3.B3n) * [2 Instalación del servidor](#Instalaci.C3.B3n_del_servidor) * [2.1 Red](#Red) * [2.2 DHCP + TFTP](#DHCP_.2B_TFTP) * [2.3 HTTP](#HTTP) * [3 Instalación](#Instalaci.C3.B3n) * [3.1 Arranque](#Arranque) * [3.2 Tras el arranque](#Tras_el_arranque) * [4 Métodos Alternativos](#M.C3.A9todos_Alternativos) * [4.1 NFS](#NFS) * [4.2 NBD](#NBD) * [4.3 Memoria baja](#Memoria_baja) ## Preparación Descarga el medio de instalación más reciente de [aquí](https://www.archlinux.org/download/). A continuación monta la imagen: ``` # mkdir -p /mnt/archiso # mount -o loop,ro archlinux-2013.02.01-dual.iso /mnt/archiso ``` ## Instalación del servidor Necesitarás instalar un servidor, TFTP, y HTTP para configurar la red, cargar pxelinux/kernel/initramfs, y finalmente cargar el sistema de archivos de la raíz (respectivamente). ### Red Activa tu tarjeta de red ethernet, y asignale una dirección apropiada. ``` # ip link set eth0 up # ip addr add 192.168.0.1/24 dev eth0 ``` ### DHCP + TFTP Necesitarás servidores DHCP y TFTP para configurar la red en el directorio de instalación y para facilitar la transferencia de archivos entre PXE servidor y cliente; dnsmasq hace las cos cosas, y es extremadamente fácil de instalar. [Instale](/index.php/Help:Reading_(Espa%C3%B1ol)#Instalaci.C3.B3n_de_paquetes "Help:Reading (Español)") [dnsmasq](https://www.archlinux.org/packages/?name=dnsmasq) y configure de la siguiente manera: `# vim /etc/dnsmasq.conf` ``` port=0 interface=eth0 bind-interfaces dhcp-range=192.168.0.50,192.168.0.150,12h dhcp-boot=/arch/boot/syslinux/pxelinux.0 dhcp-option-force=209,boot/syslinux/archiso.cfg dhcp-option-force=210,/arch/ enable-tftp tftp-root=/mnt/archiso ``` Inicia [dnsmasq](https://www.archlinux.org/packages/?name=dnsmasq): `# systemctl start dnsmasq.service` ### HTTP Gracias a recientes cambios en [archiso](/index.php/Archiso_(Espa%C3%B1ol) "Archiso (Español)"), ahora es posible arrancar desde HTTP (archiso_pxe_http initcpio hook) o NFS (archiso_pxe_nfs initcpio hook); de entre todas las posibilidades, darkhttpd es de lejos el mas sencillo de instalar (y el más ligero). Primero, [instale](/index.php/Help:Reading_(Espa%C3%B1ol)#Instalaci.C3.B3n_de_paquetes "Help:Reading (Español)") [darkhttpd](https://www.archlinux.org/packages/?name=darkhttpd). Luego inicia [darkhttpd](https://www.archlinux.org/packages/?name=darkhttpd) usando /mnt/archiso como raíz de los archivos: `# darkhttpd /mnt/archiso` ``` darkhttpd/1.8, copyright (c) 2003-2011 Emil Mikulic. listening on: [http://0.0.0.0:80/](http://0.0.0.0:80/) ``` ## Instalación Para esta parte, necesitarás averiguar como decirle al cliente que realice un arranque con PXE; en la esquina de la pantalla junto con los mensajes normales, normalmente habrá alguna pista de que tecla apretar para intentar arrancar primero con PXE. En un IBM x3650 *F12* sale un menú de arranque, la primera opción del cual es *Network* ("Red"); en un Dell PE 1950/2950 apretar *F12* inicia el arranque con PXE directamente. ### Arranque Leer [journald](/index.php/Systemd_(Espa%C3%B1ol)#Journal "Systemd (Español)") en el servidor PXE debería proveernos de cierta información sobre lo que pasa durante las primeras fases del proceso de arranque de PXE: `# journalctl -u dnsmasq -f` ``` dnsmasq-dhcp[2544]: DHCPDISCOVER(eth1) 00:1a:64:6a:a2:4d dnsmasq-dhcp[2544]: DHCPOFFER(eth1) 192.168.0.110 00:1a:64:6a:a2:4d dnsmasq-dhcp[2544]: DHCPREQUEST(eth1) 192.168.0.110 00:1a:64:6a:a2:4d dnsmasq-dhcp[2544]: DHCPACK(eth1) 192.168.0.110 00:1a:64:6a:a2:4d dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/pxelinux.0 to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/archiso.cfg to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/whichsys.c32 to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/archiso_pxe_choose.cfg to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/ifcpu64.c32 to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/archiso_pxe_both_inc.cfg to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/archiso_head.cfg to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/archiso_pxe32.cfg to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/archiso_pxe64.cfg to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/archiso_tail.cfg to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/vesamenu.c32 to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/syslinux/splash.png to 192.168.0.110 ``` Tras cargar `pxelinux.0` y `archiso.cfg` vía TFTP, se presentará (ojalá) un menú de arranque [syslinux](/index.php/Syslinux_(Espa%C3%B1ol) "Syslinux (Español)") con varias opciones, dos de la cuales nos serán especialmente útiles. Selecciona `Boot Arch Linux (x86_64) (HTTP)` o `Boot Arch Linux (i686) (HTTP)` dependiendo de la arquitectura de tu CPU. Luego el kernel y initramfs (de acuerdo con la arquitectura seleccionada) serán transferidos vía TFTP: ``` dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/x86_64/vmlinuz to 192.168.0.110 dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/x86_64/archiso.img to 192.168.0.110 ``` Si todo va bien, tras esto deberías ver actividad en darkhttpd proviniente del objetivo PXE; en este momento el kernel debería estar cargado en el objetivo PXE, e iniciado: ``` 1348347586 192.168.0.110 "GET /arch/aitab" 200 678 "" "curl/7.27.0" 1348347587 192.168.0.110 "GET /arch/x86_64/root-image.fs.sfs" 200 107860206 "" "curl/7.27.0" 1348347588 192.168.0.110 "GET /arch/x86_64/usr-lib-modules.fs.sfs" 200 36819181 "" "curl/7.27.0" 1348347588 192.168.0.110 "GET /arch/any/usr-share.fs.sfs" 200 63693037 "" "curl/7.27.0" ``` Tras la descarga de la raíz del sistema vía HTTP, finalmente acabarás en un terminal zsh como superusuario, con un fantástico [grml config](https://www.archlinux.org/packages/extra/any/grml-zsh-config/). ### Tras el arranque A no ser que quieras que todo el tráfico pase por tu servidor PXE (que igualmente no funcionará a no ser que [lo configures correctamente](/index.php/Simple_stateful_firewall#Setting_up_a_NAT_gateway "Simple stateful firewall")), te interesa detener [dnsmasq](https://www.archlinux.org/packages/?name=dnsmasq) y definir un nuevo asentamiento en el objetivo de la instalación, de acuerdo con el diseño de tu red. `# systemctl stop dnsmasq.service` También puedes detener [darkhttpd](https://www.archlinux.org/packages/?name=darkhttpd); el objetivo ya ha descargado el sistema de archivos base, así que ya no es necesario. Mientras lo haces, también puedes desmontar la imagen de desinstalación: `# umount /mnt/archiso` Ahora ya puedes seguir la [guía oficial de instalación](/index.php/Installation_guide_(Espa%C3%B1ol) "Installation guide (Español)"). ## Métodos Alternativos Por estar implicado con el menú syslinux, hay varias alternativas más: ### NFS Necesitarás instalar un [servidor NFS](/index.php/NFS "NFS") exportando la raíz a la raíz de tu medio de instalación montado —sería `/mnt/archiso` si seguiste las [primeras secciones](#Preparaci.C3.B3n) de esta guía—. Después de configurar el servidor, agregue la siguiente línea a su archivo `/etc/exports`: `/etc/exports` `/mnt/archiso 192.168.0.0/24(ro,no_subtree_check)` Si el servidor ya estaba en marcha, reexporte los sistemas de archivos con `exportfs -r -a -v`. La configuración por defecto del instalador espera encontrar el servidor NFS en `/run/archiso/bootmnt`, por lo que tendrá que modificar las opciones de arranque. Para ello, presione la tecla Tab sobre el menú de arranque apropiado para elegir y editar la opción `archiso_nfs_srv` que corresponda: `archiso_nfs_srv=${pxeserver}:/mnt/archiso` De otro modo, puede utilizar `/run/archiso/bootmnt` para completar el proceso. Una vez cargado el kernel, la imgen bootstrap de Arch copiará el sistema de archivos root a través de NFS para el arranque del equipo anfitrión. Una vez que esto se haya completado, tendrá un sistema en ejecución. ### NBD Instala [nbd](https://www.archlinux.org/packages/?name=nbd) y configúralo: `# vim /etc/nbd-server/config` ``` [generic] [archiso] readonly = true exportname = /srv/archlinux-2013.02.01-dual.iso ``` ### Memoria baja Puedes usar la opción `copytoram` de [initramfs](/index.php/Mkinitcpio_(Espa%C3%B1ol) "Mkinitcpio (Español)") para controlar si la raíz del sitema de archivos debe copiarse a la ram integramente en el inicio del arranque. Es muy recomendado dejar esta opción, y solo desactivarla si es realmente necesario (sistemas con menos de ~256MB de memoria RAM). Añade `copytoram=n` a la línea del kernel si quieres hacer esto.