阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

在 Ubuntu 14.04 中配置 PXE 服务器

244次阅读
没有评论

共计 5459 个字符,预计需要花费 14 分钟才能阅读完成。

在 Ubuntu 14.04 中配置 PXE 服务器

PXE(预启动执行环境(Preboot Execution Environment))服务器允许用户从网络中启动 Linux 发行版并且可以不需要 Linux ISO 镜像就能同时在数百台 PC 中安装。如果你客户端的计算机没有 CD/DVD 或 USB 引导盘,或者如果你想在大型企业中同时安装多台计算机,那么 PXE 服务器可以帮你节省时间和金钱。

在这篇文章中,我们将告诉你如何在 Ubuntu 14.04 配置 PXE 服务器。

 

配置网络

开始前,你需要先设置 PXE 服务器使用静态 IP。在你的系统中要使用静态 IP 地址,需要编辑“/etc/network/interfaces”文件。

打开“/etc/network/interfaces”文件.

  1. sudonano/etc/network/interfaces

作如下修改:

  1. # 回环网络接口
  2. auto lo
  3. iface lo inet loopback
  4. # 主网络接口
  5. auto eth0
  6. iface eth0 inet static
  7. address 192.168.1.20
  8. netmask 255.255.255.0
  9. gateway 192.168.1.1
  10. dns-nameservers 8.8.8.8

保存文件并退出。这将设置其 IP 地址为“192.168.1.20”。然后重新启动网络服务。

  1. sudo/etc/init.d/networking restart

 

安装 DHCP, TFTP 和 NFS:

DHCP,TFTP 和 NFS 是 PXE 服务器的重要组成部分。首先,需要更新你的系统并安装所有需要的软件包。

为此,运行以下命令:

  1. sudoapt-get update
  2. sudoapt-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”文件.

  1. sudonano/etc/default/dhcp3-server

作如下修改:

  1. INTERFACES="eth0"

保存 (Ctrl + o) 并退出 (Ctrl + x) 文件.

2、编辑“/etc/dhcp3/dhcpd.conf”文件:

  1. sudonano/etc/dhcp/dhcpd.conf

作如下修改:

  1. default-lease-time600;
  2. max-lease-time7200;
  3. subnet 192.168.1.0 netmask 255.255.255.0{
  4. range 192.168.1.21192.168.1.240;
  5. option subnet-mask 255.255.255.0;
  6. option routers 192.168.1.20;
  7. option broadcast-address 192.168.1.255;
  8. filename "pxelinux.0";
  9. next-Server192.168.1.20;
  10. }

保存文件并退出。

3、启动 DHCP 服务.

  1. sudo/etc/init.d/isc-dhcp-server start

 

配置 TFTP 服务器:

TFTP 是一种文件传输协议,类似于 FTP,但它不用进行用户认证也不能列出目录。TFTP 服务器总是监听网络上的 PXE 客户端的请求。当它检测到网络中有 PXE 客户端请求 PXE 服务时,它将提供包含引导菜单的网络数据包。

1、配置 TFTP 时, 需要编辑“/etc/inetd.conf”文件.

  1. sudonano/etc/inetd.conf

作如下修改:

  1. tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot

保存文件并退出。

2、编辑“/etc/default/tftpd-hpa”文件。

  1. sudonano/etc/default/tftpd-hpa

作如下修改:

  1. TFTP_USERNAME="tftp"
  2. TFTP_DIRECTORY="/var/lib/tftpboot"
  3. TFTP_ADDRESS="[:0.0.0.0:]:69"
  4. TFTP_OPTIONS="--secure"
  5. RUN_DAEMON="yes"
  6. OPTIONS="-l -s /var/lib/tftpboot"

保存文件并退出。

3、使用 xinetd 让 boot 服务在每次系统开机时自动启动,并启动 tftpd 服务。

  1. sudo update-inetd --enable BOOT
  2. sudo service tftpd-hpa start

4、检查状态。

  1. sudonetstat-lu

它将如下所示:

  1. ProtoRecv-Q Send-Q LocalAddressForeignAddressState
  2. udp 00*:tftp *:*

 

配置 PXE 启动文件

现在,你需要将 PXE 引导文件“pxelinux.0”放在 TFTP 根目录下。为 TFTP 创建目录结构,并从“/usr/lib/syslinux/”复制 syslinux 提供的所有引导程序文件到“/var/lib/tftpboot/”下,操作如下:

  1. sudomkdir/var/lib/tftpboot
  2. sudomkdir/var/lib/tftpboot/pxelinux.cfg
  3. sudomkdir-p /var/lib/tftpboot/Ubuntu/14.04/amd64/
  4. sudocp/usr/lib/syslinux/vesamenu.c32 /var/lib/tftpboot/
  5. sudocp/usr/lib/syslinux/pxelinux.0/var/lib/tftpboot/

 

设置 PXELINUX 配置文件

PXE 配置文件定义了 PXE 客户端启动时显示的菜单,它能引导并与 TFTP 服务器关联。默认情况下,当一个 PXE 客户端启动时,它会使用自己的 MAC 地址指定要读取的配置文件,所以我们需要创建一个包含可引导内核列表的默认文件。

编辑 PXE 服务器配置文件,使用有效的安装选项。

编辑“/var/lib/tftpboot/pxelinux.cfg/default”:

  1. sudonano/var/lib/tftpboot/pxelinux.cfg/default

