![通过 PXE 的 Ubuntu 安装程序看不到网络适配器 => 无法下载预置](https://linux22.com/image/588729/%E9%80%9A%E8%BF%87%20PXE%20%E7%9A%84%20Ubuntu%20%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%E7%9C%8B%E4%B8%8D%E5%88%B0%E7%BD%91%E7%BB%9C%E9%80%82%E9%85%8D%E5%99%A8%20%3D%3E%20%E6%97%A0%E6%B3%95%E4%B8%8B%E8%BD%BD%E9%A2%84%E7%BD%AE.png)
我正在通过 PXE 从另一个 virtualbox VM(使用 cobbler)启动一个 virtualbox VM。两台机器都有 2 个适配器:1) 外部网络和 2) 仅主机网络。
“客户端”虚拟机通过 PXE 成功启动到安装程序(使用仅主机网络适配器),但安装程序甚至没有尝试下载预置文件(根据服务器日志)或获取 IP 地址(再次根据服务器日志 - 这做显示之前的TFTP请求)。
我进入 shell 并看到:
- “ip a”仅显示环回适配器
- 读取 dmesg 显示显然没有找到适配器
- lsmod 似乎也没有显示网络适配器模块的迹象
- 串行通信做显示两个网络控制器。
- /lib/modules/...../kernel/drivers/net 中基本上没有驱动程序(可能这就是原因?)
如何让安装程序看到我的网络适配器,或者至少如何找到此问题的原因?
这是 PXE 菜单项:
default linux
prompt 0
timeout 1
label linux
kernel /images/ubuntu-10.04-server-x86_64/vmlinuz
ipappend 2
append initrd=/images/ubuntu-10.04-server-x86_64/initrd.gz locale= interface=auto text root=/dev/sda1 priority=critical auto url=http://192.168.56.101/cblr/svc/op/ks/system/pierrot hostname=pierrot domain=local.lan suite=lucid
答案1
好的,我明白了。
事实证明,我使用的 Ubuntu ISO 中有两个 initrd 映像:
[jkff@localhost tmp]$ find /mnt/ubuntu-server/ -name 'initrd.gz'
/mnt/ubuntu-server/install/initrd.gz
/mnt/ubuntu-server/install/netboot/ubuntu-installer/amd64/initrd.gz
第一个不包括网络驱动程序。第二个包括。Cobbler 选择了第一个(因为这),因此,如果没有网络驱动程序,它当然无法找到网卡并下载预置。
现在我必须想办法让 Cobbler 使用正确的 initrd...
答案2
我通过编辑发行版来指向正确的 initrd,从而使 cobbler 使用正确的 initrd,在我的情况下,它位于 /var/www/cobbler/ks_mirror/ubuntu-12.04.1-server-amd64-x86_64/install/netboot/ubuntu-installer/amd64/initrd.gz