execution
environment)是由intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,pxe
client在网卡的rom中,当计算机引导时,bios把pxe
client调入内存执行,并显示出命令菜单,经用户选择后,pxe
client将放置在远端的 *** 作系统通过网络下载到本地运行。
pxe协议的成功运行需要解决以下两个问题:
既然是通过网络传输,那么计算机在启动时,它的ip地址由谁来配置;
通过什么协议下载linux内核和根文件系统
对于第一个问题,可以通过dhcp
server解决,由dhcp
server来给pxe
client分配一个ip地址,dhcp
server是用来给dhcp
client动态分配ip地址的协议,不过由于这里是给pxe
client分配ip地址,所以在配置dhcp
server时,需要增加相应的pxe特有配置。
至于第二个问题,在pxe
client所在的rom中,已经存在了tftp
client。pxe
client使用tftp
client,通过tftp协议到tftp
server上下载所需的文件。
这样,pxe协议运行的条件就具备了,配置网络
开始前,你需要先设置 PXE 服务器使用静态 IP。在你的系统中要使用静态 IP 地址,需要编辑 “/etc/network/interfaces” 文件。
打开 “/etc/network/interfaces” 文件
sudo nano /etc/network/interfaces
作如下修改:
# 回环网络接口
auto lo
iface lo inet loopback
# 主网络接口
auto eth0
iface eth0 inet static
address 192168120
netmask 2552552550
gateway 19216811
dns-nameservers 8888
保存文件并退出。这将设置其 IP 地址为“192168120”。然后重新启动网络服务。
sudo /etc/initd/networking restart
安装 DHCP, TFTP 和 NFS:
DHCP,TFTP 和 NFS 是 PXE 服务器的重要组成部分。首先,需要更新你的系统并安装所有需要的软件包。
为此,运行以下命令:
sudo apt-get update
sudo apt-get install isc-dhcp-Server inetutils-inetd tftpd-hpa syslinux nfs-kernel-Server
配置 DHCP 服务:
DHCP 代表动态主机配置协议Dynamic Host Configuration Protocol,它主要用于动态分配网络配置参数,如用于接口和服务的 IP 地址。在 PXE 环境中,DHCP 服务器允许客户端请求并自动获得一个 IP 地址来访问网络。
1、编辑 “/etc/default/dhcp3-server” 文件
sudo nano /etc/default/dhcp3-server
作如下修改:
INTERFACES="eth0"
保存 (Ctrl + o) 并退出 (Ctrl + x) 文件
2、编辑 “/etc/dhcp3/dhcpdconf” 文件:
sudo nano /etc/dhcp/dhcpdconf
作如下修改:
default-lease-time 600;
max-lease-time 7200;
subnet 19216810 netmask 2552552550 {
range 192168121 1921681240;
option subnet-mask 2552552550;
option routers 192168120;
option broadcast-address 1921681255;
filename "pxelinux0";
next-Server 192168120;
}
保存文件并退出。
3、启动 DHCP 服务
sudo /etc/initd/isc-dhcp-server start
配置 TFTP 服务器:
TFTP 是一种文件传输协议,类似于 FTP,但它不用进行用户认证也不能列出目录。TFTP 服务器总是监听网络上的 PXE 客户端的请求。当它检测到网络中有 PXE 客户端请求 PXE 服务时,它将提供包含引导菜单的网络数据包。
1、配置 TFTP 时,需要编辑 “/etc/inetdconf” 文件
sudo nano /etc/inetdconf
作如下修改:
tftp dgram udp wait root /usr/sbin/intftpd /usr/sbin/intftpd -s /var/lib/tftpboot
保存文件并退出。
2、编辑 “/etc/default/tftpd-hpa” 文件。
sudo nano /etc/default/tftpd-hpa
作如下修改:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="[:0000:]:69"
TFTP_OPTIONS="--secure"
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
保存文件并退出。
3、 使用 xinetd 让 boot 服务在每次系统开机时自动启动,并启动tftpd服务。
sudo update-inetd --enable BOOT
sudo service tftpd-hpa start
4、检查状态。
sudo netstat -lu
它将如下所示:
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 :tftp :
配置 PXE 启动文件
现在,你需要将 PXE 引导文件 “pxelinux0” 放在 TFTP 根目录下。为 TFTP 创建目录结构,并从 “/usr/lib/syslinux/” 复制 syslinux 提供的所有引导程序文件到 “/var/lib/tftpboot/” 下, *** 作如下:
sudo mkdir /var/lib/tftpboot
sudo mkdir /var/lib/tftpboot/pxelinuxcfg
sudo mkdir -p /var/lib/tftpboot/Ubuntu/1404/amd64/
sudo cp /usr/lib/syslinux/vesamenuc32 /var/lib/tftpboot/
sudo cp /usr/lib/syslinux/pxelinux0 /var/lib/tftpboot/
设置 PXELINUX 配置文件
PXE 配置文件定义了 PXE 客户端启动时显示的菜单,它能引导并与 TFTP 服务器关联。默认情况下,当一个 PXE 客户端启动时,它会使用自己的 MAC 地址指定要读取的配置文件,所以我们需要创建一个包含可引导内核列表的默认文件。
编辑 PXE 服务器配置文件,使用有效的安装选项。
编辑 “/var/lib/tftpboot/pxelinuxcfg/default”:
sudo nano /var/lib/tftpboot/pxelinuxcfg/default
作如下修改:
DEFAULT vesamenuc32
TIMEOUT 100
PROMPT 0
MENU INCLUDE pxelinuxcfg/PXEconf
NOESCAPE 1
LABEL Try Ubuntu 1404 Desktop
MENU LABEL Try Ubuntu 1404 Desktop
kernel Ubuntu/vmlinuz
append boot=casper netboot=nfs nfsroot=192168120:/var/lib/tftpboot/Ubuntu/1404/amd64
initrd=Ubuntu/initrdlz quiet splash
ENDTEXT
LABEL Install Ubuntu 1404 Desktop
MENU LABEL Install Ubuntu 1404 Desktop
kernel Ubuntu/vmlinuz
append boot=casper automatic-ubiquity netboot=nfs nfsroot=192168120:/var/lib/tftpboot/Ubuntu/1404/amd64
initrd=Ubuntu/initrdlz quiet splash
ENDTEXT
保存文件并退出。
编辑 “/var/lib/tftpboot/pxelinuxcfg/pxeconf” 文件。
sudo nano /var/lib/tftpboot/pxelinuxcfg/pxeconf
作如下修改:
MENU TITLE PXE Server
NOESCAPE 1
ALLOWOPTIONS 1
PROMPT 0
MENU WIDTH 80
MENU ROWS 14
MENU TABMSGROW 24
MENU MARGIN 10
MENU COLOR border 30;44 #ffffffff #00000000 std
保存文件并退出。
为 PXE 服务器添加 Ubuntu 1404 桌面启动镜像
对于这一步需要 Ubuntu 内核和 initrd 文件。要获得这些文件,你需要 Ubuntu 1404 桌面 ISO 镜像。你可以通过以下命令下载 Ubuntu 1404 ISO 镜像到 /mnt 目录:
sudo cd /mnt
sudo wget >PXE就是通过有线局域网中的一台电脑启动另一台电脑。实现方法是在一台电脑上启动tftp服务,例如可以利用tftpd32exe,另一台电脑在bios中设置好局域网启动,就可以直接从服务器启动电脑了,可以进入dos或者winpe。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)