mah*_*ood 4 networking virtualbox pxe-boot
我有一个 linux 来宾,那是我的服务器。我还创建了另一个来宾作为没有磁盘的客户端。
我想知道,哪种网络类型和适配器是正确的?NAT 还是内部网络?AMD 还是 Intel 芯片?
根据手册,
PXE booting is now supported in NAT mode. The NAT DHCP server provides a boot
file name of the form vmname.pxe if the directory TFTP exists in the directory
where the user's VirtualBox.xml file is kept. It is the responsibility of the
user to provide vmname.pxe
Run Code Online (Sandbox Code Playgroud)
vmname.pxe 的内容是什么?它是一个空文件?
Virtualbox 在 Windows 7 上运行,我已经安装了 One linux(类似于 redhat 和 centos 6 的科学 linux 6.3)作为服务器,另一个无盘 linux 作为客户端。
在服务器上,我已经安装了 tftp 相关文件。
# ls /var/lib/tftpboot/ -R
/var/lib/tftpboot/:
menu.c32 pxelinux.0 pxelinux.cfg sl6
/var/lib/tftpboot/pxelinux.cfg:
default
/var/lib/tftpboot/sl6:
initrd.img vmlinuz
# cat /var/lib/tftpboot/pxelinux.cfg/default
timeout 100
default menu.c32
menu title ########## PXE Boot Menu ##########
label 1
menu label ^1) Install Scientific Linux 6
kernel sl6/vmlinuz
append initrd=sl6/initrd.img method=http://10.0.2.51/sl6 devfs=nomount
label 2
menu label ^2) Boot from local drive
localboot
Run Code Online (Sandbox Code Playgroud)
哦,手册中的“PXE booting with NAT”部分已经说过,但不是很清楚。
"6.3.2. PXE 引导与 NAT PXE 引导现在支持在 NAT 模式下。如果用户的 VirtualBox.xml 文件所在的目录中存在 TFTP 目录,则NAT DHCP 服务器提供形式为vmname.pxe的引导文件名. 提供 vmname.pxe 是用户的责任。”
--这里,手册告诉我们谁提供了引导文件:NAT DHCP服务器。
好,我们来问个问题:NAT DHCP 服务器在哪里?
--在主机上,它集成在VirtualBox软件中。
(6.3. 网络地址转换(NAT):虚拟机从集成到 VirtualBox 的 DHCP 服务器接收其在专用网络上的网络地址和配置。)
那么,VirtualBox 会在哪里搜索配置文件呢?当然在主机上。
这意味着 virtualbox 将尝试在主机上搜索“vmname.pxe”。不在你的科学 Linux 服务器上。
并且手册告诉我们应该在VirtualBox.xml 之外放一个“tftp”目录。
在 Windows 7 上,VirtualBox.xml 位于 C:\Users\.VirtualBox\ 中。
(VirtualBox 5.1.14版本,手册没有说4.0之后默认配置位置有变化)
当我阅读该部分时,我试图通过 PXE 引导安装一个 Debian 系统。所以我猜测“vmname.pxe”是文件 pxelinux.0 并重命名。
我试了几次,发现“vmname.pxe”应该是“ <vmname>.pxe
”,<vmname>
你的虚拟机的名字在哪里。
最后,我使用 NAT 成功启动 PXE 是这样的:
在主机上(我的主机也是 Windows 7),目录结构是:
%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
Run Code Online (Sandbox Code Playgroud)
在 VirtualBox 来宾上,我的网络设置为“NAT”模式,网卡为“Intel PRO/1000MT 桌面(82640EM)”
我的 VirtualBox 版本是 5.1.14。
不需要tftp-hpa安装,不需要第二个界面,也不需要“不要使用Intel卡”,而且是使用内置的PXE功能?
无盘 PXE 启动应该是类似的。
所以问题是手册完全是一团糟,在Virtualbox中使用NAT进行PXE启动实际上非常简单。关键是,PXE 服务器是您的主机 virtualbox 软件。
关于 tftp 目录结构的更新:(@codeshot 在评论中提出的问题)tftp 引导文件是从(例如 debian sid)下载的:
https://<debian-mirror>/debian/dists/sid/main/installer-<arch>/current/images/netboot/netboot.tar.gz
(如果您不使用 sid,请更改它)。Ubuntu 类似。
tar xvf netboot.tar.gz 并将目录重命名为“tftp”并移动到适当的位置作为 VirtualBox 恶魔。
如果这不起作用,则使用 Cygwin 手动将软链接更改为硬链接,或者只是简单地复制并重命名文件。
更新:
\n\n澄清后,根本不使用 VirtualBox 的内置 PXE 功能似乎是正确的方法。相反,为服务器和客户端分配具有“仅主机”或“内部”网络的辅助 NIC,并绑定 DHCP 服务器以在第二个接口上侦听。不要将 Intel 卡用于第二个接口:PXE 在内部网络模式下引导 Virtualbox 来宾?
\n\nVirtualBox NAT 和 PXE 的回答:
\n\nvmname.pxe
包含虚拟机下载后运行的代码,即所谓的 NBP(网络引导程序)
有关 PXE 的更多信息,请参阅维基百科。
\n\n我引用一个使用 PXELinux 的示例:
\n\n安装tftp-hpa
。(你不需要\xe2\x80\x99不需要守护进程。只需要程序)
设置 pxe 目录根。
\n\nmkdir $HOME/.VirtualBox/TFTP\nmkdir $HOME/.VirtualBox/TFTP/pxelinux.cfg\n
Run Code Online (Sandbox Code Playgroud)复制pxelinux.0
到$HOME/.VirtualBox/TFTP
并建立指向pxelinux.0
命名的符号链接<guest-vmname>.pxe
。
将内核和 initrd 复制到$HOME/.VirtualBox/TFTP
编辑$HOME/.VirtualBox/TFTP/pxelinux.cfg/default
,示例:
LABEL linux\nKERNEL vmlinuz\nAPPEND root=/dev/sdxY\n
Run Code Online (Sandbox Code Playgroud)资料来源:http ://thegnar.org/sync/?p=68
\n 归档时间: |
|
查看次数: |
36935 次 |
最近记录: |