
Estamos considerando a ampliação das funcionalidades do System Center Configuration Manager (um produto para gerenciamento de infraestrutura de TI) ao iniciar PCs de usuários pela rede usando PXE. Criamos um menu de inicialização baseado em PXELinux com funcionalidade do System Center e adicionamos capacidades de verificação antivírus, imagens de diagnóstico e recuperação. No final do artigo, abordamos as características do uso do System Center 2012 Configuration Manager em conjunto com o Windows Deployment Services (WDS) durante a inicialização via PXE.
Todas as ações são realizadas em um ambiente de teste, onde já está instalado o System Center 2012 Configuration Manager SP1, um controlador de domínio e um certo número de máquinas de teste. Presume-se que o SCCM já está utilizando a implantação pela rede usando PXE.
Introdução
O ambiente de teste consiste em várias máquinas virtuais. Em todas as máquinas, está instalada a OS convidada Microsoft Windows Server 2008 R2 (x64), adaptador de rede E1000, Controlador SCSI: LSI Logic SAS.
Nome (Funções)
Endereço IP / Nome DNS
Funcionalidade
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
Função de controlador de domínio, servidor DHCP e servidor DNS
TEST (Máquina de teste)
192.168.57.103
test.test.local
Para testes
GW (Gateway)
192.168.57.1
Roteamento entre redes. Função do gateway
1. Adicionando PXELinux ao SCCM
As ações são realizadas na máquina onde o System Center Configuration Manager está instalado.
- Vamos definir o diretório onde estão os arquivos WDS para inicialização, para isso, verificamos a chave no registro.
RootFolderna chaveHKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Valor padrãoC:RemoteInstall
Os arquivos para inicialização do ponto de implantação do SCCM estão localizados nos diretóriossmsbootx86esmsbootx64dependendo da arquitetura.
Primeiro, configuramos o diretório para a arquitetura de 32 bits, por padrãoc:Remoteinstallsmsbootx86 - Baixamos o arquivo compactado com a versão mais recente . Copiamos do syslinux-5.01.zip para
c:Remoteinstallsmsbootx86os seguintes arquivos:
memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
Arquivos adicionais são necessários para evitar erros semelhantes
- Em
c:Remoteinstallsmsbootx86renomeamospxelinux.0empxelinux.com
Na pastac:remoteinstallsmsbootx86fazemos uma cópia deabortpxe.come a renomeamos paraabortpxe.0
Se não renomearmos para a extensão.0, então, por exemplo, o comandoKernel abortpxe.comserá executado com erro: Booting kernel failed: Bad file number
Para o PXELINUX, a extensão do arquivo de inicialização deve ser definida de acordo com a tabela.nenhum ou outro imagem do núcleo Linux .0 programa de inicialização PXE (NBP) [somente PXELINUX] .bin "setor de inicialização do CD" [somente ISOLINUX] .bs Setor de inicialização [somente SYSLINUX] .bss Setor de inicialização, superbloco DOS será corrigido [somente SYSLINUX] .c32 imagem COM32 (COMBOOT de 32 bits) .cbt imagem COMBOOT (não executável a partir do DOS) .com imagem COMBOOT (executável a partir do DOS) .img imagem de disco [somente ISOLINUX]Fonte: seção “Arquivo do núcleo”
- Para evitar pressionar a tecla F12 várias vezes ao inicializar o SCCM pelo menu, renomeamos pxeboot.com para pxeboot.com.f12, copiamos pxeboot.n12 para pxeboot.com
Se isso não for feito, a cada seleção receberemos esta mensagem
Nota: Não esqueça de renomear esses arquivos também na pasta para x64 porque, ao inicializarx86wdsnbp.comda pasta x86, o carregador determina a arquitetura do processador e o próximo arquivo já é carregado da pasta correspondente à arquitetura. Assim, para x64, o arquivo subsequente será nãox86pxeboot.com, ex64pxeboot.com - Baixamos/criamos , com resolução 640x480, copiamos para a mesma pasta. Criamos a pasta
ISOonde iremos armazenar as imagens ISO. Criamos a pastapxelinux.cfgpara as configurações. - Na pasta pxelinux.cfg, criamos o arquivo default, em codificação não UNICODE, com o conteúdo
default (Clique para exibir)# используем графическое меню 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.0Na pasta
pxelinux.cfgcriamos o arquivographics.confcom o conteúdo
graphics.conf (Clique para exibir)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 0Na pasta
pxelinux.cfgcriamos o arquivoav.confcom o conteúdo
av.conf (Clique para exibir)DEFAULT vesamenu.c32 PROMPT 0 MENU TITLE Antivirus e ferramentas MENU INCLUDE pxelinux.cfg/graphics.conf label main menu menu label voltar para o menu 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=ru udev liveimg doscsi nomodeset quiet splash #Iniciamos ISO pelo caminho completo, pode ser carregado de outro TFTP label winpe menu label WinPE de outro 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, o diretório c:remoteinstallsmsbootx86 contém a estrutura
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.compadrão
av.conf
graphics.conf
*.iso - Para a arquitetura x64, copiamos e criamos a mesma estrutura na pasta
c:remoteinstallsmsbootx64
Extensão
Ao usar o comandomenu PASSWDa senha pode ser definida como está ou usar o algoritmo de hash adicionando no início do parâmetro a assinatura correspondenteO algoritmo
AssinaturaMD5
$1$SHA-1
$4$SHA-2-256
$5$SHA-2-512
$6$Assim, para a senha
Qwertye algoritmo MD5menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0É possível gerar uma senha, por exemplo, através de um gerador de hashes online , string
MD5(Unix)
2. Configurando o carregamento PXELinux
Agora vamos indicar como carregar pxelinux.com e obter o menu.
A indicação do carregador pxelinux.com através da funcionalidade WDS não funciona no SCCM. Comandos do tipo
wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86
não são processados. Para confirmar que as imagens de inicialização não estão definidas, você pode executar o comando para exibir a configuração do servidor WDS
wdsutil /get-server /show:images
Assim, no SCCM 2012 não é possível especificar seu arquivo para inicialização via PXE para o provedor SMSPXE. Portanto, vamos configurar a área ativa do servidor DHCP.
Nas configurações da área ativa do DHCP, definimos os parâmetros de acordo com a tabela
Opção DHCP
Nome do parâmetro
O valor
066
Nome do host do servidor de inicialização
sccm2012.test.local
067
Nome do arquivo de inicialização
smsbootx86pxelinux.com
006
Servidores DNS
192.168.57.10
015
Nome do domínio DNS
test.local
Na opção 066, indicamos o nome FQDN do servidor SCCM, na opção 067, indicamos o caminho até o carregador x86 pxelinux.com começando a partir da raiz do TFTP, na opção 006 indicamos o endereço IP do servidor DNS. Caso na opção 066 seja utilizado um nome curto do servidor, na opção 015 indicamos o sufixo DNS do domínio.
Extensão
Descrevi a configuração do DHCP com mais detalhes . Mas naDCopção 150, o endereço IP do servidor TFTP, estava ausente nas configurações da área DHCP e a indicação da opção 150 através do netsh não funcionou.
3. Verificação do funcionamento
As configurações principais estão concluídas e podemos prosseguir para a verificação. Indicamos no computador de teste no BIOS para inicializar pela rede e carregamos no menu
Selecionamos a opção «Iniciar o SCCM» e se uma sequência de tarefas for atribuída ao computador, após algum tempo aparecerá uma janela «Assistente de criação de sequência de tarefas» solicitando para inserir a senha

