[Git][venenux/venenux-docus][master] recetas PXE boot using alpine or debian in spanish

8 views
Skip to first unread message

Герхард PICCORO Lenz McKAY (@mckaygerhard)

unread,
Aug 21, 2023, 12:11:49 PM8/21/23
to venenux...@googlegroups.com


Герхард PICCORO Lenz McKAY pushed to branch master at venenux / venenux-docus


Commits:
c288629d by Герхард PICCORO Lenz McKAY at 2023-08-21T16:11:36+00:00
recetas PXE boot using alpine or debian in spanish
- - - - -


1 changed file:

- + docs/recetas-network-PXE-boot.md


Changes:

=====================================
docs/recetas-network-PXE-boot.md
=====================================
@@ -0,0 +1,878 @@
+Servicio PXE: Multi-OS PXE-booting
+==================================
+
+Si está familiarizado con PXE, querrá omitir las explicaciones, pero
+puede estar interesado en el "Por qué".
+
+Después de una actualización, la forma antigua de instalar servidores
+como lo hacemos en el trabajo quedo desactualizada, hoy dia todo es redes,
+y hoy dia solo los mas mediocres usan algo que no sea Linux para servicios.
+
+El unico contratiempo: la instalación lleva bastante tiempo, esto por la
+fuerte influencia windosera, los linux instalan cosas que muchas veces
+no se usan, la politica es "podria necesitarse, mejor que no falle por faltar".
+
+La idea de este articulo es minimizar un servicio PXE, tal como se
+describe en el parrafo anterior, tanto tiempo y cosas para un servicio
+tan minimo y simple, no es lo que se llamaria eficiente. Por ello este
+documento realiza el mismo proceso tanto en Alpine como en Debian, no
+no se usara ninguna basura como Winbuntu, instalaciones infladas para
+cositas tan simples es ser ilogico e ineficiente.
+
+- [Introduccion al PXE](#introduccion-al-pxe)
+ - [Activar PXE](#activar-pxe)
+ - [Proceso PXE](#proceso-pxe)
+ - [Elementos PXE](#elementos-pxe)
+- [Servicio PXE](#servicio-pxe)
+ - [Requisitos](#requisitos)
+ - [Requisitos de hardware](#requisitos-de-hardware)
+ - [Requisitos de software](#requisitos-de-software)
+ - [preparacion](#preparacion)
+ - [Maquina 1 servidor PXE y archivos](#maquina-1-servidor-pxe-y-archivos)
+ - [Maquina 2 objetivo instalar con PXE](#maquina-2-objetivo-instalar-con-pxe)
+ - [Conexiones](#conexiones)
+ - [Configuracion maquina 1](#configuracion-maquina-1)
+ - [Servidor maquina 1 PXE (USANDO SERVIDOR ALPINE)](#servidor-maquina-1-pxe--usando-servidor-alpine--
+ - [Servidor maquina 1 PXE (USANDO SERVIDOR DEBIAN)](#servidor-maquina-1-pxe--usando-servidor-debian--
+ - [Configuracion maquina 2](#configuracion-maquina-2)
+ - [Proceso de arranque](#proceso-de-arranque)
+ - [Arranque PXE Urmet Daruma MT1000](#arranque-pxe-urme-daruma-mt1000)
+ - [Arranque PXE DELL T110-II](#arranque-pxe-dell-t110-ii)
+- [Vea tambien](#vea-tambien)
+
+# Introduccion al PXE
+
+Si bien ha habido métodos anteriores para hacer que una máquina arranque
+a través de la red, PXE (Preboot eXecution Environment) es en lo que
+debe confiar si necesita hacerlo hoy. Es una especificación ampliamente
+implementada (de hecho, en todas partes y dispositivos que computen y tengan red)
+y las posibilidades de que tenga problemas con ella son muy bajas.
+
+### Activar PXE
+
+Comparado al complejo EFI o BIOS de su computadora, el arranque PXE está
+deshabilitado dado su proceso solo verlo asusta. Cómo hacer que una máquina
+arranque a través de la red depende de su EFI/BIOS asi que debe averiguarlo
+por su cuenta, y no es parte de este documento, esto se habilita en el
+BIOS/UEFI de cada dispositivo computador y depende del modelo y fabricante.
+
+### Proceso PXE
+
+El entorno PXE sondeará la red en busca de la información que necesita,
+necesita cargar un sistema operativo "desde la red", lo que significa
+desde otra máquina. Para poder hablar con otros hosts en la red, necesita
+formar parte de dicha red. Para esto, necesita conocer los parámetros
+de la red y requiere una dirección IP única y utilizable para sí mismo.
+Esta IP la maquina la optiene con DHCP (Dynamic Host Configuration Protocol),
+o puede ser configurada desde el mismo EFI/BIOS al arrancar con PXE.
+
+### Elementos PXE
+
+El primer componente que carga es el NBP (Network Bootstrap Program) que
+es la pieza de software, equivalente al estor de arranque pero desde la red.
+
+La comunicacion es usando transferencias TFTP (Trivial File Transfer Protocol),
+muy similar a FTP (File Transfer Protocol) pero mucho, mucho más primitivo y simple.
+
+Esto (requiere que) pide/tenga DHCP (Dinamic Host Configuration Protocol) ya que en caso
+contrario complicaria la configuracin y proceso ademas de que no todos los UEFI/BIOS
+permiten configurar el modo de arranque NBP (Network Bootstrap Program) y
+no todos los dispositivos de red o computadores permiten arranque por ip estatica.
+
+El NBP se ejecuta cuando se completa la transferencia del mismo. Luego descargará su
+archivo de configuración y luego actuará en consecuencia, lo más probable es
+que obtenga un kernel del sistema operativo y archivos adicionales,
+y luego inicie el kernel del sistema operativo que se desea arrancar desde red para instalar.
+
+TFTP es lo que habla y usa el código de arranque PXE. Pero debido a su
+naturaleza muy simple, TFTP no es adecuado para transferencias de archivos
+más grandes. Por lo tanto, dichos archivos generalmente se cargan por
+otros medios una vez que el núcleo se ha iniciado y hay más opciones
+disponibles. A FreeBSD le gusta usar NFS, mientras que en Linux HTTP se
+usa a menudo para recibir un sistema de archivos o una imagen del medio
+de instalación.
+
+Lo siguiente son los elementos de software desplegados para el proceso:
+
+* NBP program: used to deploy a boot into the target computer
+* DHCP program: used to perform a way to find the NBP into the network
+* TFTP server: used to offers the NBP program after find by DHCP the server
+* WEB/NFS server: used to offers the rest of the files after boot the NBP program
+
+Lo siguiente entonces son los servicios protocolos de software usado en la red:
+
+* DHCP communication: used for IP management if not static routing
+* TFTP transport: used for initial file transfering of boot files
+* HTTP/NFS service: used for transfering post boot files and install files
+
+### Arquitecturas soportadas
+
+Esto depende de el booloader, aqui solo se abordara para arrancar
+maquinas basadas en Intel x86 ( i386, amd64 o x86-64 y ARM), pero
+estos son los codigos completos para implementar en el boot de `dnsmasd`
+solo hay que colocar el archivo necesario para que el sistema arranque:
+
+| Identificador | Architectura | dnsmasd |
+| ------------- | ------------ | ------- |
+| 0 | Intel i386 | x86PC |
+| 1 | NEC | PC98 |
+| 2 | EFI Itanium | Itanium |
+| 3 | DEC Alpha | Alpha |
+| 4 | Arc | x86 |
+| 5 | Intel Lean | Lean |
+| 6 | EFI IA32 | IA32 |
+| 7 | EFI BC | BC |
+| 8 | EFI Xscale | Xscale |
+| 9 | EFI x86-64 | x86-64 |
+
+# Servicio PXE
+
+Preparar un alpine, para brindar el servicio PXE, TFTP y HTTP para
+arrancar otras computadoras con dicho servicio.
+
+Esto sirve para brindar arranque de instalacion por red sin necesidad
+de ningun dispositivo externo, simplemente se pide instalar desde la red.
+
+## Requisitos
+
+Esto depende de la red exclusivamente, asi que ilustraremos los dos casos
+mas especificos de los casos mas generales.
+
+A continuacion los requisitos de hardware y despues los de software:
+
+#### Requisitos de hardware
+
+* red, cableada:
+ * red sin hub o router, sin dhcp
+ * cable punto a punto
+ * red con hub unicamente
+ * cables normales de red
+ * red router y dhcp
+ * cables normales de red
+ * red router y wifi
+ * el PXE cliente debe ser por cable
+ * maquinas modernas proveen PXE con wifi, pero UEFI basado
+* maquinas
+ * PC servico PXE, esta puede ir cableada o por wifi
+ * PC clientes instalar, no hay PXE wifi ya que es por UEFI
+
+Se requerira siempre al menos una red de dos elementos, uno
+de servicio y otro que sera el d cliente o la maquina a instalar.
+
+El servicio de PXE puede estar conectado por cable o wifi,
+mientras en las maquinas clientes a instalar la capacidad
+de arrancar PXE no se encontrara con adaptadores wifi de claves.
+
+En el caso de cable cruzado o punto a punto, no hay servicio
+dhcp, ya que la forma de conexcion es distinta, y las ip deben
+estar fijas. Sin embargo se puede ofrecer DHCP para la maquina
+del otro extremo como si fuera de una red normal.
+
+#### Requisitos de software
+
+* servidor (linux)
+ * dnsmasq (DNS, DHCP, TFTP)
+ * lighttpd/apache (HTTP)
+ * syslinux (PXE)
+* instaladores (linux)
+ * Para Alpine https://dl-cdn.alpinelinux.org/alpine/v`<version>`/releases/`<arch>`/alpine-netboot-`<version>`.`<minor>`-`<arch>`.tar.gz
+ * Para Debian http://archive.debian.org/debian-archive/debian/dists/`<codename>`/main/installer-`<arch>`/current/images/netboot/netboot.tar.gz
+ * Para Devuan https://pkgmaster.devuan.org/devuan/dists/`<codename>`/main/installer-`<arch>`/current/images/netboot/netboot.tar.gz
+* internet para los primeros archivos (router)
+
+Cabe destacar qe por ejemplo **todo equipo x86 mas antiguo de 2010 solo
+acepta i386 de 32bit** por ende la imagen para estos como el DARUMA URMET
+alpine es (si se usa 3.8.1): https://dl-cdn.alpinelinux.org/alpine/v3.11/releases/x86_64/alpine-netboot-3.11.1-x86.tar.gz
+debian es (si se usa 8.10): http://archive.debian.org/debian-archive/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz
+
+Asi mismo **todo equipo mas alla del año 2017 necesitara usar AMD64 y UEFI,
+los equipos entre 2017 y 2020 presentaran opcion para PXE dual con BIOS+UEFI**,
+pero los mas modernos mas alla del 2020 solo presentaran PXE con UEFI.
+
+Alpine comenzo el netboot en 3.8, pero desde 3.11 usa kernel lts por lo que
+los archivos de referencia cambian de `vanilla` a `lts`.
+Debian para las versiones viejas tiene un host separado de archive, por lo que
+si es para equipos viejos debe cambiar `ftp.de` por `archive`.
+
+Actualmente **para las actuales X86, ARM, AMD64, PPC, y S390 las distros
+que ofrecen netboot son alpine, debian, devuan** ubuntu y las rpm ofrecen limitadas opciones.
+
+Todas estas menos X86 y AMD64 necesitan tener internet o un repo local,
+ya que necesitaran ciertos paquetes para terminar, en este documento
+se configura un servicio minimo usando las imagenes ISO de instalacion.
+
+## preparacion
+
+Una de las maquinas es la instalar y la otra la que proveera los archivos.
+
+Se necesita que ambas maquinas esten en la misma red, solo en el caso
+de que ya exista DHCP se omite esto del servicio dnsmasq
+
+Se recuerda que son dos maquinas, la que ofrece el servicio PXE (maquina 1)
+aqui mostraremos la configuracion tanto para debian como para alpine,
+de el servicio de arranque por red PXE, mientras que la maquina que
+consume el servicio (maquina 2) es quien arranca el PXE para instalar un OS.
+
+#### Maquina 1 servidor PXE y archivos
+
+En esta maquina se necesita alpine/debian instalado y dnsmasq preparado
+
+#### Maquina 2 objetivo instalar con PXE
+
+En esta maquina se necesita PXE boot habilitado desde el bios
+
+#### Conexiones
+
+**Caso de un solo cable** Se conectan ambas pc una contra la otra con
+un cable de punto a punto, la pc 1 tendra una ip fija, y ofrecera con
+el software dnsmasq DHCP a la pc 2 (auque se puede usar tambien en esta estatica).
+
+**Caso de tener hub red** Se conectan ambas pc en el hub normal y
+la pc primaria 1 tendra una ip fija, y ofrecera con el
+software dnsmasq DHCP a la pc 2 (auque se puede usar tambien en esta estatica).
+
+**Caso de tener red y DHCP** Se conectan ambas pc a la red ya provista
+la pc primaria 1 tendra una ip fija, y delegara con el
+software dnsmasq DHCP a la pc 2 (auque se puede usar tambien en esta estatica).
+
+## Configuracion maquina 1
+
+La maquina 1 servidor PXE se recomienda sea Alpine por su simplicidad,
+si es muy flojo o no tiene conocimientos puede usar Debian, aqui se
+explicara ambos casos:
+
+#### Servidor maquina 1 PXE (USANDO SERVIDOR ALPINE)
+
+Si la maquina tiene Alpine sigua estos pasos en caso contrario
+de usar un servidor debian de PXE sigua la siguiente seccion.
+
+```
+apk add dnsmasq wget
+
+mv -n /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
+```
+
+**Preparar PXE+FTP Caso de tener red y DHCP usando alpine** :
+
+Debera colocar una ip fija a la maquina 1 coordinada con el router:
+* red 10.10.34.0/255.255.255.0 (un router/mikrotik/sonicwall con dhcp)
+* pc1 10.10.34.214/255.255.255.0 gateway 10.10.34.1 (sonicwall de router)
+
+```
+cat > /etc/dnsmasq.conf << EOF
+interface=eth0
+server=8.8.8.8
+server=10.10.34.30
+address=/tijerazo.net/45.181.69.122
+dhcp-range=10.10.34.100,10.10.34.109,255.255.255.0,1h
+dhcp-option=option:router,10.10.34.1
+dhcp-option=3,10.10.34.1
+dhcp-option=option:dns-server,10.10.34.30,8.8.8.8
+dhcp-option=6,10.10.34.30,8.8.8.8
+dhcp-boot=pxelinux.0,pxeserver,10.10.34.214
+pxe-prompt="F8 -> PXE net boot menu", 2
+pxe-service=x86PC, "Linux PXE boot 10.10.34.214", pxelinux
+enable-tftp
+tftp-root=/srv/tftp
+EOF
+```
+
+**Preparar PXE+FTP Caso de tener hub red o solo cable usando alpine** :
+
+Debera colocar una ip fija a la maquina 1 que actuara como un router:
+* red 10.10.34.0/255.255.255.0 (la pc1 con ip estatica en 214)
+* pc1 10.10.34.214/255.255.255.0 gateway 10.10.34.214 (pc de router)
+
+```
+cat > /etc/dnsmasq.conf << EOF
+interface=eth0
+domain=alpine.lan
+dhcp-range=10.10.34.100,10.10.34.254,255.255.255.0,12h
+dhcp-boot=pxelinux.0,pxeserver,10.10.34.214
+dhcp-option=option:router,10.10.34.214
+dhcp-option=3,10.10.34.214
+dhcp-option=option:dns-server,10.10.34.214
+dhcp-option=6,8.8.8.8
+server=8.8.4.4
+pxe-prompt="Press F8 for menu.", 6
+pxe-service=x86PC, "PXE boot 10.10.34.214", pxelinux
+enable-tftp
+tftp-root=/srv/tftp
+EOF
+```
+
+**Preparar el TFTP para el PXE server alpine**:
+
+El arranque PXE es simplemente encontrar inicio, con dos miseros
+archivos se logra.
+
+El primero es el propio NBP, `pxelinux.0`, el segundo depende del
+sistema cargar, para los linux necesitara `ldlinux.c32`, sin embargo
+para presentar mas opciones necesitamos otros archivos que se
+copiaran. Ejemplo para el menu texto se necesita `menu.c32`.
+
+```
+service dnsmasq restart
+
+mkdir /srv/tftp/
+cd /srv/tftp/
+chmod -R 755 /srv/tftp/
+
+rc-update add dnsmasq default
+
+apk add syslinux
+
+cp /usr/share/syslinux/pxelinux.0 /srv/tftp/
+cp /usr/share/syslinux/menu.c32 /srv/tftp/
+cp /usr/share/syslinux/ldlinux/ldlinux.c32 /srv/tftp/
+cp /usr/share/syslinux/libcom32.c32 /srv/tftp/
+cp /usr/share/syslinux/libutil.c32 /srv/tftp/
+
+mkdir -p /srv/tftp/pxelinux.cfg
+cd /srv/tftp/pxelinux.cfg
+cat > /srv/tftp/pxelinux.cfg/default << EOF
+UI menu.c32
+PROMPT 0
+
+MENU TITLE Boot Menu
+TIMEOUT 50
+
+
+include pxelinux.cfg/alpine311
+include pxelinux.cfg/alpine315
+include pxelinux.cfg/debian811
+include pxelinux.cfg/debian11amd
+EOF
+
+```
+
+**Archivos de instalacion de sistemas PXE server alpine**
+
+Tal como se aprecio anteriormente, en el menu default,
+crearemos entradas para arrancar e instalar 4 sistemas distintos,
+este servidor ofrecera dos para alpine y dos para debian:
+* para alpine
+ * uno maquinas amd64 este debe ser el ultimo: 3.15 o lasted
+ * uno maquinas x86 este no puede ser tan actual: v3.11
+* para debian
+ * uno maquinas amd64 este debe ser el ultimo: 11 o bullseye
+ * uno maquinas x86 este no puede ser tan actual: 8 o jessie
+
+```
+apk add wget coreutils
+
+mkdir -p /srv/tftp/boot-alpine315
+cd /srv/tftp/boot-alpine315
+cat > /srv/tftp/pxelinux.cfg/alpine315 << EOF
+LABEL alpine315
+ MENU LABEL Alpine Linux 3.15 amd64 (PXE)
+ KERNEL boot-alpine315/boot/vmlinuz-lts
+ INITRD boot-alpine315/boot/initramfs-lts
+ APPEND acpi_enforce_resources=lax nomodeset vga=normal nofb xforcevesa ip=dhcp modloop=http://10.10.34.214/boot-alpine315/boot/modloop-lts alpine_repo=http://10.10.34.214/boot-alpine315/main modules=loop,squashfs,sd-mod,usb-storage
+EOF
+
+wget https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/x86_64/alpine-netboot-3.15.0-x86_64.tar.gz -O netboot-a315x64.tar.gz
+
+tar xfz netboot-a315x64.tar.gz -C /srv/tftp/boot-alpine315
+
+
+mkdir -p /srv/tftp/boot-alpine311
+cd /srv/tftp/boot-alpine311
+cat > /srv/tftp/pxelinux.cfg/alpine311 << EOF
+LABEL alpine311
+ MENU LABEL Alpine Linux 3.11 i386 32bit (PXE)
+ KERNEL boot-alpine311/boot/vmlinuz-lts
+ INITRD boot-alpine311/boot/initramfs-lts
+ APPEND acpi_enforce_resources=lax nomodeset vga=normal nofb xforcevesa ip=dhcp modloop=http://10.10.34.214/boot-alpine311/boot/modloop-lts alpine_repo=http://10.10.34.214/boot-alpine311/main modules=loop,squashfs,sd-mod,usb-storage
+EOF
+
+wget https://dl-cdn.alpinelinux.org/alpine/v3.11/releases/x86/alpine-netboot-3.11.13-x86.tar.gz -O netboot-a311x86.tar.gz
+
+tar xfz netboot-a311x86.tar.gz -C /srv/tftp/boot-alpine311
+
+
+mkdir -p /srv/tftp/boot-debian11amd
+cd /srv/tftp/boot-debian11amd
+cat > /srv/tftp/pxelinux.cfg/debian11amd << EOF
+LABEL debian11amd
+ MENU LABEL Debian Linux 11 amd64 (PXE)
+ KERNEL boot-debian11amd/debian-installer/amd64/linux
+ INITRD boot-debian11amd/debian-installer/amd64/initrd.gz
+ APPEND acpi_enforce_resources=lax nomodeset vga=normal nofb xforcevesa
+EOF
+
+wget http://ftp.debian.org/debian/dists/bullseye/main/installer-amd64/current/images/netboot/netboot.tar.gz -O netboot-d11x64.tar.gz
+
+tar xfz netboot-d11x64.tar.gz -C /srv/tftp/boot-debian11amd
+
+
+mkdir -p /srv/tftp/boot-debian811
+cd /srv/tftp/boot-debian811
+cat > /srv/tftp/pxelinux.cfg/debian811 << EOF
+LABEL debian811
+ MENU LABEL Debian Linux 8.11 (PXE)
+ KERNEL boot-debian811/debian-installer/i386/linux
+ INITRD boot-debian811/debian-installer/i386/initrd.gz
+ APPEND acpi_enforce_resources=lax nomodeset vga=normal nofb xforcevesa
+EOF
+
+wget http://archive.debian.org/debian-archive/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz -O netboot-d811x86.tar.gz
+
+tar xfz netboot-d811x86.tar.gz -C /srv/tftp/boot-debian811
+
+
+service dnsmasq restart
+
+chown -R dnsmasq:dnsmasq /srv/tftp/boot-*
+```
+
+**Preparar el HTTP para el PXE server alpine**:
+
+El instalador una vez iniciado buscara un web repositorio, y si no
+hay internet no podra seguir, asi que puede ser emulardo con
+un repositorio desde el ISO de instalacion (cualquiera netinstall, dvd/cd, etc)
+que se colocara localmente en un servicio http con lighttpd, apache2 etc..
+
+El servidor debe tener habilidad de listar los directorio (mod_dir)
+Solo se habilitara el puerto 80 ya que en el boot no hay capa SSL/TLS.
+
+```
+apk add lighttpd
+
+rc-update add lighttpd default
+
+mkdir -p /var/lib/lighttpd
+mkdir -p /var/log/lighttpd
+mkdir -p /run/lighttpd
+chown -R lighttpd:lighttpd /var/lib/lighttpd
+chown -R lighttpd:lighttpd /var/log/lighttpd
+chown -R lighttpd:lighttpd /run/lighttpd
+
+sed -i 's#\#.*server.port.*=.*#server.port = 80#g' /etc/lighttpd/lighttpd.conf
+sed -i 's/#.*dir-listing.activate.*=.*/ dir-listing.activate = "enable"/' /etc/lighttpd/lighttpd.conf
+
+service lighttpd restart
+
+mkdir -p /var/www/localhost/htdocs
+rm -rf /var/www/localhost/htdocs/*
+
+chown -R lighttpd:lighttpd /var/www/localhost/
+
+```
+
+**Archivos para HTTP repos offline del PXE server alpine**:
+
+Emularemos esto en la misma maquina PXE alpine y significa que
+este servidor ofrecera repos para alpine y repos para debian:
+* para alpine
+ * uno maquinas amd64 este debe ser el ultimo: 3.15 o lasted
+ * uno maquinas x86 este no puede ser tan actual: v3.11
+* para debian
+ * uno maquinas amd64 este debe ser el ultimo: 11 o bullseye
+ * uno maquinas x86 este no puede ser tan actual: 8 o jessie
+
+
+```
+apk add wget coreutils util-linux
+
+mkdir -p /srv/tftp/boot-alpine311
+cd /srv/tftp/boot-alpine311
+
+wget https://dl-cdn.alpinelinux.org/alpine/v3.11/releases/x86/alpine-extended-3.11.13-x86.iso
+
+mkdir -p /mnt/alpine311iso
+mkdir -p /var/www/localhost/htdocs/boot-alpine311/main
+mount alpine-extended-3.11.13-x86.iso /mnt/alpine311iso -o loop
+cp -rf /mnt/alpine311iso/apks/* /var/www/localhost/htdocs/boot-alpine311/main/
+
+ln -s /srv/tftp/boot-alpine311/boot /var/www/localhost/htdocs/boot-alpine311/boot
+
+
+mkdir -p /srv/tftp/boot-alpine315
+cd /srv/tftp/boot-alpine315
+
+wget https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/x86_64/alpine-standard-3.15.0-x86_64.iso
+
+mkdir -p /mnt/alpine315iso
+mkdir -p /var/www/localhost/htdocs/boot-alpine315/main
+mount alpine-standard-3.15.0-x86_64.iso /mnt/alpine315iso -o loop
+cp -rf /mnt/alpine315iso/apks/* /var/www/localhost/htdocs/boot-alpine315/main/
+
+ln -s /srv/tftp/boot-alpine315/boot /var/www/localhost/htdocs/boot-alpine315/boot
+
+
+mkdir -p /srv/tftp/boot-debian11amd
+cd /srv/tftp/boot-debian11amd
+
+wget https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/archive/11.2.0+nonfree/amd64/iso-cd/firmware-11.2.0-amd64-netinst.iso
+
+mkdir -p /mnt/debian11amdiso
+mkdir -p /var/www/localhost/htdocs/boot-debian11amd
+mount firmware-11.2.0-amd64-netinst.iso /mnt/debian11amdiso -o loop
+
+cp -rf /mnt/debian11amdiso/* /var/www/localhost/htdocs/boot-debian11amd/
+
+ln -s /srv/tftp/boot-debian10amd/debian-installer/amd64 /var/www/localhost/htdocs/boot-debian11amd/boot
+
+
+mkdir -p /srv/tftp/boot-debian811
+cd /srv/tftp/boot-debian811
+
+wget https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/archive/8.11.1+nonfree/i386/iso-cd/firmware-8.11.1-i386-netinst.iso
+
+mkdir -p /mnt/debian811iso
+mkdir -p /var/www/localhost/htdocs/boot-debian811
+mount firmware-8.11.1-i386-netinst.iso /mnt/debian811iso -o loop
+
+cp -rf /mnt/debian811iso/* /var/www/localhost/htdocs/boot-debian811/
+
+ln -s /srv/tftp/boot-debian811/debian-installer/i386 /var/www/localhost/htdocs/boot-debian811/boot
+
+chown -R lighttpd:lighttpd /var/www/localhost/
+
+```
+
+#### Servidor maquina 1 PXE (USANDO SERVIDOR DEBIAN)
+
+Si la maquina tiene Debian/Devuan sigua estos pasos en caso contrario
+de usar un servidor Alpine de PXE sigua la seccion anterior.
+
+```
+apt install dnsmasq wget
+
+mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
+```
+
+**Preparar PXE+FTP Caso de tener red y DHCP** :
+
+Debera colocar una ip fija a la maquina 1 coordinada con el router:
+* red 10.10.34.1/255.255.255.0 (un router/mikrotik/sonicwall con dhcp)
+* pc1 10.10.34.214/255.255.255.0 gateway 10.10.34.1
+
+```
+cat > /etc/dnsmasq.conf << EOF
+interface=enp2s0
+domain=debian.lan
+dhcp-range=10.10.34.100,10.10.34.109,255.255.255.0,1h
+dhcp-option=option:router,10.10.34.1
+dhcp-boot=pxelinux.0,pxeserver,10.10.34.214
+dhcp-option=option:dns-server,10.10.34.1
+dhcp-option=6,8.8.8.8
+server=8.8.4.4
+pxe-prompt="Press F8 for menu.", 6
+pxe-service=x86PC, "PXE boot 10.10.34.214", pxelinux
+enable-tftp
+tftp-root=/srv/tftp
+EOF
+```
+
+**Preparar PXE+FTP Caso de tener hub red o solo cable** :
+
+Debera colocar una ip fija a la maquina 1 que actuara como un router:
+* red 10.10.34.1/255.255.255.0 (la pc1 con ip estatica en 1)
+* pc1 10.10.34.1/255.255.255.0 gateway 10.10.34.1
+
+```
+cat > /etc/dnsmasq.conf << EOF
+interface=enp2s0
+domain=debian.lan
+dhcp-range=10.10.34.100,10.10.34.254,255.255.255.0,12h
+dhcp-boot=pxelinux.0,pxeserver,10.10.34.214
+dhcp-option=option:dns-server,10.10.34.214
+dhcp-option=6,8.8.8.8
+server=8.8.4.4
+pxe-prompt="Press F8 for menu.", 6
+pxe-service=x86PC, "PXE boot 10.10.34.214", pxelinux
+enable-tftp
+tftp-root=/srv/tftp
+EOF
+```
+
+**Preparar el TFTP para el PXE server debian**:
+
+El arranque PXE es simplemente encontrar inicio, con dos miseros
+archivos se logra.
+
+El primero es el propio NBP, `pxelinux.0`, el segundo depende del
+sistema cargar, para los linux necesitara `ldlinux.c32`, sin embargo
+para presentar mas opciones necesitamos otros archivos que se
+copiaran. Ejemplo para el menu texto se necesita `menu.c32`.
+
+```
+service dnsmasq restart
+
+mkdir /srv/tftp/
+cd /srv/tftp/
+chmod -R 755 /srv/tftp/
+
+update-rc.d dnsmasq defaults
+
+apt install syslinux syslinux-common pxelinux
+
+cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp/
+cp /usr/lib/syslinux/modules/bios/menu.c32 /srv/tftp/
+cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/
+cp /usr/lib/syslinux/modules/bios/libcom32.c32 /srv/tftp/
+cp /usr/lib/syslinux/modules/bios/libutil.c32 /srv/tftp/
+
+mkdir -p /srv/tftp/pxelinux.cfg
+cd /srv/tftp/pxelinux.cfg
+cat > /srv/tftp/pxelinux.cfg/default << EOF
+UI menu.c32
+PROMPT 0
+
+MENU TITLE Boot Menu
+TIMEOUT 50
+
+
+include pxelinux.cfg/alpine311
+include pxelinux.cfg/alpine315
+include pxelinux.cfg/debian811
+include pxelinux.cfg/debian11amd
+EOF
+
+```
+
+**Archivos de instalacion de sistemas PXE server debian**
+
+Tal como se aprecio anteriormente, en el menu default,
+crearemos entradas para arrancar e instalar 4 sistemas distintos,
+este servidor ofrecera dos para alpine y dos para debian:
+* para alpine
+ * uno maquinas amd64 este debe ser el ultimo: 3.15 o lasted
+ * uno maquinas x86 este no puede ser tan actual: v3.11
+* para debian
+ * uno maquinas amd64 este debe ser el ultimo: 11 o bullseye
+ * uno maquinas x86 este no puede ser tan actual: 8 o jessie
+
+```
+apt install wget coreutils
+
+mkdir -p /srv/tftp/boot-alpine315
+cd /srv/tftp/boot-alpine315
+cat > /srv/tftp/pxelinux.cfg/alpine315 << EOF
+LABEL alpine315
+ MENU LABEL Alpine Linux 3.15 amd64 (PXE)
+ KERNEL boot-alpine315/boot/vmlinuz-lts
+ INITRD boot-alpine315/boot/initramfs-lts
+ APPEND acpi_enforce_resources=lax nomodeset vga=normal nofb xforcevesa ip=dhcp modloop=http://10.10.34.214/boot-alpine315/boot/modloop-lts alpine_repo=http://10.10.34.214/boot-alpine315/main modules=loop,squashfs,sd-mod,usb-storage
+EOF
+
+wget https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/x86_64/alpine-netboot-3.15.0-x86_64.tar.gz -O netboot-a315x64.tar.gz
+
+tar xfz netboot-a315x64.tar.gz -C /srv/tftp/boot-alpine315
+
+
+mkdir -p /srv/tftp/boot-alpine311
+cd /srv/tftp/boot-alpine311
+cat > /srv/tftp/pxelinux.cfg/alpine311 << EOF
+LABEL alpine311
+ MENU LABEL Alpine Linux 3.11 i386 32bit (PXE)
+ KERNEL boot-alpine311/boot/vmlinuz-lts
+ INITRD boot-alpine311/boot/initramfs-lts
+ APPEND acpi_enforce_resources=lax nomodeset vga=normal nofb xforcevesa ip=dhcp modloop=http://10.10.34.214/boot-alpine311/boot/modloop-lts alpine_repo=http://10.10.34.214/boot-alpine311/main modules=loop,squashfs,sd-mod,usb-storage
+EOF
+
+wget https://dl-cdn.alpinelinux.org/alpine/v3.11/releases/x86/alpine-netboot-3.11.13-x86.tar.gz -O netboot-a311x86.tar.gz
+
+tar xfz netboot-a311x86.tar.gz -C /srv/tftp/boot-alpine311
+
+
+mkdir -p /srv/tftp/boot-debian11amd
+cd /srv/tftp/boot-debian11amd
+cat > /srv/tftp/pxelinux.cfg/debian11amd << EOF
+LABEL debian11amd
+ MENU LABEL Debian Linux 11 amd64 (PXE)
+ KERNEL boot-debian11amd/debian-installer/amd64/linux
+ INITRD boot-debian11amd/debian-installer/amd64/initrd.gz
+ APPEND acpi_enforce_resources=lax nomodeset vga=normal nofb xforcevesa
+EOF
+
+wget http://ftp.debian.org/debian/dists/bullseye/main/installer-amd64/current/images/netboot/netboot.tar.gz -O netboot-d11x64.tar.gz
+
+tar xfz netboot-d11x64.tar.gz -C /srv/tftp/boot-debian11amd
+
+
+mkdir -p /srv/tftp/boot-debian811
+cd /srv/tftp/boot-debian811
+cat > /srv/tftp/pxelinux.cfg/debian811 << EOF
+LABEL debian811
+ MENU LABEL Debian Linux 8.11 (PXE)
+ KERNEL boot-debian811/debian-installer/i386/linux
+ INITRD boot-debian811/debian-installer/i386/initrd.gz
+ APPEND acpi_enforce_resources=lax nomodeset vga=normal nofb xforcevesa
+EOF
+
+wget http://archive.debian.org/debian-archive/debian/dists/jessie/main/installer-i386/current/images/netboot/netboot.tar.gz -O netboot-d811x86.tar.gz
+
+tar xfz netboot-d811x86.tar.gz -C /srv/tftp/boot-debian811
+
+
+service dnsmasq restart
+
+chown -R dnsmasq:www-data /srv/tftp/boot-*
+```
+
+**Preparar el HTTP para el PXE server alpine**:
+
+El instalador una vez iniciado buscara un web repositorio, y si no
+tienes internet no podra seguir, asi que podemos emularlo con
+un repositorio desde el ISO de instalacion (cualquiera netinstall, dvd/cd, etc)
+que se colocara localmente en un servicio http con lighttpd, apache2 etc..
+
+El servidor debe tener habilidad de listar lso directorio (mod_dir)
+Solo se habilitara el puerto 80 ya que en el boot no hay capa SSL/TLS.
+
+```
+apt install lighttpd
+
+update-rc.d lighttpd defaults
+
+lighty-enable-mod dir-listing
+
+service lighttpd restart
+
+mkdir -p /var/www/html
+rm -rf /var/www/html/*
+
+chown -R www-data:www-data /var/www/
+
+```
+
+**Archivos para HTTP repos offline del PXE server alpine**:
+
+Emularemos esto en la misma maquina PXE alpine y significa que
+este servidor ofrecera repos para alpine y repos para debian:
+* para alpine
+ * uno maquinas amd64 este debe ser el ultimo: 3.15 o lasted
+ * uno maquinas x86 este no puede ser tan actual: v3.11
+* para debian
+ * uno maquinas amd64 este debe ser el ultimo: 11 o bullseye
+ * uno maquinas x86 este no puede ser tan actual: 8 o jessie
+
+
+```
+apt install wget coreutils util-linux
+
+mkdir -p /srv/tftp/boot-alpine311
+cd /srv/tftp/boot-alpine311
+
+wget https://dl-cdn.alpinelinux.org/alpine/v3.11/releases/x86/alpine-extended-3.11.13-x86.iso
+
+mkdir -p /mnt/alpine311iso
+mkdir -p /var/www/html/boot-alpine311/main
+mount alpine-extended-3.11.13-x86.iso /mnt/alpine311iso -o loop
+cp -rf /mnt/alpine311iso/apks/* /var/www/html/boot-alpine311/main/
+
+ln -s /srv/tftp/boot-alpine311/boot /var/www/html/boot-alpine311/boot
+
+
+mkdir -p /srv/tftp/boot-alpine315
+cd /srv/tftp/boot-alpine315
+
+wget https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/x86_64/alpine-standard-3.15.0-x86_64.iso
+
+mkdir -p /mnt/alpine315iso
+mkdir -p /var/www/html/boot-alpine315/main
+mount alpine-standard-3.15.0-x86_64.iso /mnt/alpine315iso -o loop
+cp -rf /mnt/alpine315iso/apks/* /var/www/html/boot-alpine315/main/
+
+ln -s /srv/tftp/boot-alpine315/boot /var/www/html/boot-alpine315/boot
+
+
+mkdir -p /srv/tftp/boot-debian11amd
+cd /srv/tftp/boot-debian11amd
+
+wget https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/archive/11.2.0+nonfree/amd64/iso-cd/firmware-11.2.0-amd64-netinst.iso
+
+mkdir -p /mnt/debian11amdiso
+mkdir -p /var/www/html/boot-debian11amd
+mount firmware-11.2.0-amd64-netinst.iso /mnt/debian11amdiso -o loop
+
+cp -rf /mnt/debian11amdiso/* /var/www/html/boot-debian11amd/;rm -rf /var/www/html/boot-debian11amd/boot
+
+ln -s /srv/tftp/boot-debian10amd/debian-installer/amd64 /var/www/html/boot-debian11amd/boot
+
+
+mkdir -p /srv/tftp/boot-debian811
+cd /srv/tftp/boot-debian811
+
+wget https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/archive/8.11.1+nonfree/i386/iso-cd/firmware-8.11.1-i386-netinst.iso
+
+mkdir -p /mnt/debian811iso
+mkdir -p /var/www/html/boot-debian811
+mount firmware-8.11.1-i386-netinst.iso /mnt/debian811iso -o loop
+
+cp -rf /mnt/debian811iso/* /var/www/html/boot-debian811/;rm -rf /var/www/html/boot-debian811/boot
+
+ln -s /srv/tftp/boot-debian811/debian-installer/i386 /var/www/html/boot-debian811/boot
+
+chown -R www-data:www-data /var/www/html/
+
+```
+
+## Configuracion maquina 2
+
+Vaya al menú de inicio de la maquina y seleccione inicio de red como el
+dispositivo de inicio principal (en los mas actuales sistemas puede
+seleccionar el dispositivo de inicio sin ingresar a la configuración
+del BIOS con solo presionando una tecla durante BIOS POST comunmente F11).
+
+### Proceso de arranque
+
+Primero debe decirle a la computadora que arranque por red, ajeno a este documento,
+pero abajo se citan dos ejemplo de como realizarlo.
+
+Una vez arrancado el proceso PXE se debera realizar el proceso de instalacion:
+
+* despues de arrancar debera pulsar F8 y escoger la opcion de alpine
+* en el boot parameter despues de "-- quiet" agregar `debian-installer/allow_unauthenticated=true`
+* durante la instalacion debera escoger un mirror manualmente
+ * el mirror url seria 10.10.34.214 que es la maquina 1
+ * para alpine el directorio raiz puede ser "/alpine/" o simplemente "/"
+ * para debian el directorio raiz puede ser "/debian/" o simplemente "/"
+
+Ambas maquinas deben estar activas durante todo el proceso de instalacion.
+
+A continuacion ejemplos de arranque de PXE en computadores:
+
+#### Arranque PXE Urmet Daruma MT1000
+
+En los URMET DARUMA MT 1000 si tiene clave arrancara con peticion DHCP,
+cuando pulse "n" unicamente.
+
+Despues de terminar la instalacion se puede configurr internet y demas
+en la maquina pc 2 por lo que quizas un archivo iso mas completo es lo
+mejor. Despues sigua el proceso de arranque arriba descrito.
+
+#### Arranque PXE DELL T110-II
+
+En estos hay dos pantallas que pueden confundir, la primera que se relaciona
+es la de configuracion propia de del, sale la ip 192.168 etc fijas, ignorar
+esta pantalla y esperar que salga el logo de DELL, alli presionar F11 para
+seleccionar el menu de arranque donde podra arrancar por PXE el servidor.
+Despues de arrancar sigua el proceso de insarriba descrito.
+
+#### Arranque PXE DELL Optiplex o Vostros o Inspiron
+
+Las maquinas DELL tanto laptops como desktops usan la tecla F12 para seleccionar
+el modo de arranque, sin embargo el PXE esta muchas veces desactivado, asi que debe
+usar la tecla F2 para entrar al BIOS/UEFI y configurar/habilitar el arranque PXE.
+Una vez configurado esto puede seleccionar con F12 el modo de arranque PXE.
+
+#### Arranque PXE en clones
+
+Mayormente se usa la tecvla "Supr" para entrar al bios, y depende de la marca
+del BIOS/UEFI, los dos mayores fabricantes son dos unicamente:
+la popular American Megatrends (AMI) y Phoenix Technologies (PHOENYX), esta ultima
+compró Award Software International (AWARD).
+
+Estos bios normalmente se usa la tecla "Del" o "Supr" del teclado, para acceder,
+en los modos dual (BIOS/UEFI) pero en los mas modernos puede ser F2, una vez alli
+generalmente no hay que habilitar el modo PXE puesto estos fabricantes lo
+tienen habilitado por defecto, mas no como primera opcion, por ende hay que escogerlo
+del menu de arranque que en los mas modernos puede ser las teclas F12 o ESC.
+
+## Vea tambien
+
+[README.md](README.md)



View it on GitLab: https://gitlab.com/venenux/venenux-docus/-/commit/c288629d6e12f082aef0ac31045e2643148d2788

--
View it on GitLab: https://gitlab.com/venenux/venenux-docus/-/commit/c288629d6e12f082aef0ac31045e2643148d2788
You're receiving this email because of your account on gitlab.com.


Reply all
Reply to author
Forward
0 new messages