Ah, a seção "PXE inicializando com NAT" no manual disse isso, mas não muito clara.
"6.3.2. Inicialização PXE com NAT
Inicialização PXE agora é suportada no modo NAT. O servidor DHCP NAT fornece um nome de arquivo de inicialização no formato vmname.pxe se o diretório TFTP existir no diretório onde o arquivo VirtualBox.xml do usuário é mantido. É de responsabilidade do usuário fornecer vmname.pxe. "
- Aqui, o manual diz-nos quem fornece o arquivo de inicialização: servidor DHCP NAT.
OK, vamos fazer uma pergunta: onde está o servidor DHCP NAT?
- Na máquina host, ele é integrado ao software VirtualBox.
(6.3. Tradução de Endereço de Rede (NAT): A máquina virtual recebe seu endereço de rede e configuração na rede privada de um servidor DHCP integrado ao VirtualBox.)
Então, onde o VirtualBox pesquisará o arquivo de configuração? Claro que na máquina host.
Isso significa que o virtualbox tentará pesquisar o "vmname.pxe" na máquina host. Não no seu servidor linux científico.
E o manual nos diz que devemos colocar um diretório "tftp" além do VirtualBox.xml.
No windows 7, o VirtualBox.xml está em C: \ Users \ .VirtualBox \.
(VirtualBox versão 5.1.14, o manual não diz que o local de configuração padrão é alterado após o 4.0)
Quando eu li a seção, eu estava tentando instalar o PXE em um sistema Debian. Então eu acho que "vmname.pxe" é o arquivo pxelinux.0 e renomeado.
Eu tentei várias vezes e descobri que "vmname.pxe" deveria ser " <vmname>.pxe
", em que <vmname>
é o nome da sua máquina virtual.
Por fim, minha inicialização bem-sucedida do PXE com o NAT é esta:
No host (meu host também é o windows 7), a estrutura do diretório é:
%USERPROFILE% (mostly it is C:\Users\<username>\)
|-.VirtualBox
|-VirtualBox.xml
|-TFTP
| |-pxelinux.cfg
| | |-default-> ..\debian-installer\amd64\boot-screens\syslinux.cfg
| |-DebianSid.pxe->pxelinux.0 (DebianSid is my virtual machine's name)
| |-pxelinux.0
| |-ldlinux.c32
| |-version.info
| |-debian-installer\
|-other files
No VirtualBox guest, minha configuração de rede é no modo "NAT", a placa de rede é "Intel PRO / 1000MT desktop (82640EM)"
Minha versão do VirtualBox é 5.1.14.
Não precisa de instalação do tftp-hpa, não precisa da segunda interface nem "Não use placas Intel", e está usando o recurso PXE integrado。
Uma inicialização PXE sem disco deve ser semelhante.
Então o problema é que o manual é totalmente uma bagunça, a inicialização do PXE com NAT no Virtualbox é realmente muito simples. O ponto é que o servidor PXE é o seu software de host virtualbox.
Atualize sobre a estrutura de diretórios do tftp: (question by @codeshot in comment)
O arquivo de inicialização do tftp é baixado de (sid do debian por exemplo):
https://<debian-mirror>/debian/dists/sid/main/installer-<arch>/current/images/netboot/netboot.tar.gz
(Se você não estiver usando sid, mude-o). O Ubuntu é semelhante.
tar xvf netboot.tar.gz e renomeie o diretório para "tftp" e mova para o local apropriado como o VirtualBox demonds.
Se isto não estiver funcionando, altere o softlink para hardlink manualmente com o Cygwin, ou simplesmente copie e renomeie os arquivos.