Reiniciamos a máquina, entramos novamente no menu, selecionamos no menu «Antivírus e ferramentas» e inserimos a senha Qwerty
Selecionamos uma opção arbitrária e observamos o carregamento da imagem ISO na memória
Aguardamos e observamos o resultado
Verificação concluída

4. Configurações adicionais e características
Configuração de roteamento
Se o cliente, o servidor DHCP e o servidor que contém o carregador de rede estiverem no mesmo segmento de rede, nenhuma configuração adicional é necessária. No entanto, se o cliente e o servidor DHCP ou o servidor WDS/SCCM estiverem em segmentos de rede diferentes, é recomendável configurar o roteador para redirecionar pacotes de broadcast do cliente para o servidor DHCP ativo e o servidor WDS/SCCM ativo. Na literatura em inglês, esse processo é conhecido como 'atualizações da tabela IP Helper'. Nesse caso, após receber o endereço IP, o cliente conecta-se diretamente ao servidor que contém o carregador de rede via pacotes DHCP para baixar o carregador de rede.
Para roteadores Cisco, utiliza-se o comando
ip helper-address {ip address}
onde {ip address} endereço do servidor DHCP ou do servidor WDS/SCCM. Ao usar esse comando, também são encaminhados os seguintes pacotes UDP de broadcast
Porta
Protocolo
69
TFTP
53
Sistema de Nomes de Domínio (DNS)
37
Serviço de hora
137
Servidor de Nomes NetBIOS
138
Servidor de Datagramas NetBIOS
67
Protocolo Bootstrap (BOOTP)
49
TACACS
Um segundo método para que o cliente obtenha informações sobre o carregador de rede diretamente do servidor DHCP é especificar as opções 60, 66, 67 no servidor DHCP. O uso da opção DHCP 60 com o valor ‘PXEClient’ em todos os escopos DHCP, apenas se o servidor DHCP estiver hospedado no mesmo servidor que os serviços de implantação do Windows. Nesse caso, o cliente se conecta diretamente ao servidor de serviços de implantação do Windows via protocolo TFTP através da porta UDP 4011, e não via DHCP. Esse método não é recomendado pela Microsoft devido a problemas de balanceamento de carga, tratamento inadequado das opções DHCP e das respostas dos serviços de implantação do Windows do lado do cliente. Além disso, o uso apenas das opções 66 e 67 do DHCP permite contornar as opções definidas no servidor de carregamento de rede.
Também é necessário abrir as seguintes portas UDP no servidor de serviços de implantação do Windows
porta 67 (DHCP)
porta 69 (TFTP)
porta 4011 (PXE)
e porta 68, se for necessária autorização DHCP no servidor.
Um detalhamento mais aprofundado do processo de configuração e nuances do redirecionamento entre diferentes servidores WDS é descrito abaixo nas fontes:
Gerenciamento de programas de carregamento de rede
Gerenciamento do servidor
Limites de suporte dos Serviços de Suporte a Produtos Microsoft (PSS) para carregamento de rede do Microsoft Windows Preinstallation Environment (Windows PE) 2.0
Como encaminhar broadcast UDP (BOOTP / DHCP) em Cisco
Características de operação e configuração do DHCP em roteadores Cisco (Parte 2)
Recursos adicionais de carregamento local
Na ambiente de teste, o comando
localboot 0 gera esse erro

