Menú de arranque PXE con System Center Configuration Manager

Menú de arranque PXE con System Center Configuration Manager

Estamos considerando la ampliación de las capacidades de System Center Configuration Manager (producto para la gestión de infraestructura de TI) al iniciar computadoras personales de usuarios a través de la red utilizando PXE. Creamos un menú de arranque basado en PXELinux con funcionalidades de System Center y añadimos capacidades de verificación antivirus, imágenes de diagnóstico y recuperación. Al final del artículo, abordamos las particularidades del funcionamiento de System Center 2012 Configuration Manager junto con los Servicios de Implementación de Windows (WDS) al arrancar a través de PXE.

Todas las acciones se realizan en un entorno de prueba, donde ya está instalado System Center 2012 Configuration Manager SP1, un controlador de dominio y un cierto número de máquinas de prueba. Se supone que en SCCM ya se utiliza el despliegue por red utilizando PXE.

Introducción

El entorno de prueba consta de varias máquinas virtuales. En todas las máquinas está instalado el sistema operativo invitado Microsoft Windows Server 2008 R2 (x64), adaptador de red E1000, Controlador SCSI: LSI Logic SAS

Nombre (Roles)
Dirección IP / Nombre DNS
Funcionalidad

SCCM (System Center Configuration Manager)
192.168.57.102
sccm2012.test.local

System Center Configuration Manager 2012 SP1 instalado

DC (AD, DHCP, DNS)
192.168.57.10
dc1.test.local

Rol de controlador de dominio, servidor DHCP y servidor DNS

TEST (Máquina de prueba)
192.168.57.103
test.test.local

Para las pruebas

GW (Puerta de enlace)
192.168.57.1
Enrutamiento entre redes. Rol de puerta de enlace

1. Añadimos PXELinux en SCCM

