Ubuntu Server VM中的PXE引导服务器安装步骤
如何使用PXE启动服务器安装Ubuntu虚拟机?
我需要所有配置详细信息以及配置文件中要更改的内容。
PXE(Preboot eXecution Environment,发音为pixie)
见维基百科:PXE
这个怎么运作?
这是我的理解!
- 客户端计算机已启动。 BIOS扫描设备。 然后尝试从引导顺序/序列中列出的所需设备加载引导加载程序。 它从网卡ROM加载PXE。
-
PXE(客户端)广播IP请求。 DHCP服务器回复所需信息:IP,下一个服务器IP(TFTP服务器IP),
pxelinux.0
(PXE引导程序加载程序文件名),…等 -
PXE(客户端)从TFTP服务器请求
pxelinux.0
文件,将其加载到RAM然后将控制权传递给pxelinux.0
。pxelinux.0
从TFTP服务器获取引导配置文件,名称为:
(如果它不存在则尝试下一个)- UUID
- 苹果电脑
- Capital Hex中的IP
- IP的一部分
- 丢弃到
default
文件
-
用户选择或默认菜单条目。
pxelinux.0
从TFTP服务器请求相应的内核和RAMDisk并将它们加载到RAM。然后将引导参数和控制传递给加载的内核。
-
内核根据其function/属性从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; }
-
在我的案例中使用适用于桌面版的网络管理器或服务器版的
/etc/network/interfaces
为eth0
设置静态IP。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
,从tftp
行的开头删除#
,如果不在# #:BOOT:
comment下则添加#: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
,请从/usr/lib/syslinux/pxelinux.0
Project或Ubuntu Netboot Image中安装的sysliux-common
软件包中获取。把它们放在类似的结构中。
/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或F12将 BIOS启动顺序更改一次,以便从BIOS配置DEL , F2或F12进行永久设置。 (取决于机器品牌)
移到顶部: [PXE | NIC | LAN | Ethernet | Network]
[PXE | NIC | LAN | Ethernet | Network]
[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,可以使用iPXE ( 例如gPXE或Etherboot ),无论是在软盘,USB驱动器,硬盘(
/boot
分区)上,还是将其闪存到ROM(仅支持少量NIC)。 GRUB2具有支持使用PXE启动的模块。另见维基百科:gPXE和ROM-O-matic 。
-
来自cdimage.ubuntu.com/netboot/的 Ubuntu Netboot映像提供从网络安装Ubuntu,它会要求从官方镜像或本地镜像下载所有必需的软件包(如果有的话)。
大多数用户都在寻找通过PXE启动实时图像。 这个问题只是为了设置PXE服务器。 请参阅Ubuntu Wiki:安装 – LocalNet
-
PXE菜单可以自定义,最好的模板可以学习Ubuntu NetBoot 。 请参阅Pxeboot多个映像
-
memdisk
可用于通过PXE直接加载ISO或软盘映像。syslinux-common
包有一个副本。 客户端应该有足够的RAM来保存图像以及运行加载的OS的部分。配置示例:
/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 Netboot Image应该使用相同的指令。