![Ubuntu Server VM 中的 PXE 启动服务器安装步骤](https://linux22.com/image/971738/Ubuntu%20Server%20VM%20%E4%B8%AD%E7%9A%84%20PXE%20%E5%90%AF%E5%8A%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85%E6%AD%A5%E9%AA%A4.png)
如何使用 PXE 启动服务器安装 Ubuntu 虚拟机?
我需要所有的配置细节以及配置文件中需要更改的内容。
答案1
PXE(预启动执行环境,发音为 pixie)
怎么运行的?
这是我的理解!
- 客户端计算机已启动。BIOS 扫描设备。然后尝试从所需设备(如启动顺序/序列. 它从网卡 ROM 加载 PXE。
PXE(客户端)广播 IP 请求。DHCP 服务器回复所需信息:IP、下一个服务器 IP(TFTP 服务器 IP)、
pxelinux.0
(PXE 引导加载程序文件名)...等PXE(客户端)
pxelinux.0
从 TFTP 服务器请求文件,将其加载到 RAM 然后将控制权传递给pxelinux.0
。pxelinux.0
从 TFTP 服务器获取名称为:的启动配置文件
(如果不存在则尝试下一个)- 唯一唯一标识符
- 苹果
- 大写十六进制中的 IP
- IP 的一部分
- 拖放到
default
文件
用户选择或默认菜单项。
pxelinux.0
从 TFTP 服务器请求相应的内核和 RAMDisk 并将它们加载到 RAM 中。然后将启动参数和控制传递给加载的内核。
内核根据其功能/属性从 TFTP 服务器或任何其他协议服务器加载剩余部分。
服务器设置
设置 PXE 服务器的方法有很多,这是其中之一。
这些说明已在Ubuntu 9.10&Ubuntu 10.04在真实机器上。它们应该仍然有效,只需进行少量更改即可。(针对 VirtualBox 上的 Ubuntu 14.04 进行了更新和测试,检查旧版本的编辑修订)
我的目标是PartedMagic 4.5,它应该与 Ubuntu 或任何 Linux 发行版类似。
安装 DHCP 和 TFTP 包
sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
DHCP 设置
编辑
/etc/default/isc-dhcp-server
,DHCP 服务的以太网接口INTERFACES="eth0"
编辑
/etc/dhcp/dhcpd.conf
或/etc/ltsp/dhcpd.conf
它确实存在,DHCP 服务配置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; }
设置一个静态 IP
eth0
,192.168.10.123
在我的情况下使用桌面版或/etc/network/interfaces
服务器版的网络管理器。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
重新初始化网络接口:
sudo ifdown eth0 sudo ifup eth0
重新启动服务
sudo service isc-dhcp-server restart
检查状态
netstat -lu
输出
Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:bootpc *:*
TFTP 设置
编辑
/etc/inetd.conf
,#<off>#
从行首删除tftp
,或者如果注释下没有,则添加#:BOOT:
。(使用 systemd 15.10 及更高版本可跳过此步骤)tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
启用启动服务
inetd
sudo update-inetd --enable BOOT
启动服务
sudo service openbsd-inetd restart sudo service tftpd-hpa restart
检查状态
netstat -lu
输出
Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:tftp *:*
PXE 启动文件设置
解压
pmagic-pxe-4.5.zip
。如果pxelinux.0
没有,请从sysliux-common
的安装包中获取/usr/lib/syslinux/pxelinux.0
,Syslinux 项目或者Ubuntu 网络启动映像。将它们置于相似的结构中。
/var/lib/tftpboot/ |-- pxelinux.0 |-- pxelinux.cfg/ | `-- default `-- pmagic/ |-- bzimage `-- initramfs
编辑
/var/lib/tftpboot/pxelinux.cfg/default
,如果需要示例路径: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
设置正确的权限
sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \; sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
客户端设置
F9使用或一次性更改 BIOS 启动顺序F12,从 BIOS 配置中进行永久设置DEL,F2或F12。(取决于机器品牌)
移至顶部:[PXE | NIC | LAN | Ethernet | Network]
。
笔记
inetutils-inetd
或xinetd
可以代替openbsd-inetd
,有些inetd
步骤有所不同。TFTP 根目录可以从 更改
/etc/default/tftpd-hpa
。记得也更新/etc/inetd.conf
。许多发行版支持通过多种协议加载 RAMDisk:SSH(SFTP)、SMB、NFS...例如 Ubuntu 支持 NFS。
有些老网卡不支持PXE,远程控制(例如 gPXE 或 Etherboot) 都可以在软盘、USB 驱动器、硬盘(
/boot
分区)上使用,甚至可以将其刷新到 ROM(仅支持少数 NIC)。GRUB2 具有支持使用 PXE 启动的模块。也可以看看维基百科:gPXE和ROM-O-matic。
Ubuntu 网络启动映像来自cdimage.ubuntu.com/netboot/ 提供从网络安装 Ubuntu,它会要求从官方镜像或本地镜像(如果有)下载所有必需的软件包。
大多数用户都希望通过 PXE 启动实时映像。这个问题只是设置 PXE 服务器。请参阅Ubuntu Wiki:安装 - LocalNet
PXE 菜单可以自定义,最好的学习模板是Ubuntu 网络启动。 看Pxeboot 多映像
memdisk
可用于通过 PXE 直接加载 ISO 或软盘映像。syslinux-common
软件包有一份副本。客户端应具有足够的 RAM 来保存映像,并具有一部分用于运行已加载的操作系统。配置示例:
/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
在原始开发人员决定将其商业化后,PartedMagic 软件包从官方网站上撤下,一些版本可以通过 torrent 网络找到。我的答案是第一次为我工作的 PXE 设置的简历。Ubuntu 网络启动映像应按照相同的指令工作。