Las acciones se realizan en la máquina donde está instalado System Center Configuration Manager

  • Definimos el directorio donde se encuentran los archivos WDS para el arranque, para esto revisamos en el registro el valor del parámetro RootFolder en la rama HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
    Valor por defecto C:RemoteInstall
    Los archivos para el arranque desde el punto de despliegue de SCCM están ubicados en los directorios smsbootx86 y smsbootx64 dependiendo de la arquitectura.
    Primero configuramos el directorio para arquitectura de 32 bits, por defecto c:Remoteinstallsmsbootx86
  • Descargamos el archivo comprimido con la última syslinux . Copiamos de syslinux-5.01.zip los c:Remoteinstallsmsbootx86 siguientes archivos:
    memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
    Los archivos adicionales son necesarios para que no aparezca un error como este
    Menú de arranque PXE con System Center Configuration Manager
  • En c:Remoteinstallsmsbootx86 renombramos pxelinux.0 en pxelinux.com
    En la carpeta c:remoteinstallsmsbootx86 hacemos una copia de abortpxe.com y la renombramos a abortpxe.0
    Si no la renombramos con la extensión .0, entonces, por ejemplo, la instrucción
    Kernel abortpxe.com

    se ejecutará con error: Booting kernel failed: Bad file number
    Para PXELINUX, la extensión del archivo de arranque debe establecerse según la tabla

    ninguno u otro	imagen del núcleo de Linux
     .0		programa de arranque PXE (NBP) [solo PXELINUX]
     .bin		"sector de arranque de CD" [solo ISOLINUX]
     .bs		Sector de arranque [solo SYSLINUX]
     .bss		Sector de arranque, el superbloque de DOS será parcheado [solo SYSLINUX]
     .c32		imagen COM32 (COMBOOT de 32 bits)
     .cbt		imagen COMBOOT (no ejecutable desde DOS)
     .com		imagen COMBOOT (ejecutable desde DOS)
     .img		imagen de disco [solo ISOLINUX]
    

    Fuente: http://www.syslinux.org/wiki/index.php/SYSLINUX#KERNEL_file sección "Archivo del núcleo"

  • Para evitar presionar varias veces la tecla F12 al iniciar SCCM desde el menú, renombramos pxeboot.com a pxeboot.com.f12, copiamos pxeboot.n12 a pxeboot.com
    Si no hacemos esto, al seleccionar obtendremos este mensaje cada vez
    Menú de arranque PXE con System Center Configuration Manager
    Nota: No olvidemos renombrar estos archivos en la carpeta para x64 ya que cuando se inicia x86wdsnbp.com desde la carpeta x86, el cargador determina la arquitectura del procesador y carga el siguiente archivo desde la carpeta de la arquitectura correspondiente. Así, para x64 el siguiente archivo no será x86pxeboot.com, y x64pxeboot.com
  • Descargamos/creamos background.png, con resolución 640x480, lo copiamos en la misma carpeta. Creamos una carpeta ISO donde colocaremos las imágenes ISO. Creamos una carpeta pxelinux.cfg para las configuraciones.
  • En la carpeta pxelinux.cfg creamos un archivo default, en codificación no unificada, con el contenido
    default (Haz clic para mostrar)
    # используем графическое меню
    DEFAULT vesamenu.c32
    PROMPT 0
    timeout 80
    TOTALTIMEOUT 9000
    
    MENU TITLE PXE Boot Menu (x86)
    MENU INCLUDE pxelinux.cfg/graphics.conf
    MENU AUTOBOOT Starting Local System in 8 seconds
    
    # Boot local HDD (default)
    LABEL bootlocal
    menu label Boot Local
    menu default
    localboot 0x80
    # if it doesn't work 
    #kernel chain.c32
    #append hd0
    
    # Вход в меню по паролю Qwerty, алгоритм MD5
    label av
    menu label Antivirus and tools
    menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0
    kernel vesamenu.c32
    append pxelinux.cfgav.conf 
    
    label sccm
    menu label Start to SCCM
    COM32 pxechn.c32
    APPEND sccm2012.test.local::smsbootx86wdsnbp.com -W
    
    label pxe64
    menu label Start to x64 pxelinux
    COM32 pxechn.c32
    APPEND sccm2012.test.local::smsbootx64pxelinux.com
    
    LABEL Abort
    MENU LABEL Exit
    KERNEL abortpxe.0

    En la carpeta pxelinux.cfg creamos un archivo graphics.conf con el contenido
    graphics.conf (Haz clic para mostrar)

    MENU MARGIN 10
    MENU ROWS 16
    MENU TABMSGROW 21
    MENU TIMEOUTROW 26
    MENU COLOR BORDER 30;44 #00000000 #00000000 none
    MENU COLOR SCROLLBAR 30;44 #00000000 #00000000 none
    MENU COLOR TITLE 0 #ffffffff #00000000 none
    MENU COLOR SEL 30;47 #40000000 #20ffffff
    MENU BACKGROUND background.png
    NOESCAPE 0
    ALLOWOPTIONS 0

    En la carpeta pxelinux.cfg creamos un archivo av.conf con el contenido
    av.conf (Haz clic para mostrar)

    DEFAULT vesamenu.c32
    PROMPT 0
    MENU TITLE Antivirus y herramientas
    MENU INCLUDE pxelinux.cfg/graphics.conf
    
    label main menu
    menu label volver al menú principal
    kernel vesamenu.c32
    append pxelinux.cfg/default
    
    label drweb
    menu label DrWeb
    kernel memdisk
    append iso raw initrd=isodrweb.iso
    
    label eset
    menu label Eset
    kernel memdisk
    append iso raw initrd=isoeset_sysrescue.iso
    
    label kav
    menu label KAV Rescue CD
    KERNEL kav/rescue
    APPEND initrd=kav/rescue.igz root=live rootfstype=auto vga=791 init=/init kav_lang=es udev liveimg doscsi nomodeset quiet splash
    
    #Cargamos ISO por la ruta completa, se puede cargar desde otro TFTP
    label winpe
    menu label WinPE desde otro TFTP
    kernel sccm2012.test.local::smsbootx86memdisk
    append iso raw initrd=sccm2012.test.local::smsbootx86isoWinPE_RaSla.iso
    
    label clonezilla
    menu label Clonezilla
    kernel memdisk
    append iso raw initrd=isoclonezilla.iso
    
  • Como resultado, el directorio c:remoteinstallsmsbootx86 contiene la estructura

    c:remoteinstallsmsbootx86
    pxelinux.cfg

    chain.c32
    ldlinux.c32
    libcom32.c32
    libutil.c32
    pxechn.c32
    vesamenu.c32
    pxelinux.com
    background.png
    pxelinux.cfg
    pxelinux.cfg
    pxelinux.cfg
    ISO
    abortpxe.0
    wdsnbp.com
    bootmgfw.efi
    wdsmgfw.efi
    bootmgr.exe
    pxeboot.n12
    pxeboot.com
    abortpxe.com

    default
    av.conf
    graphics.conf
    *.iso

  • Para la arquitectura x64, de manera similar, copiamos y creamos la misma estructura en la carpeta c:remoteinstallsmsbootx64