De acordo com a documentação do syslinux, ao
localboot 0a inicialização ocorrerá a partir do disco local. E ao especificar o valor específico 0x00, da unidade de disquete primária, ao especificar 0x80 do disco rígido primário. Alterando o comando para
localboot 0x80 o sistema operacional local foi carregado.
Se houver necessidade de inicializar a partir de um disco específico, partição ou comando localboot não funcionar, então pode-se utilizar as funcionalidades do módulo chain.c32. Após seu carregamento, com o comando append especificamos o disco ou partição específica, com numeração dos discos começando em 0 e numeração das partições começando em 1, já que ao especificar partição 0 o MBR é carregado. Ao especificar o disco, a partição pode não ser indicada.
KERNEL chain.c32
APPEND hd0 0ou
KERNEL chain.c32
APPEND hd0 Fontes:
A ordem e descrição dos arquivos de inicialização via PXE
Como já mencionado no início do artigo, o diretório onde os arquivos WDS para inicialização estão localizados é contido no valor do parâmetro RootFolder na chave do registro HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Valor padrão C:RemoteInstall
Aqui, no parâmetro ReadFilter são indicados os diretórios onde o servidor TFTP procura arquivos para inicialização, começando a partir da raiz. Com o SCCM 2012 SP1 instalado, esse parâmetro é
boot*
tmp*
SMSBoot*
SMSTemp*
SMSImages* Se alterar o valor do parâmetro para * todos os arquivos localizados no diretório RemoteInstall.
O papel do ponto de implantação do SCCM 2012 é especificado no parâmetro do registro ProvidersOrder, localizada na chave HKLMSystemCurrentControlSetWDSServerProvidersWDSPXE
Parâmetro ProvidersOrder pode assumir valores
SMSPXE
ponto de serviço PXE no SCCM
SMS.PXE.Filter
Manipulador de scripts PXE do MDT (Microsoft Deployment Toolkit)
BINLSVC
Manipulador padrão do WDS e RIS
Com o SCCM instalado, o parâmetro ProvidersOrder é significativa SMSPXE. Alterando o parâmetro, é possível mudar a ordem de inicialização dos provedores.
No diretório RemoteInstall estão localizados os seguintes arquivos padrão
wdsnbp.com
Programa de inicialização em rede, desenvolvido para serviços de implantação do Windows e que realiza as seguintes tarefas:
1. Detecção de arquitetura.
2. Atendimento a computadores em espera. Quando a política de adição automática está ativada, este programa de inicialização em rede é enviado aos computadores em espera para pausar a inicialização em rede e informar ao servidor a arquitetura do computador cliente.
3. Uso de links de inicialização em rede (incluindo uso dos parâmetros 66 e 67 do protocolo DHCP)
PXEboot.com
(Por padrão) Requer que o usuário pressione a tecla F12 para continuar a inicialização em rede
PXEboot.n12
Não requer que o usuário pressione a tecla F12 e começa imediatamente o carregamento pela rede
AbortPXE.com
Carrega o computador usando o próximo item de inicialização na BIOS sem esperar
Bootmgr.exe
Gerenciador de inicialização do Windows (Bootmgr.exe ou Bootmgr.efi). Carrega o carregador do Windows por meio do firmware a partir de uma partição do disco ou através de uma conexão de rede (em caso de carregamento pela rede)
Bootmgfw.efi
Versão EFI dos programas PXEboot.com e PXEboot.n12 (na EFI, a escolha de carregar ou não o PXE é feita no shell EFI, não pelo programa de carregamento pela rede). O programa Bootmgfw.efi combina as funcionalidades de PXEboot.com, PXEboot.n12, abortpxe.com e bootmgr.exe. Até o momento, ele existe apenas para as arquiteturas x64 e Itanium
Default.bcd
Armazenamento de dados de configuração de inicialização (BCD), formato REGF, pode ser carregado no REGEDIT, substitui o arquivo texto Boot.ini
O carregamento ocorre na seguinte ordem de acordo com a descrição acima
1. Carrega-se wdsnbp.com.
2. Em seguida, carrega-se pxeboot.com da arquitetura correspondente
3. PXEBoot.com carrega bootmgr.exe e o armazenamento de dados de configuração de inicialização BCD
4. Bootmgr.exe lê as entradas do sistema operacional do armazenamento de dados de configuração de inicialização BCD e carrega o arquivo Boot.sdi e a imagem do Windows PE (boot.wim)
5. Bootmgr.exe inicia o carregamento do Windows PE, chamando Winload.exe na imagem do Windows PE
Se houver RemoteInstall pastas
Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend a sua presença significa que antes da adição do papel de ponto de distribuição no SCCM 2012 (pontos de serviço PXE no SCCM 2007) houve alguma ação de configuração dos Serviços de Implantação do Windows (WDS) instalados, o que resultou na criação automática dessas pastas.
Para o papel de ponto de distribuição (ponto de serviço PXE no SCCM 2007), apenas as seguintes pastas são necessárias
SMSBoot
SMSIMAGES
SMSTemp
StoresIsso não significa que o SCCM está instalado de forma incorreta, mas pode indicar uma possível fonte de erros.
A resolução detalhada de vários problemas relacionados ao WDS, SCCM e PXE é abordada no artigo
Resultado
Na infraestrutura de TI gerenciada pelo System Center Configuration Manager, uma nova ferramenta foi adicionada para os administradores de sistema em campo.
Lista de links para imagens ISO (Clique para exibir)
Obrigado pela atenção!

Fonte: habr.com
