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” 文件.

sudo nano /etc/network/interfaces

作如下修改:

# 回环网络接口

auto lo

iface lo inet loopback

# 主网络接口

auto eth0

iface eth0 inet static

address 192.168.1.20

netmask 255.255.255.0

gateway 192.168.1.1

dns-nameservers 8.8.8.8

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

sudo /etc/init.d/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/dhcpd.conf” 文件:

sudo nano /etc/dhcp/dhcpd.conf

作如下修改:

default-lease-time 600;

max-lease-time 7200;

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.21 192.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;

}

保存文件并退出。

3、启动 DHCP 服务.

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

配置 TFTP 服务器:

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

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

sudo nano /etc/inetd.conf

作如下修改:

tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -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="[:0.0.0.0:]: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 引导文件 “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 nano /var/lib/tftpboot/pxelinux.cfg/default

作如下修改:

DEFAULT vesamenu.c32

TIMEOUT 100

PROMPT 0

MENU INCLUDE pxelinux.cfg/PXE.conf

NOESCAPE 1

LABEL Try Ubuntu 14.04 Desktop

MENU LABEL Try Ubuntu 14.04 Desktop

kernel Ubuntu/vmlinuz

append boot=casper netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64

initrd=Ubuntu/initrd.lz quiet splash

ENDTEXT

LABEL Install Ubuntu 14.04 Desktop

MENU LABEL Install Ubuntu 14.04 Desktop

kernel Ubuntu/vmlinuz

append boot=casper automatic-ubiquity netboot=nfs nfsroot=192.168.1.20:/var/lib/tftpboot/Ubuntu/14.04/amd64

initrd=Ubuntu/initrd.lz quiet splash

ENDTEXT

保存文件并退出。

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

sudo nano /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

保存文件并退出。

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

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

sudo cd /mnt

sudo wget http://releases.ubuntu.com/14.04/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/

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

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

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

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

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

结论

配置使用 PXE 服务器从网络启动安装能提高效率和节省时间。你可以在本地网络中同时安装数百个客户端。所有你需要的只是一个 PXE 服务器和能启动 PXE 的客户端。

免费领取兄弟连IT教育原创linux运维工程师视频/细说linux教程,详情咨询官网客服:http://www.itxdl.cn/linux/

或者勾搭Q2430675018

欢迎加入linux交流群 478068715

在 Ubuntu 14.04 中配置 PXE 服务器的更多相关文章

  1. Ubuntu 14.04安装配置NFS服务器

    (一)安装NFS服务器1.1-安装Ubuntu nfs服务器端: sudo apt-get install nfs-kernel-server 1.2-安装nfs的客户端: sudo apt-get ...

  2. Ubuntu 14.04中Elasticsearch集群配置

    Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...

  3. Ubuntu 14.04 下搭建SVN服务器 svn://

    Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下 ...

  4. 翻译:在Ubuntu 14.04上安装FTP服务器的方法

    说明: 1.原文地址:http://www.krizna.com/ubuntu/setup-ftp-server-on-ubuntu-14-04-vsftpd/ 2.今天要做一个网络日志的迁移程序,搬 ...

  5. Ubuntu 14.04快速搭建SVN服务器及日常使用【转】

    转自:http://www.linuxidc.com/Linux/2015-05/117735.htm 1.介绍  Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务 ...

  6. 如何在Ubuntu 14.04中使用Samba共享文件

    Linux 下的文件共享利器 Samba 想必大家已经非常熟悉了,今天我们介绍下如何在Ubuntu 14.04中使用 Samba 共享网络文件.打印机和其它公共资源. 1.安装 Samba 和图形配置 ...

  7. Ubuntu 14.04快速搭建SVN服务器及日常使用

    1.介绍  Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可以很方面恢复到以前的版本,并可以查看数据更改 ...

  8. Ubuntu 14.04中gedit打开文件出现中文乱码问题

    http://blog.csdn.net/cywosp/article/details/32325449/ 在中文支持配置还不完整的Ubuntu 14.04中,使用gedit打开带有中文字符的文件有时 ...

  9. zhuan:点滴记录——Ubuntu 14.04中gedit打开文件出现中文乱码问题

    在中文支持配置还不完整的Ubuntu 14.04中,使用gedit打开带有中文字符的文件有时会出现乱码的情况,这是由于gedit对字符编码匹配不正确导致的,解决方法如下: 在终端中输入如下命令,然后重 ...

随机推荐

  1. 中国电信大亚DP607光猫破解,设置路由,wifi!关闭远程管理,改连接限制,SN码查询!

    破解方法:以下为破解方法(一):1.进入192.168.1.12.用户名输入anonymous,密码不用,登陆3.输入网址192.168.1.1/backupsettings.conf4.用记事本打开 ...

  2. java 8增强的包装类

    ---恢复内容开始--- 1java为8个类型提供了对应的包装类.因为这8个类型并不是类或者对象,他们原本是不应该存在在java里的(这里说的只是原本),这里要强调的是,java允许把基本类型的值直接 ...

  3. 上传图片预览设置src不显示

    使用滤镜效果解决: window.parent.document.body.focus(); var imgurl = (document.selection.createRange().text). ...

  4. 【Linux命令与工具】系统资源查看——free、uname、dmesg以及netstat

    free:查看内存的使用情况 用法: free [-b|-k|-m|-g] [-t] 参数: -b: 直接输入free时,显示的单位是KB我们可以使用b(bytes), m(MB), k(KB), g ...

  5. asp.net core 使用 StaticFiles 中间件 (不完整翻译)

    原文地址:https://docs.asp.net/en/latest/fundamentals/static-files.html 设置静态资源根目录 在 Startup.cs 中的 Configu ...

  6. WPFのInkCanvas作为蒙版透明笔迹不透明

    本人最近利用inkcavas做一个蒙版的功能,结果发现笔迹稀释了,经过一番查找发现:应该讲inkcavas的背景设置为白色,然后透明,而不是将整个控件透明,具体代码: <InkCanvas Na ...

  7. Double Buffering Windows Forms

    Double Buffering Windows Forms As much as we would like it not to be the case, graphics can be slow ...

  8. 第十四天 jni 的使用

    1. ndk 环境 2.jni hello 程序. 3.javah 生成头文件. 4.java 和c 之间数据传递. 5.C语言回调java 代码 通过反射.得到字节码,得到方法...

  9. Java开发中经典的小实例-(能被3整除,并且十个数换一行)

    import java.util.Scanner;public class Test15 {    public static void main(String[] args) {        // ...

  10. Consul Template的简单使用

    Consul Template的使用 1安装 地址 https://github.com/hashicorp/consul-template/releases wget https://release ...