Como posso instalar a máquina virtual Ubuntu usando o servidor de inicialização PXE?
Preciso de todos os detalhes das configurações e o que alterar nos arquivos de configuração.
fonte
Como posso instalar a máquina virtual Ubuntu usando o servidor de inicialização PXE?
Preciso de todos os detalhes das configurações e o que alterar nos arquivos de configuração.
Veja Wikipedia: PXE
Este é o meu entendimento!
O PXE (lado do cliente) transmite uma solicitação para um IP. Resposta do servidor DHCP com as informações necessárias: IP, IP do próximo servidor (IP do servidor TFTP), pxelinux.0
(nome do arquivo do carregador de inicialização PXE), ... etc
O PXE (lado do cliente) solicita o pxelinux.0
arquivo do servidor TFTP, carrega-o na RAM e passa o controle para pxelinux.0
.
pxelinux.0
obtém o arquivo de configuração de inicialização do servidor TFTP com o nome como:
(se não existir, tenta com o próximo)
default
fileEscolha do usuário ou entrada de menu padrão. pxelinux.0
solicita o kernel correspondente e o RAMDisk do servidor TFTP e os carrega na RAM.
Em seguida, passa os parâmetros de inicialização e o controle para o kernel carregado.
O kernel carrega as partes restantes do servidor TFTP ou de qualquer outro servidor de protocolo, dependendo de seus recursos / propriedades.
Existem muitas maneiras de configurar o servidor PXE, essa é uma delas.
Essas instruções foram testadas no Ubuntu 9.10 e Ubuntu 10.04 em uma máquina real. Eles ainda devem ser válidos, com poucas alterações. (Atualizado e testado para o Ubuntu 14.04 no VirtualBox, verifique as revisões de edição para versões antigas)
Meu objetivo era o PartedMagic 4.5 , que deve ser semelhante ao Ubuntu ou a qualquer distribuição Linux.
Instale pacotes DHCP e TFTP
sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
Configuração DHCP
Editar /etc/default/isc-dhcp-server
, interface Ethernet para serviço DHCP
INTERFACES="eth0"
Editar /etc/dhcp/dhcpd.conf
ou /etc/ltsp/dhcpd.conf
existir, configuração do serviço DHCP
Configurações específicas do PXE: filename
&next-server
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.100;
option subnet-mask 255.255.255.0;
option routers 192.168.10.123;
option broadcast-address 192.168.10.255;
filename "pxelinux.0";
next-server 192.168.10.123;
}
Configure um IP estático para eth0
, 192.168.10.123
no meu caso, usar o gerenciador de rede para a edição Desktop ou /etc/network/interfaces
Server.
auto eth0
iface eth0 inet static
address 192.168.10.123
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
Reinicialize a interface de rede:
sudo ifdown eth0
sudo ifup eth0
Reinicie o serviço
sudo service isc-dhcp-server restart
Verificar status
netstat -lu
Resultado
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:bootpc *:*
Configuração TFTP
Edite /etc/inetd.conf
, remova #<off>#
do início da tftp
linha ou adicione se não estiver sob #:BOOT:
comentário. (Ignore isso com systemd, 15.10 e posterior)
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Ative o serviço de inicialização para inetd
sudo update-inetd --enable BOOT
Começar serviço
sudo service openbsd-inetd restart
sudo service tftpd-hpa restart
Verificar status
netstat -lu
Resultado
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:tftp *:*
Configuração de arquivos de inicialização PXE
Descompacte pmagic-pxe-4.5.zip
. Se pxelinux.0
não houver, obtenha-o do sysliux-common
pacote instalado em /usr/lib/syslinux/pxelinux.0
, Syslinux Project ou Ubuntu Netboot Image .
Coloque-os em estrutura semelhante.
/var/lib/tftpboot/
|-- pxelinux.0
|-- pxelinux.cfg/
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
Edite /var/lib/tftpboot/pxelinux.cfg/default
, se necessário, caminhos de exemplo: pmagic/bzimage
&pmagic/initramfs
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
Configurar permissões corretas
sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
Altere a ordem de inicialização do BIOS por uma vez usando F9ou F12, para configuração permanente da configuração do BIOS DEL, F2ou F12. (Dependendo da marca da máquina)
Ir para o topo: [PXE | NIC | LAN | Ethernet | Network]
.
inetutils-inetd
ou xinetd
pode ser usado em vez de openbsd-inetd
, algumas inetd
etapas são diferentes.
O diretório raiz TFTP pode ser alterado de /etc/default/tftpd-hpa
. Lembre-se de atualizar /etc/inetd.conf
também.
Muitas distribuições suportam o carregamento do RAMDisk através de vários protocolos: SSH (SFTP), SMB, NFS ... Exemplo: Ubuntu suporta NFS.
Algumas placas de rede antigas não suportam PXE, o iPXE (por exemplo, gPXE ou Etherboot ) pode ser usado em disquete, unidade USB, disco rígido ( /boot
partição) ou até mesmo o flash na ROM (apenas poucas placas de rede suportadas). O GRUB2 possui um módulo para suportar a inicialização usando o PXE.
Veja também Wikipedia: gPXE e ROM-O-matic .
O Ubuntu Netboot Image de cdimage.ubuntu.com/netboot/ fornece a instalação do Ubuntu da rede e solicitará o download de todos os pacotes necessários do espelho oficial ou local, se você tiver um.
A maioria dos usuários está procurando inicializar imagens ao vivo através do PXE. Esta pergunta foi apenas para configurar um servidor PXE. Veja Ubuntu Wiki: Instalação - LocalNet
O menu PXE pode ser personalizado, o melhor modelo para aprender é o Ubuntu NetBoot . Ver imagem Pxeboot Multiple
memdisk
pode ser usado para carregar diretamente as imagens ISO ou de disquete através do PXE. syslinux-common
pacote tem uma cópia. O cliente deve ter RAM suficiente para armazenar a imagem mais uma parte para executar o SO carregado.
Exemplo de configuração:
/var/lib/tftpboot/
|-- FDSTD.144
|-- memdisk
|-- pxelinux.0
|-- slitaz-cooking.iso
|-- pxelinux.cfg
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
/pxelinux.cfg/default
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
LABEL slitaz
MENU LABEL ^Slitaz.iso
TEXT HELP
Testing boot from iso.
ENDTEXT
KERNEL memdisk
APPEND initrd=slitaz-cooking.iso
LABEL freedos_std
MENU LABEL ^FreeDOS STD
TEXT HELP
Testing boot from Floppy IMG.
ENDTEXT
KERNEL memdisk
APPEND initrd=FDSTD.144
Os pacotes PartedMagic foram retirados do site oficial depois que o desenvolvedor original decidiu torná-lo comercial. Alguns lançamentos podem ser encontrados através da rede torrent. Minha resposta aqui é um resumo da primeira instalação do PXE que funcionou para mim. O Ubuntu Netboot Image deve funcionar com as mesmas instruções.
netstat -lu | grep tftp
mostra no modo de escuta. A pasta / tftpboot é 777, no entanto, se eu tentartftp> get pxelinux.0
fazê - lo no cliente, sempre recebo um tftp: pxelinux.0: erro de permissão negada . Você tem uma ideia para depurar? Desde já, obrigado./var/lib/tftpboot/
com 755 (padrão) deve estar ok. Verifique sepxelinux.0
possui 644 ou executesudo chmod -R +r /var/lib/tftpboot/
para tornar todo o seu conteúdo legível.filename "pxelinux.0";
... nenhum comentário; P ... obrigado pela sua resposta e por esta ótima (e completa) resposta. Cheers