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

在 Ubuntu 14.04 中配置 PXE 服务器

459次阅读
没有评论

共计 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、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7991117
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...