文档章节

在 Ubuntu 14.04 中配置 PXE 服务器

 酱醋茶丶
发布于 2015/11/11 11:26
字数 1699
阅读 98
收藏 2
点赞 0
评论 0

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.lampbrother.net/linux/

或者勾搭Q2430675018

欢迎加入linux交流群 478068715


© 著作权归作者所有

共有 人打赏支持
粉丝 7
博文 71
码字总数 90588
作品 0
昌平
离线快速部署Mirantis Openstack 9.0

Mirantis Openstack 9.0 简称为MOS 9.0。它是Mirantis 公司开发 openstack自动化安装工具,这个工具还有个专门的名字,叫做Fuel。 离线安装时不需要更新Ubuntu和MOS包,即不需要互联网连接。...

zmx009 ⋅ 2016/12/17 ⋅ 0

ubuntu16 kickstart pxe 安装系统

环境 PXE网段:172.25.151.0/24 PXE网关:172.25.151.1 PXE服务器地址:172.25.151.254 PXE服务器系统 : ubuntu 16.04 DHCP地址池:172.25.151.240~172.25.151.253 PXE安装镜像IOS:ubuntu-......

Leo_zhjl ⋅ 06/11 ⋅ 0

Ubuntu 16.04.2 LTS PXE全自动安装

Ubuntu 16.04.2 LTS PXE全自动安装 使用的版本为ubuntu-16.04.2-server-amd64.iso (829M) 1、将光盘中的installnetbootubuntu-installer文件夹复制到tftp根目录下. 在tftp根目录下建立ubu...

liwenhn ⋅ 2017/06/01 ⋅ 0

Utuntu14.04下salt的使用

概述 本文介绍 Ubuntu 环境下使用 saltstack 。 环境 测试环境为 Ubuntu server 14.04 。 禁用 : 所有 Ubuntu 系统都禁用 selinux , iptables 。 5 个运行 Ubuntu server 14.04 x86_64 的虚拟...

壬癸甲乙 ⋅ 2014/08/19 ⋅ 0

上传文件到linux - ubuntu

我们经常需要将本地的文件上传到远程的Ubuntu 14.04服务器上,或者把远程Ubuntu 14.04服务器上的文件下载到本地,这就需要用到vsftpd来搭建FTP服务,现在介绍一下如何在Ubuntu 14.04上安装和...

岸芷汀兰 ⋅ 2015/06/19 ⋅ 1

Ubuntu 14.04 上使用 Nginx Passenger 部署 Ruby on Rails

本教程将会涉及以下工具: Ubuntu 14.04 LTS RVM Ruby 2.1.1 Rails 4.0.3 Passenger 4.0+ Nginx(由 Passenger 编译) 推荐通过 Vagrant 搭建虚拟机环境进行练习。 创建帐号 假设你已经用 ro...

小自在 ⋅ 2014/07/17 ⋅ 0

Bond 模式下远程安装 Linux 系统

注:bond 是一种 linux 下将多块物理网卡虚拟成一块网卡的技术。 引言 文件服务器是企业网络中的核心服务器。如何确保其安全、稳定及高速访问,是管理员最重要的工作之一。运用 Bond 技术,可...

红薯 ⋅ 2010/04/23 ⋅ 0

互联网亿级日志实时分析平台—ELK

一,前言 人们常常说数据如金,可是,能被利用起的数据,才是“金”。而互联网的数据,常常以日志的媒介的形式存在,并需要从中提取其中的"数据"。 从这些数据中,我们可以做用户画像(每个用...

顶风走千里 ⋅ 2017/11/29 ⋅ 0

ubuntu中利用LTSP搭建无盘工作站

使用ubuntu搭建无盘工作站,分为以下几个步骤 DHCP服务器 TFTP服务器 NFS服务器 OpenSSH服务器 PXE启动环境 ltsp环境 安 装DHCP 代码: sudo apt-get install dhcp3-server 安装NFS 代码: sud...

任远 ⋅ 2011/08/15 ⋅ 0

如何修改Ubuntu的源列表(source list)

如何修改Ubuntu的源列表(source list) 简介 Ubuntu缺省的配置的源并不是国内的服务器,下载更新软件都比较慢,本文介绍如何设置源列表,选择比较快的源以节省下载时间。 配置步骤 1. 备份源列...

LeBlancs ⋅ 2016/12/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 2

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部