arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
193 lines (129 loc) • 9.65 kB
Markdown
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.