
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
RootFolderen la ramaHKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Valor por defectoC:RemoteInstall
Los archivos para el arranque desde el punto de despliegue de SCCM están ubicados en los directoriossmsbootx86ysmsbootx64dependiendo de la arquitectura.
Primero configuramos el directorio para arquitectura de 32 bits, por defectoc:Remoteinstallsmsbootx86 - Descargamos el archivo comprimido con la última . Copiamos de syslinux-5.01.zip los
c:Remoteinstallsmsbootx86siguientes 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
- En
c:Remoteinstallsmsbootx86renombramospxelinux.0enpxelinux.com
En la carpetac:remoteinstallsmsbootx86hacemos una copia deabortpxe.comy la renombramos aabortpxe.0
Si no la renombramos con la extensión.0, entonces, por ejemplo, la instrucciónKernel abortpxe.comse ejecutará con error: Booting kernel failed: Bad file number
Para PXELINUX, la extensión del archivo de arranque debe establecerse según la tablaninguno 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: 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
Nota: No olvidemos renombrar estos archivos en la carpeta para x64 ya que cuando se iniciax86wdsnbp.comdesde 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, yx64pxeboot.com - Descargamos/creamos , con resolución 640x480, lo copiamos en la misma carpeta. Creamos una carpeta
ISOdonde colocaremos las imágenes ISO. Creamos una carpetapxelinux.cfgpara 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.0En la carpeta
pxelinux.cfgcreamos un archivographics.confcon 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 0En la carpeta
pxelinux.cfgcreamos un archivoav.confcon 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.cfgchain.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.comdefault
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 comandomenu PASSWDla contraseña se puede establecer tal cual, o utilizando un algoritmo de hash, añadiendo al inicio del parámetro la firma correspondienteAlgoritmo
FirmaMD5
$1$SHA-1
$4$SHA-2-256
$5$SHA-2-512
$6$Por lo tanto, para la contraseña
Qwertyy en el algoritmo MD5menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0Se puede generar una contraseña, por ejemplo, a través de un generador de hashes en línea , 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
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 . Pero enDCla 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ó.
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ú
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

Reiniciamos la máquina, volvemos a entrar en el menú, seleccionamos en el menú «Antivirus y herramientas» y introducimos la contraseña Qwerty
Seleccionamos una opción arbitraria y observamos la carga de la imagen ISO en la memoria
Esperamos y observamos el resultado
Verificación completada

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
Gestión del servidor
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
Cómo reenviar la difusión UDP (BOOTP/DHCP) en Cisco
Características de funcionamiento y configuración de DHCP en enrutadores Cisco (Parte 2)
Funciones adicionales de carga local
En el entorno de prueba, el comando
localboot 0 muestra este error

Según la documentación de syslinux, cuando
localboot 0la 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 0o
KERNEL chain.c32
APPEND hd0 Fuentes:
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
StoresEsto 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
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)
¡Gracias por su atención!

Fuente: habr.com