Suplemento
Al usar el comando menu PASSWD la contraseña se puede establecer tal cual, o utilizando un algoritmo de hash, añadiendo al inicio del parámetro la firma correspondiente

Algoritmo
Firma

MD5
$1$

SHA-1
$4$

SHA-2-256
$5$

SHA-2-512
$6$

Por lo tanto, para la contraseña Qwerty y en el algoritmo MD5

menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0

Se puede generar una contraseña, por ejemplo, a través de un generador de hashes en línea www.insidepro.com/hashes.php?lang=esp, cadena MD5(Unix)

2. Configuramos la carga PXELinux

Ahora indicaremos cómo cargar pxelinux.com y obtener el menú.
La indicación del cargador pxelinux.com mediante la funcionalidad WDS no funciona en SCCM. Los comandos de tipo

wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86

no son procesados. Asegúrate de que las imágenes de arranque no estén configuradas ejecutando el comando de salida de configuración del servidor WDS

wdsutil /get-server /show:images

Menú de arranque PXE con System Center Configuration Manager
Así, en SCCM 2012 no se puede especificar un archivo propio para cargar a través de PXE para el proveedor SMSPXE. Por lo tanto, configuraremos la región activa del servidor DHCP.
En los parámetros de la región activa de DHCP configuramos los parámetros de acuerdo con la tabla

Opción DHCP
Nombre del parámetro
Valor

066
Nombre del host del servidor de arranque
sccm2012.test.local

067
Nombre del archivo de arranque
smsbootx86pxelinux.com

006
Servidores DNS
192.168.57.10

015
Nombre de dominio DNS
test.local

En la opción 066 especificamos el nombre FQDN del servidor SCCM, en la opción 067 especificamos la ruta del cargador x86 pxelinux.com comenzando desde la raíz TFTP, en la opción 006 especificamos la dirección IP del servidor DNS. Si en la opción 066 se utiliza un nombre corto del servidor, en la opción 015 se especifica el sufijo de dominio DNS.

Suplemento
He detallado la configuración de DHCP más a fondo mvgolubev aquí. Pero en DC la opción 150, la dirección IP del servidor TFTP, faltaba en la configuración de la región DHCP y la indicación de la opción 150 a través de netsh no funcionó.Menú de arranque PXE con System Center Configuration Manager

3. Verificación del funcionamiento

Las configuraciones principales han terminado y se puede proceder a la verificación. Indicamos en la computadora de prueba en el BIOS que arranque por la red y nos cargamos en el menú
Menú de arranque PXE con System Center Configuration Manager

Seleccionamos la opción «Iniciar en SCCM» y si a la computadora se le ha asignado una secuencia de tareas, después de un tiempo aparecerá la ventana «Asistente para la creación de secuencias de tareas» con la propuesta de introducir una contraseña
Menú de arranque PXE con System Center Configuration Manager

Reiniciamos la máquina, volvemos a entrar en el menú, seleccionamos en el menú «Antivirus y herramientas» y introducimos la contraseña Qwerty
Menú de arranque PXE con System Center Configuration Manager

Seleccionamos una opción arbitraria y observamos la carga de la imagen ISO en la memoria
Menú de arranque PXE con System Center Configuration Manager

Esperamos y observamos el resultado
Menú de arranque PXE con System Center Configuration Manager

Verificación completada
Menú de arranque PXE con System Center Configuration Manager

4. Configuraciones adicionales y características

Configuración de enrutamiento

Si el cliente, el servidor DHCP y el servidor que contiene el cargador de red están en el mismo segmento de red, no se requiere configuración adicional. Sin embargo, si el cliente y el servidor DHCP o el servidor WDS/SCCM se encuentran en diferentes segmentos de red, se recomienda configurar en los enrutadores el reenvío de paquetes de difusión desde el cliente al servidor DHCP activo y al servidor WDS/SCCM activo. En la literatura anglosajona, este proceso se conoce como 'actualizaciones de la tabla IP Helper'. En este caso, después de recibir la dirección IP, el cliente se comunica con el servidor que contiene el cargador de red directamente a través de paquetes DHCP para descargar el cargador de red.
Para enrutadores Cisco, se utiliza el comando

ip helper-address {ip address}

donde {ip address} dirección del servidor DHCP o del servidor WDS/SCCM. Al usar este comando, también se reenvían los siguientes paquetes UDP de difusión