作如下修改:

  1. DEFAULT vesamenu.c32
  2. TIMEOUT 100
  3. PROMPT 0
  4. MENU INCLUDE pxelinux.cfg/PXE.conf
  5. NOESCAPE 1
  6. LABEL TryUbuntu14.04Desktop
  7. MENU LABEL TryUbuntu14.04Desktop
  8. kernel Ubuntu/vmlinuz
  9. append boot=casper netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64
  10. initrd=Ubuntu/initrd.lz quiet splash
  11. ENDTEXT
  12. LABEL InstallUbuntu14.04Desktop
  13. MENU LABEL InstallUbuntu14.04Desktop
  14. kernel Ubuntu/vmlinuz
  15. append boot=casper automatic-ubiquity netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64
  16. initrd=Ubuntu/initrd.lz quiet splash
  17. ENDTEXT

保存文件并退出。

编辑“/var/lib/tftpboot/pxelinux.cfg/pxe.conf”文件。

  1. sudonano/var/lib/tftpboot/pxelinux.cfg/pxe.conf

作如下修改:

  1. MENU TITLE PXE Server
  2. NOESCAPE 1
  3. ALLOWOPTIONS 1
  4. PROMPT 0
  5. MENU WIDTH 80
  6. MENU ROWS 14
  7. MENU TABMSGROW 24
  8. MENU MARGIN 10
  9. MENU COLOR border 30;44#ffffffff #00000000 std

保存文件并退出。

 

为 PXE 服务器添加 Ubuntu 14.04 桌面启动镜像

对于这一步需要 Ubuntu 内核和 initrd 文件。要获得这些文件,你需要 Ubuntu 14.04 桌面 ISO 镜像。你可以通过以下命令下载 Ubuntu 14.04 ISO 镜像到 /mnt 目录:

  1. sudocd/mnt
  2. sudowget http://releases.ubuntu.com/14.04/ubuntu-14.04.3-desktop-amd64.iso

注意 : 下载用的 URL 可能会改变,因为 ISO 镜像会进行更新。如果上面的网址无法访问,看看这个网站,了解最新的下载链接。

挂载 ISO 文件,使用以下命令将所有文件复制到 TFTP 文件夹中:

  1. sudomount-o loop /mnt/ubuntu-14.04.3-desktop-amd64.iso /media/
  2. sudocp-r /media/* /var/lib/tftpboot/Ubuntu/14.04/amd64/
  3. sudo cp -r /media/.disk /var/lib/tftpboot/Ubuntu/14.04/amd64/
  4. sudo cp /media/casper/initrd.lz /media/casper/vmlinuz /var/lib/tftpboot/Ubuntu/

 

将导出的 ISO 目录配置到 NFS 服务器上

现在,你需要通过 NFS 协议来设置“安装源镜像(Installation Source Mirrors)”。你还可以使用 HTTP 和 FTP 来安装源镜像。在这里,我已经使用 NFS 输出 ISO 内容。

要配置 NFS 服务器,你需要编辑“/etc/exports”文件。

  1. sudonano/etc/exports

作如下修改:

  1. /var/lib/tftpboot/Ubuntu/14.04/amd64 *(ro,async,no_root_squash,no_subtree_check)

保存文件并退出。为使更改生效,输出并启动 NFS 服务。

  1. sudo exportfs -a
  2. sudo/etc/init.d/nfs-kernel-server start

现在,你的 PXE 服务器已经准备就绪。

 

配置网络引导 PXE 客户端

PXE 客户端可以是任何支持 PXE 网络引导的计算机系统。现在,你的客户端只需要在系统的 BIOS 中设置“从网络引导(Boot From Network)”选项就可以启动并安装 Ubuntu 14.04 桌面。

现在准备出发吧 – 用网络引导启动你的 PXE 客户端计算机,你现在应该看到一个子菜单,显示了我们创建的 Ubuntu 14.04 桌面的菜单项。

在 Ubuntu 14.04 中配置 PXE 服务器

pxe

 

结论

配置使用 PXE 服务器从网络启动安装能提高效率和节省时间。你可以在本地网络中同时安装数百个客户端。所有你需要的只是一个 PXE 服务器和能启动 PXE 的客户端。试试吧,如果这个对你有用请让我们知道。

参考:

  • PXE Server wiki
  • PXE Server Ubuntu

图片来源: fupsolunl20

在 RHEL/CentOS 7 中为多种 Linux 发行版安装 PXE 网络启动服务器 http://www.linuxidc.com/Linux/2015-02/113587.htm

利用 Kickstart 实现无人值守安装 RHEL6.0 系统 http://www.linuxidc.com/Linux/2013-09/89765.htm

SUSE Linux 11 pxe+DHCP+tftp+ftp 无人值守安装 http://www.linuxidc.com/Linux/2013-06/85481.htm

自建 DHCP TFTP 服务 用 PXE 启动实现无人值守安装 CentOS6 http://www.linuxidc.com/Linux/2014-07/104881.htm

使用 PXE+DHCP+Apache+Kickstart 无人值守安装 CentOS5.8 x86_64 http://www.linuxidc.com/Linux/2012-12/76913.htm

Kickstart 全自动化安装 CentOS 6.3 http://www.linuxidc.com/Linux/2012-12/75570.htm

Kickstart 自动化安装 Linux 笔记 http://www.linuxidc.com/Linux/2012-11/73853.htm

PXE/Kickstart 实现远程自动安装 RedHat Linux http://www.linuxidc.com/Linux/2012-11/73361.htm

更多 Ubuntu 相关信息见 Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2


via: https://www.maketecheasier.com/configure-pxe-server-ubuntu/

作者:Hitesh Jethva 译者:strugglingyouth 校对:wxy

本文由 LCTT 原创编译,Linux 中国 荣誉推出

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-11/124969.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5459字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中