开启填坑之旅,综合所有文章搞一夜。。。。
sudo vim /etc/network/interfaces
添加
加上#主网络接口
auto eth0
iface eth0 inet static
address 192.168.99.8
netmask 255.255.255.0
gateway 192.168.99.1
dns-nameservers 8.8.8.8
执行
sudo /etc/init.d/networking restart 失败就重启
DHCP,TFTP 和 NFS 是 PXE 服务器的重要组成部分。首先,需要更新你的系统并安装所有需要的软件包。
为此,运行以下命令:
sudoapt-get update
sudo apt-get install isc-dhcp-server inetutils-inetd tftpd-hpa syslinux nfs-kernel-server -y
DHCP 代表动态主机配置协议(Dynamic Host Configuration Protocol),它主要用于动态分配网络配置参数,如用于接口和服务的 IP 地址。在 PXE 环境中,DHCP 服务器允许客户端请求并自动获得一个 IP 地址来访问网络。
sudo vim /etc/default/dhcp3-server
作如下修改:
INTERFACES="eth0"
保存 并退出 文件.
sudonano/etc/dhcp/dhcpd.conf
作如下修改:
default-lease-time600;
max-lease-time7200;
subnet 192.168.1.0 netmask 255.255.255.0{
range 192.168.1.21192.168.1.240;
option subnet-mask 255.255.255.0;
option routers 192.168.1.20;
option broadcast-address 192.168.1.255;
filename "pxelinux.0";
next-server 192.168.1.20;
}
保存文件并退出。
sudo /etc/init.d/isc-dhcp-server start
TFTP 是一种文件传输协议,类似于 FTP,但它不用进行用户认证也不能列出目录。TFTP 服务器总是监听网络上的 PXE 客户端的请求。当它检测到网络中有 PXE 客户端请求 PXE 服务时,它将提供包含引导菜单的网络数据包。
####1、配置 TFTP 时,需要编辑 “/etc/inetd.conf” 文件.
sudo vim /etc/inetd.conf
作如下修改:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
保存文件并退出。
sudo vim /etc/default/tftpd-hpa
作如下修改:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="[:0.0.0.0:]:69"
TFTP_OPTIONS="--secure"
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
保存文件并退出。
sudo update-inetd --enable BOOT
sudo service tftpd-hpa start
sudo netstat -lu
它将如下所示:
ProtoRecv-Q Send-Q LocalAddressForeignAddressState
udp 00*:tftp *:*
如果
现在,你需要将 PXE 引导文件 “pxelinux.0” 放在 TFTP 根目录下。为 TFTP 创建目录结构,并从 “/usr/lib/syslinux/” 复制 syslinux 提供的所有引导程序文件到 “/var/lib/tftpboot/” 下,操作如下:
sudo mkdir /var/lib/tftpboot
sudo mkdir /var/lib/tftpboot/pxelinux.cfg
sudo mkdir -p /var/lib/tftpboot/Ubuntu/14.04/amd64/
sudo cp/usr/lib/syslinux/vesamenu.c32 /var/lib/tftpboot/
sudo cp/usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
####设置 PXELINUX 配置文件
PXE 配置文件定义了 PXE 客户端启动时显示的菜单,它能引导并与 TFTP 服务器关联。默认情况下,当一个 PXE 客户端启动时,它会使用自己的 MAC 地址指定要读取的配置文件,所以我们需要创建一个包含可引导内核列表的默认文件。
编辑 PXE 服务器配置文件,使用有效的安装选项。
编辑 “/var/lib/tftpboot/pxelinux.cfg/default”:
sudo vim /var/lib/tftpboot/pxelinux.cfg/default
作如下修改:
DEFAULT vesamenu.c32
TIMEOUT 100
PROMPT 0
MENU INCLUDE pxelinux.cfg/PXE.conf
NOESCAPE 1
LABEL Try Ubuntu14.04 Desktop
MENU LABEL TryUbuntu14.04 Desktop
kernel Ubuntu/vmlinuz
append boot=casper netboot=nfs nfsroot=192.168.99.8:/var/lib/tftpboot/Ubuntu/14.04/amd64
initrd Ubuntu/initrd.lz quiet splash
ENDTEXT
LABEL InstallUbuntu14.04Desktop
MENU LABEL InstallUbuntu14.04Desktop
kernel Ubuntu/vmlinuz
append boot=casper automatic-ubiquity netboot=nfs nfsroot=192.168.99.8:/var/lib/tftpboot/Ubuntu/14.04/amd64
initrd Ubuntu/initrd.lz quiet splash
ENDTEXT
保存文件并退出。
这个地方initrd.lz和vmlinuz 也可以试 initrd.gz或者 vmlinuz.efi , 根据镜像包里的文件来定
编辑 “/var/lib/tftpboot/pxelinux.cfg/pxe.conf” 文件。
sudo vim /var/lib/tftpboot/pxelinux.cfg/pxe.conf
作如下修改:
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
保存文件并退出。
对于这一步需要 Ubuntu 内核和 initrd 文件。要获得这些文件,你需要 Ubuntu 14.04 桌面 ISO 镜像。你可以通过以下命令下载 Ubuntu 14.04 ISO 镜像到 /mnt 目录:
sudo cd /mnt
把你下载的镜像放到这个路径下。下面以ubuntu-14.04.3-desktop-amd64.iso 为例
注意: 下载用的 URL 可能会改变,因为 ISO 镜像会进行更新。如果上面的网址无法访问,看看这个网站,了解最新的下载链接。
挂载 ISO 文件,使用以下命令将所有文件复制到 TFTP文件夹中:
sudo mount-o loop /mnt/ubuntu-14.04.3-desktop-amd64.iso /media/
sudo cp -r /media/* /var/lib/tftpboot/Ubuntu/14.04/amd64/
sudo cp -r /media/.disk /var/lib/tftpboot/Ubuntu/14.04/amd64/
sudo cp /media/casper/initrd.lz /media/casper/vmlinuz /var/lib/tftpboot/Ubuntu/
现在,你需要通过 NFS 协议来设置“安装源镜像( Installation Source Mirrors)”。你还可以使用 HTTP 和 FTP 来安装源镜像。在这里,我已经使用 NFS 输出 ISO 内容。
要配置 NFS 服务器,你需要编辑 “/etc/exports” 文件。
sudo vim /etc/exports
作如下修改:
/var/lib/tftpboot/Ubuntu/14.04/amd64 *(ro,async,no_root_squash,no_subtree_check)
保存文件并退出。为使更改生效,输出并启动 NFS 服务。
sudo exportfs -a
sudo/etc/init.d/nfs-kernel-server start
现在,你的 PXE 服务器已经准备就绪。
PXE 客户端可以是任何支持 PXE 网络引导的计算机系统。现在,你的客户端只需要在系统的 BIOS 中设置 “从网络引导(Boot From Network)” 选项就可以启动并安装 Ubuntu 14.04 桌面。
现在准备出发吧 - 用网络引导启动你的 PXE 客户端计算机,你现在应该看到一个子菜单,显示了我们创建的 Ubuntu 14.04 桌面的菜单项。
pxe
结论
配置使用 PXE 服务器从网络启动安装能提高效率和节省时间。你可以在本地网络中同时安装数百个客户端。所有你需要的只是一个 PXE 服务器和能启动 PXE 的客户端。试试吧,如果这个对你有用请让我们知道。
如果循环数秒,就是文件有问题,挂在之后的文件不对,可以用虚拟机的cd挂镜像,或者windows解压自己复制进去
PXE Server wiki
PXE Server Ubuntu