Puerto
Protocolo

69
TFTP

53
Sistema de Nombres de Dominio (DNS)

37
Servicio de tiempo

137
Servidor de Nombres NetBIOS

138
Servidor de Datagrama NetBIOS

67
Protocolo de Arranque (BOOTP)

49
TACACS

El segundo método para que el cliente obtenga información sobre el cargador de red directamente desde el servidor DHCP es especificar las opciones 60, 66, 67 en el servidor DHCP. El uso del parámetro DHCP 60 con el valor 'PXEClient' en todas las áreas de aplicación de DHCP, solo si el servidor DHCP se aloja en el mismo servidor que los servicios de implementación de Windows. En este caso, el cliente se comunica directamente con el servidor de servicios de implementación de Windows a través del protocolo TFTP a través del puerto UDP 4011, y no a través de DHCP. Este método no es recomendado por Microsoft debido a problemas de equilibrio de carga, manejo incorrecto de los parámetros DHCP y parámetros de respuesta de los servicios de implementación de Windows del lado del cliente. También porque usar solo las dos opciones 66 y 67 de DHCP permite eludir los parámetros establecidos en el servidor de carga de red.
También es necesario abrir los siguientes puertos UDP en el servidor de servicios de implementación de Windows
puerto 67 (DHCP)
puerto 69 (TFTP)
puerto 4011 (PXE)
y puerto 68, si se requiere autorización DHCP en el servidor.

En más detalle, el proceso de configuración y los matices del redireccionamiento entre diferentes servidores WDS se describen a continuación en las fuentes:
Gestión de programas de carga de red http://technet.microsoft.com/ru-ru/library/cc732351(v=ws.10).aspx
Gestión del servidor http://technet.microsoft.com/ru-ru/library/cc770637(v=ws.10).aspx
Límites de soporte de Microsoft Product Support Services (PSS) para el arranque de red del entorno de preinstalación de Microsoft Windows (Windows PE) 2.0 http://support.microsoft.com/kb/926172/en-us
Cómo reenviar la difusión UDP (BOOTP/DHCP) en Cisco http://www.cisco-faq.com/163/forward_udp_broadcas.html
Características de funcionamiento y configuración de DHCP en enrutadores Cisco (Parte 2) http://habrahabr.ru/post/89997/

Funciones adicionales de carga local

En el entorno de prueba, el comando

localboot 0

muestra este error
Menú de arranque PXE con System Center Configuration Manager
Según la documentación de syslinux, cuando

localboot 0

la carga se realiza desde el disco local. Y al especificar un valor concreto 0x00 desde el disco flexible (floppy) primario, al especificar 0x80 desde el disco duro (hard) primario. Cambiando el comando a

localboot 0x80

el sistema operativo local se ha cargado.
Si es necesario hacer la carga desde un disco, partición o comando específico, localboot no funciona, entonces se pueden usar las capacidades del módulo chain.c32. Después de cargarlo, con el comando append se indica el disco o partición específica, la numeración de los discos comienza desde 0, la numeración de las particiones desde 1 ya que al especificar la partición 0 se carga el MBR. Al especificar el disco, la partición puede no ser indicada.

KERNEL chain.c32
APPEND hd0 0

o

KERNEL chain.c32
APPEND hd0

Fuentes: http://www.syslinux.org/wiki/index.php/SYSLINUX#LOCALBOOT_type_.5BISOLINUX.2C_PXELINUX.5D
http://www.gossamer-threads.com/lists/syslinux/users/7127

Orden y descripción de la carga de archivos a través de PXE

Como se mencionó al principio del artículo, el directorio donde se encuentran los archivos WDS para la carga está contenido en el valor del parámetro RootFolder en la rama del registro HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Valor por defecto C:RemoteInstall
Aquí también en el parámetro ReadFilter se indican los directorios donde el servidor TFTP busca archivos para la carga, comenzando desde la raíz. Con SCCM 2012 SP1 instalado, este parámetro es

boot*
tmp*
SMSBoot*
SMSTemp*
SMSImages*

Si se cambia el valor del parámetro a * se procesarán todos los archivos ubicados en el directorio RemoteInstall.

El rol del punto de despliegue de SCCM 2012 se especifica en el parámetro del registro ProvidersOrder, ubicado en la rama HKLMSystemCurrentControlSetWDSServerProvidersWDSPXE
Parámetro ProvidersOrder puede tomar los valores

SMSPXE
punto de servicio PXE en SCCM

SMS.PXE.Filter
Manejador de scripts PXE desde MDT (Microsoft Deployment Toolkit)

BINLSVC
Manejador estándar de WDS y RIS

Con SCCM instalado, el parámetro ProvidersOrder tiene el valor SMSPXE. Al cambiar el parámetro, se puede alterar el orden de carga de los proveedores.

En el directorio RemoteInstall se encuentran los siguientes archivos estándar

wdsnbp.com

Programa de carga por red, desarrollado para los servicios de despliegue de Windows que realiza las siguientes funciones:
1. Detección de arquitectura.
2. Mantenimiento de computadoras en espera. Cuando está habilitada la política de adición automática, este programa de carga por red se envía a las computadoras en espera para pausar la carga de red y comunicar al servidor la arquitectura de la computadora cliente.
3. Uso de enlaces de carga por red (incluyendo el uso de parámetros 66 y 67 del protocolo DHCP)

PXEboot.com

(Por defecto) Requiere que el usuario presione la tecla F12 para continuar con la carga de red.

PXEboot.n12

No requiere que el usuario presione la tecla F12 y comienza inmediatamente la carga de red

AbortPXE.com

Carga el ordenador utilizando el siguiente elemento de arranque en el BIOS sin esperar

Bootmgr.exe

El gestor de arranque de Windows (Bootmgr.exe o Bootmgr.efi). Carga el gestor de arranque de Windows desde una partición del disco o a través de una conexión de red (en caso de carga de red)

Bootmgfw.efi

Versión EFI de los programas PXEboot.com y PXEboot.n12 (en EFI la elección de cargar o no cargar PXE se realiza en el entorno EFI, no por el programa de carga de red). El programa Bootmgfw.efi combina las capacidades de PXEboot.com, PXEboot.n12, abortpxe.com y bootmgr.exe. Actualmente, existe solo para arquitecturas x64 e Itanium

Default.bcd

Almacén de datos de configuración de arranque (BCD), formato REGF, se puede cargar en REGEDIT, reemplaza el archivo de texto Boot.ini

La carga se realiza en el siguiente orden según la descripción anterior
1. Se carga wdsnbp.com.
2. Luego se carga pxeboot.com de la arquitectura correspondiente
3. PXEBoot.com carga bootmgr.exe y el almacén de datos de configuración de arranque BCD
4. Bootmgr.exe lee las entradas del sistema operativo del almacén de datos de configuración de arranque BCD y carga el archivo Boot.sdi y la imagen de Windows PE (boot.wim)
5. Bootmgr.exe inicia la carga de Windows PE, accediendo a Winload.exe en la imagen de Windows PE

Si en RemoteInstall hay carpetas

Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend

su presencia indica que antes de agregar el rol de punto de distribución en SCCM 2012 (punto de servicio PXE en SCCM 2007) hubo alguna acción de configuración del Windows Deployment Services (WDS) instalado, como resultado de la cual se crearon automáticamente estas carpetas.
Para el rol de punto de distribución (punto de servicio PXE en SCCM 2007) solo son suficientes las siguientes carpetas

SMSBoot
SMSIMAGES
SMSTemp
Stores

Esto no significa que SCCM esté instalado incorrectamente, pero puede indicar una posible fuente de errores.
Las diversas soluciones a los problemas de conexión entre WDS, SCCM y PXE están detalladas en el artículo Troubleshooting the PXE Service Point and WDS in Configuration Manager 2007

Summary

En la infraestructura de TI gestionada por System Center Configuration Manager, se ha añadido una nueva herramienta para los administradores de sistemas en el lugar.

Lista de enlaces a imágenes ISO (Haga clic para mostrar)download.f-secure.com/estore/rescue-cd-3.16-52606.iso
git.ipxe.org/releases/wimboot/wimboot-latest.zip
download.geo.drweb.com/pub/drweb/livecd/drweb-livecd-602.iso
rescuedisk.kaspersky-labs.com/rescuedisk/updatable/kav_rescue_10.iso
esetsupport.ru/eset_sysrescue.iso
boot.ipxe.org/ipxe.iso
citylan.dl.sourceforge.net/project/clonezilla/clonezilla_live_alternative/20130226-quantal/clonezilla-live-20130226-quantal-i386.iso
ftp.rasla.ru/_Distr_/WinPE/RaSla/WinPE_RaSla.iso
www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.01.zip

¡Gracias por su atención!
Menú de arranque PXE con System Center Configuration Manager

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster