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

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 服务器和能启动 PXE 的客户端。试试吧,如果这个对你有用请让我们知道。

参考:

图片来源: fupsolunl20


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

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

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

本教程将指引你添加Ubuntu 14.10 Server, Ubuntu 14.04 ServerDebian 7 Wheezy发行版到RHEL/CentOS 7的PXE网络启动环境中。

Add Ubuntu and Debian to PXE Network

添加Ubuntu和Debian到PXE网络

虽然对于本教程,我只会演示怎样来添加64位网络安装镜像,但对于Ubuntu或者Debian的32位系统,或者其它架构的镜像,操作步骤也基本相同。同时,就我而言,我会解释添加Ubuntu 32位源的方法,但不会演示配置。

从PXE服务器安装 Ubuntu或者Debian要求你的客户机必须激活网络连接,最好是使用DHCP通过NAT来进行动态分配地址。以便安装器拉取所需的包并完成安装过程。

前置阅读

步骤 1: 添加Ubuntu 14.10和Ubuntu 14.04服务器到PXE菜单

1. 要将Ubuntu 14.10Ubuntu 14.04添加网络安装源到PXE菜单可以通过两种方式实现:其一是通过下载Ubuntu CD ISO镜像并挂载到PXE服务器机器上,以便可以读取Ubuntu网络启动文件,其二是通过直接下载Ubuntu网络启动归档包并将其解压缩到系统中。下面,我将进一步讨论这两种方法:

使用Ubuntu 14.10和Ubuntu 14.04 CD ISO镜像

为了能使用此方法,你的PXE服务器需要有一台可工作的CD/DVD驱动器(LCTT 译注:也可以不用,参考下面内容)。在一台专用的计算机上,转到Ubuntu 14.10下载Ubuntu 14.04 下载页,获取64位服务器安装镜像,将它烧录到CD,并将CD镜像放到PXE服务器DVD/CD驱动器,然后使用以下命令挂载到系统。

# mount /dev/cdrom  /mnt

如果你的PXE服务器没有CD/DVD驱动器,你可以使用wget命令下载Ubuntu 14.10Ubuntu 14.04的ISO镜像到本地,然后通过下面的命令(下载并挂载CD)挂载到服务器上上述相同位置。

在Ubuntu 14.10上

------------------ 32位 ------------------

# wget http://releases.ubuntu.com/14.10/ubuntu-14.10-server-i386.iso
# mount -o loop /path/to/ubuntu-14.10-server-i386.iso /mnt

------------------ 64位 ------------------

# wget http://releases.ubuntu.com/14.10/ubuntu-14.10-server-amd64.iso
# mount -o loop /path/to/ubuntu-14.10-server-amd64.iso /mnt

在Ubuntu 14.04上

------------------ 32位 ------------------

# wget http://releases.ubuntu.com/14.04/ubuntu-14.04.1-server-i386.iso
# mount -o loop /path/to/ubuntu-14.04.1-server-i386.iso /mnt

------------------ 64位 ------------------

# wget http://releases.ubuntu.com/14.04/ubuntu-14.04.1-server-amd64.iso
# mount -o loop /path/to/ubuntu-14.04.1-server-amd64.iso /mnt

使用Ubuntu 14.10和Ubuntu 14.04网络启动镜像

对于该方法,使用以下命令下载Ubuntu网络启动镜像到PXE服务器。

在Ubuntu 14.04上

------------------ 32位 ------------------

# cd
# wget http://archive.ubuntu.com/ubuntu/dists/utopic/main/installer-i386/current/images/netboot/netboot.tar.gz

------------------ 64位 ------------------

# cd
# http://archive.ubuntu.com/ubuntu/dists/utopic/main/installer-amd64/current/images/netboot/netboot.tar.gz

在Ubuntu 14.04上

------------------ 32位 ------------------

# cd
# wget http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-i386/current/images/netboot/netboot.tar.gz

------------------ 64位 ------------------

# cd
# wget http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz

对于其它处理器架构,请访问下面的Ubuntu 14.10和Ubuntu 14.04网络启动官方页面,选择你的架构类型并下载所需文件。

2. 在下载完ISO镜像网络启动安装器归档包后,通过执行以下命令拷贝整个ubuntu-installer文件夹到PXE tftp服务器位置。

A). 对于两种CD ISO镜像(32位64位),在挂载特定架构的CD到PXE服务器/mnt系统路径后,请使用以下命令。

# cp -fr /mnt/install/netboot/ubuntu-installer/ /var/lib/tftpboot/

B). 对于网络启动归档,根据特定的Ubuntu架构,请运行以下命令。

# cd
# tar xfz netboot.tar.gz
# cp -rf ubuntu-installer/ /var/lib/tftpboot/

如果你想要在PXE服务器上同时使用两种Ubuntu服务器架构,先请下载,然后根据不同的情况挂载或解压缩32位架构,然后拷贝ubuntu-installer目录到/var/lib/tftpboot,然后卸载CD或删除网络启动归档以及解压缩的文件和文件夹。对于64位架构,请重复上述步骤,以便让最终的tftp路径形成以下结构。

/var/lib/tftpboot/ubuntu-installer/amd64
/var/lib/tftpboot/ubuntu-installer/i386

3. 在接下来的步骤,通过执行以下命令添加Ubuntu 14.10Ubuntu 14.04菜单标签到PXE服务器默认配置文件中。

重要:我不可能同时演示两个Ubuntu版本的操作,出于演示的目的,我添加了Ubuntu 14.04菜单标签到PXE服务器,下述同样的操作也可应用到Ubuntu 14.10,只需对版本号稍作修改,仅仅只要根据你的Ubuntu版本修改版本号和到OS架构的路径。

在你最喜爱的文本编辑器的帮助下,打开PXE默认配置文件,而我偏好nano编辑器。

# nano /var/lib/tftpboot/pxelinux.cfg/default

接下来,添加以下配置到PXE菜单。

对于Ubuntu 14.04 32位

label 1
menu label ^1) Install Ubuntu 14.04 x32
        kernel ubuntu-installer/i386/linux
        append vga=788 initrd=ubuntu-installer/i386/initrd.gz -- quiet

label 2
menu label ^2) Ubuntu 14.04 Rescue Mode x32
        kernel ubuntu-installer/i386/linux
        append vga=788 initrd=ubuntu-installer/i386/initrd.gz rescue/enable=true -- quiet

对于Ubuntu 14.04 64位

label 5
menu label ^5) Install Ubuntu 14.04 x64
        kernel ubuntu-installer/amd64/linux
        append vga=788 initrd=ubuntu-installer/amd64/initrd.gz -- quiet

label 5
menu label ^6) Ubuntu 14.04 Rescue Mode
        kernel ubuntu-installer/amd64/linux
        append vga=788 initrd=ubuntu-installer/amd64/initrd.gz rescue/enable=true -- quiet

Add Ubuntu to PXE Boot 添加Ubuntu到PXE启动

:如果你想要包含其它Ubuntu架构,请遵循以上相同的操作,并相应替换PXE默认菜单配置文件中的标签号和ubuntu-installer/$architecture\_name/目录。

4. 在配置完PXE菜单配置文件后,根据采用的方法清除源文件,并继续进行客户端PXE安装以测试配置是否正确。

---------------------- 对于CD/DVD方法 ----------------------

# umount /mnt 

---------------------- 对于网络启动方法 ----------------------

# cd && rm -rf ubuntu-installer/netboot.tar.gz pxelinux.* version.info  

下面是Ubuntu 14.04PXE客户端安装测试的截图。

Select Ubuntu from PXE Menu

从PXE菜单选择Ubuntu

Choose Ubuntu Installation Language

选择Ubuntu安装语言

Choose Ubuntu Rescue Mode

选择Ubuntu救援模式

Ubuntu Rescue Mode Shell

Ubuntu救援模式Shell

步骤 2: 添加Debian 7 Wheezy到PXE菜单

5. 添加Debian 7到PXE服务器,需要上述Ubuntu服务器版本相同的步骤。唯一不同点在于网络启动归档镜像下载链接和源目录的名称,现在改为debian-installer

要下载Debian Wheezy网络启动归档,请转到Debian网络安装下载页,从网络启动菜单选择你想要的系统架构,然后点击目录列表中的网络启动链接,并从文件名列表中下载netboot.tar.gz归档包。

因为Debian为众多系统架构如Armel,ia64,Mips,PowerPC,Sparc等等提供了网络安装源,所以在本指南中,我将只讨论64位架构。因为其它架构的配置过程和当前的几乎一样,唯一不同的是debian-installer/$directory\_architecture name

所以,要进一步深入,以root帐号登录到你的PXE服务器,并通过以下命令抓取Debian 7 64位网络启动归档包。

# wget  http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/netboot/netboot.tar.gz

Download Debain 7 Netboot

下载Debian 7网络启动包

6.wget下载完成netboot.tar.gz文件后,请将其解压缩并运行以下命令拷贝debian-installer目录到tftp服务器默认路径。

# tar xfz netboot.tar.gz
# cp -rf debian-installer/ /var/lib/tftpboot/

Extract Debain 7 Netboot

解压缩Debian 7网络启动包

Copy Debain 7 Netboot to FTP

拷贝Debian 7网络启动文件到FTP

7. 要添加Debian Wheezy标签到PXE菜单,请用你最喜爱的文本编辑器打开PXE服务器默认配置文件并添加以下标签。

# nano /var/lib/tftpboot/pxelinux.cfg/default

Debian Wheezy 64位的PXE标签菜单。

label 7
menu label ^7) Install Debian 7 x64
        kernel debian-installer/amd64/linux
        append vga=788 initrd=debian-installer/amd64/initrd.gz -- quiet

label 8
menu label ^8) Install Debian 7 x64 Automated
       kernel debian-installer/amd64/linux
       append auto=true priority=critical vga=788 initrd=debian-installer/amd64/initrd.gz -- quiet

Add Debian to PXE Boot

添加Debian到PXE启动

:如果你想要添加其它Debian架构,请重复上述步骤,并相应替换PXE默认菜单配置文件中的标签号和debian-installer/$architecture\_name/目录。

8. 在进行客户端测试配置之前,请执行以下命令来清除Debian源文件。

# cd && rm -rf debian-installer/  netboot.tar.gz  pxelinux.*  version.info 

9. 然后通过网络启动一台客户机,选择从PXE菜单安装Debian,并像正常安装一样进一步下去。

Select Install Debian from PXE

选择从PXE安装Debian

Select Debian Install Language

选择Debian安装语言

以上是要求添加并从RHEL/CentOS 7 PXE服务器安装UbuntuDebian到客户机上的全部步骤。在我的下一篇文章中,我将讨论一种更为复杂的方法,如何使用RHEL/CentOS 7 PXE网络启动服务器来安装Windows 7到客户机。


via: http://www.tecmint.com/add-ubuntu-to-pxe-network-boot/

作者:Matei Cezar 译者:GOLinux 校对:Mr小眼儿

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

PXE服务器——预启动执行环境——指示客户端计算机直接从网络接口启动、运行或安装操作系统,而不需要烧录CD/DVD或使用某个物理介质,它可以减轻你网络中多台机器同时安装Linux发行版的工作。

Setting PXE Network Boot in RHEL/CentOS 7

在RHEL/CentOS 7中设置PXE网络启动

前置阅读

本文将介绍如何在配置有本地镜像安装仓库的RHEL/CentOS 7 64位上安装并配置一台PXE服务器,仓库源由CentOS 7 DVD 的 ISO镜像提供,并由DNSMASQ服务器提供解析。

该机器提供了DNSDHCP服务,用于网络启动引导的Syslinux包,TFTP-Server——提供了可通过网络使用小文件传输协议下载的可启动镜像,以及提供本地挂载DVD镜像的VSFTPD服务器——它将扮演官方RHEL/CentOS 7镜像安装仓库的角色,安装器将从这里提取所需的包。

步骤1: 安装并配置DNSMASQ服务器

1. 不需要提醒你来确定你的网络接口卡吧,除非你的服务器上有多个网络接口卡,该网卡必须配置有静态IP地址,该IP地址必须处于你要提供PXE服务的网段中。

那么,在你配置好静态IP地址后,更新你的系统并进行其它初始设置。请使用以下命令来安装DNSMASQ进程。

# yum install dnsmasq

Install dnsmasq Package

安装dnsmasq包

2. DNSMASQ的默认的主配置文件位于/etc目录中,虽然不需要任何说明就能看懂,但编辑起来确实相当困难的,即使有很详细的说明性注释。

首先,确保你备份了该文件,以便你需要在以后对它进行恢复。然后使用你爱用的文本编辑器创建一个新的空配置文件,命令如下。

# mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.backup
# nano /etc/dnsmasq.conf

3. 现在,复制并粘贴以下配置到dnsmasq.conf文件中,并确保根据如下说明进行相应修改,以适应你的网络设置。

interface=eno16777736,lo
#bind-interfaces
domain=centos7.lan
# DHCP range-leases
dhcp-range= eno16777736,192.168.1.3,192.168.1.253,255.255.255.0,1h
# PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
# Gateway
dhcp-option=3,192.168.1.1
# DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
# Broadcast Address
dhcp-option=28,10.0.0.255
# NTP Server
dhcp-option=42,0.0.0.0

pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

Dnsmasq Configuration

Dnsmasq配置

你需要修改的声明有以下这些:

  • interface – 服务器需要监听并提供服务的网络接口。
  • bind-interfaces – 取消注释来绑定到该网络接口
  • domain – 替换为你的域名。
  • dhcp-range – 替换为你的网络掩码定义的网段。
  • dhcp-boot – 替换该IP地址为你的网络接口IP地址。
  • dhcp-option=3,192.168.1.1 – 替换该IP地址为你的网段的网关。
  • dhcp-option=6,92.168.1.1 – 替换该IP地址为你的DNS服务器IP——可以定义多个IP地址。
  • server=8.8.4.4 – 这里放置DNS转发服务器IP地址。
  • dhcp-option=28,10.0.0.255 – 替换该IP地址为网络广播地址——可选项。
  • dhcp-option=42,0.0.0.0 – 这里放置网络时钟服务器——可选项(0.0.0.0地址表示参考自身)。
  • pxe-prompt – 保持默认——按F8进入菜单,60秒等待时间。
  • pxe=service – 使用x86PC作为32为/64位架构,并在字符串引述中输入菜单描述提示。其它类型值可以是:PC98,IAEFI,Alpha,Arcx86,IntelLeanClient,IA32EFI,BCEFI,XscaleEFI和X86-64EFI。
  • enable-tftp – 启用内建TFTP服务器。
  • tftp-root – 使用/var/lib/tftpboot——所有网络启动文件所在位置。

其它和配置文件相关的高级选项,请参阅dnsmasq手册

步骤2: 安装SYSLINUX启动加载器

4. 在编辑并保存DNSMASQ主配置文件后,我们将继续安装Syslinux PXE启动加载器,命令如下。

# yum install syslinux

Install Syslinux Bootloaders

安装Syslinux启动加载器

5. PXE启动加载器文件位于/usr/share/syslinux系统绝对路径下,你可以通过列出该路径下的内容来查看。该步骤不是必须的,但你可能需要知道该路径,因为在下一步中,我们将拷贝该路径下的所有内容到TFTP服务器路径下。

# ls /usr/share/syslinux

Syslinux Files

Syslinux文件

步骤3: 安装TFTP-Server并加入SYSLINUX加载启动器

6. 现在,让我们进入下一步,安装TFTP-Server。然后,拷贝上述位置中Syslinux包提供所有启动加载器文件到/var/lib/tftpboot路径中,命令如下。

# yum install tftp-server
# cp -r /usr/share/syslinux/* /var/lib/tftpboot

Install TFTP Server

安装TFTP服务器

步骤4: 设置PXE服务器配置文件

7. 通常,PXE服务器从位于pxelinux.cfg文件夹中一组指定的文件中读取配置(首先是GUID文件,接下来是MAC文件,最后是Default文件),该文件夹必须位于DNSMASQ主配置文件中tftp-root声明指定的目录中。

创建需要的目录pxelinux.cfg,然后添加default文件到该目录中,命令如下。

# mkdir /var/lib/tftpboot/pxelinux.cfg
# touch /var/lib/tftpboot/pxelinux.cfg/default

8. 现在,该来编辑PXE服务器配置文件了,为它添加合理的Linux发行版安装选项。请注意,该文件中使用的所有路径必须是相对于/var/lib/tftpboot目录的。

下面,你可以看到配置文件的样例,你可以使用该模板,但请修改安装镜像(kernel和initrd文件)、协议(FTP、HTTP、HTTPS、NFS)以及映射你网络安装源仓库和路径的IP地址等参数。

# nano /var/lib/tftpboot/pxelinux.cfg/default

添加以下整个节录到文件中。

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 7 x64 with Local Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount

label 2
menu label ^2) Install CentOS 7 x64 with http://mirror.centos.org Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ devfs=nomount ip=dhcp

label 3
menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
kernel centos7/vmlinuz
append  initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount inst.vnc inst.vncpassword=password

label 4
menu label ^4) Boot from local drive

Configure PXE Server

配置PXE服务器

正如你所见,CentOS 7启动镜像(kernel和initrd)位于名为centos7的目录,该目录是/var/lib/tftpboot目录的相对路径(其系统绝对路径为/var/lib/tftpboot/centos7),而安装器仓库位于可通过FTP协议访问的192.168.1.20/pub网络位置中——在本例中,这些仓库位于本地,因为IP地址和PXE服务器地址相同。

同时,菜单label 3指定客户端安装应该通过VNC从一个远程位置实现(这里替换VNC密码为一个健壮的密码),如果你在一台没有输入输出的客户端上安装,菜单label 2指定了作为安装源的一个CentOS 7官方互联网镜像(这种情况要求客户端通过DHCP和NAT连接到互联网)。

重要:正如你在上述配置中所看到的,我们使用了CentOS 7进行演示,但是你也可以定义一个 RHEL 7镜像。而下面的整个的说明和配置都只是基于CentOS 7的,所以在选发行版时要注意一下。

步骤5: 添加CentOS 7启动镜像到PXE服务器

9. 对于此步骤,需要用到CentOS的kernel和initrd文件。要获取这些文件,你需要CentOS 7 DVD ISO镜像。所以,去下载CentOS DVD镜像吧,然后把它(刻录成光盘)放入你的DVD驱动器并挂载镜像到/mnt路径,命令见下面。

使用DVD,而不是最小化CD镜像的原因在于,在后面我们将使用该DVD的内容为FTP源创建本地安装器仓库。

# mount -o loop /dev/cdrom  /mnt
# ls /mnt

Mount CentOS DVD

挂载CentOS DVD

如果你的机器没有DVD驱动器,你也可以使用wgetcurl工具从CentOS镜像站下载CentOS 7 DVD ISO到本地并挂载。

# wget http://mirrors.xservers.ro/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
# mount -o loop /path/to/centos-dvd.iso  /mnt

10. 在DVD内容可供使用后,创建centos7目录并将CentOS 7 的可启动的 kernel和initrd映像文件从DVD挂载位置拷贝到centos7文件夹。

# mkdir /var/lib/tftpboot/centos7
# cp /mnt/images/pxeboot/vmlinuz  /var/lib/tftpboot/centos7
# cp /mnt/images/pxeboot/initrd.img  /var/lib/tftpboot/centos7

Copy CentOS Bootable Files

拷贝CentOS可启动文件

使用该方法的原因在于,今后你可能会在/var/lib/tftpboot路径中创建新的独立的目录,并添加其它Linux发行版到PXE菜单中,你就不会将整个目录结构弄得一团糟了。

步骤6: 创建CentOS 7本地镜像安装源

11. 虽然你可以通过多种协议设置安装源镜像,如HTTP、HTTPS或NFS,但对于本指南,我选择了使用FTP协议。因为通过vsftpd,你可以很便捷地配置,而且它也很稳定。

接下里,安装vsftpd进程,然后复制所有DVD挂载目录中的内容到vsftpd默认服务器路径下(/var/ftp/pub)——这会花费一些时间,这取决于你的系统资源。然后为该路径设置可读权限,命令如下。

# yum install vsftpd
# cp -r /mnt/*  /var/ftp/pub/ 
# chmod -R 755 /var/ftp/pub

Install Vsftpd Server

安装Vsftpd服务器

Copy Files to FTP Path

拷贝Files到FTP路径

Set Permissions on FTP Path

设置FTP路径的权限

步骤7: 在系统范围内启动并启用进程

12. 既然PXE服务器配置已经完成,那么就来启动DNSMASQVSFTPD服务器吧。验证它们的状况并在系统上启用,以便让这些服务在每次系统重启后都能随系统启动,命令如下。

# systemctl start dnsmasq
# systemctl status dnsmasq
# systemctl start vsftpd
# systemctl status vsftpd
# systemctl enable dnsmasq
# systemctl enable vsftpd

Start Dnsmasq Service

启动Dnsmasq服务

Start Vsftpd Service

启动Vsftpd服务

步骤8: 打开防火墙并测试FTP安装源

13. 要获取需要在防火墙打开的端口列表,以便让客户机可访问并从PXE服务器启动,请运行netstat命令并根据dnsmasq和vsftpd监听列表添加CentOS 7防火墙规则。

# netstat -tulpn
# firewall-cmd --add-service=ftp --permanent    ## Port 21
# firewall-cmd --add-service=dns --permanent    ## Port 53
# firewall-cmd --add-service=dhcp --permanent   ## Port 67
# firewall-cmd --add-port=69/udp --permanent    ## Port for TFTP
# firewall-cmd --add-port=4011/udp --permanent  ## Port for ProxyDHCP
# firewall-cmd --reload  ## Apply rules

Check Listening Ports

检查监听端口

Open Ports in Firewall

在防火墙上开启端口

14. 要测试FTP安装源网络路径,请在本地或另外一台计算机上打开浏览器(lynx就可以做此事),然后输入你架设有FTP服务的PXE服务器的IP地址,并在填入的URL后面加上/pub网络位置,结果应该和截图中看到的一样。

ftp://192.168.1.20/pub

Access FTP Files via Browser

通过浏览器访问FTP文件

15. 要解决PXE服务器最终的配置或其它信息产生的问题,请在live模式下诊断,命令如下:

# tailf /var/log/messages

Check PXE Logs for Errors

检查PXE日志错误

16. 最后,最终所需的步骤就是卸载CentOS 7 DVD,并移除物理介质。

# umount /mnt

步骤9: 配置客户端从网络启动

17. 现在,你的客户端可以通过它们的系统BIOS或在BIOS开机自检时按指定键来配置网络启动作为首选启动设备,具体方法见主板说明手册。

为了选择网络启动,在第一次PXE提示符出现时,请按下F8键进入到PXE安装界面,然后敲回车键继续进入PXE菜单。

PXE Network Boot

PXE网络启动

PXE Network OS Boot

PXE网络OS启动

18. 一旦你进入PXE菜单,请选择你的CentOS 7安装类型,敲回车键继续安装过程,就像你使用本地启动介质安装一样。

请记住这一点,使用菜单中的变体2需要激活目标客户端上的互联网连接。在下面的屏幕截图中,你可以通过VNC看到远程安装的实例。

PXE Menu

PXE菜单

Remote Linux Installation via VNC

通过VNC远程安装Linux

Remote Installation of CentOS

远程安装CentOS

以上是CentOS 7上配置最小化PXE服务器的所有内容。在我的本系列下一篇文章中,我将讨论其它PXE服务器配置过程中的其它问题,如怎样使用Kickstart文件来配置自动化安装CentOS 7,以及添加其它Linux发行版到PXE菜单——Ubuntu ServerDebian 7


via: http://www.tecmint.com/install-pxe-network-boot-server-in-centos-7/

作者:Matei Cezar 译者:GOLinux 校对:wxy

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

本教程将指引你直接通过使用DNSMASQ作为PXE服务器(预启动执行环境),以网络方式安装Debian 7(Wheezy),此种情况是假定你的服务器不提供任何CD/DVD/USB介质驱动器,或者它只能通过相连的监视器、键盘和鼠标操作。

Debian 7 Network Installation on Client Machines

客户机上的Debian 7网络安装

DNSMASQ是一个轻量级网络基础架构服务器,它可以通过内建的DNS、DHCP和TFTP服务器提供如DNS、DHCP和网络启动等关键服务。

一旦PXE服务器启动并运行,你可以指示你所有的客户机直接从网络启动,前提是你的客户机必须拥有一张支持网络启动的网卡,网络启动可以从BIOS的网络启动或启动服务选项中启用。

前置阅读

步骤1: 安装及配置DNSMASQ服务器

1. 首先,在安装Debian服务器后,要确保你的系统使用的是静态IP地址。因为除了网络启动之外,也要为你的整个网段提供DHCP服务。设置好静态IP地址后,以root帐号或具有root权力的用户来运行以下命令,进行DNSMASQ服务器的安装。

# apt-get install dnsmasq

Install Dnsmasq Package

安装Dnsmasq包

2. 安装好DNSMASQ包后,你可以开始编辑配置文件。首先创建一个主配置文件的备份,然后使用下面的命令对dnsmasq.conf文件进行编辑。

# mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.backup
# nano /etc/dnsmasq.conf

Backup Dnsmasq Configuration

备份Dnsmasq配置

3. 上面的备份过程适合重命名配置文件,所以新的文件应该是空,你可以使用以下描述的DNSMASQ配置文件节录。

interface=eth0
domain=debian.lan
dhcp-range=192.168.1.3,192.168.1.253,255.255.255.0,1h
dhcp-boot=pxelinux.0,pxeserver,192.168.1.100
pxe-prompt="Press F8 for menu.", 60
#pxe-service types: x86PC, PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
pxe-service=x86PC, "Install Debian 7 Linux from network server 192.168.1.100", pxelinux
enable-tftp
tftp-root=/srv/tftp

Configuration of Dnsmasq

Dnsmasq配置

  • interface – 服务器监听的网络接口。
  • domain – 用你自己的域名替换。
  • dhcp-range – 用你自己的网络掩码定义的网络IP地址范围。
  • dhcp-boot – 保持默认,但使用你自己的服务器IP地址替换IP声明。
  • pxe-prompt – 保持默认 – 要求在敲击F8键 进入菜单时等待60秒。
  • pxe=service – 使用x86PC作为32位/64位架构,并进入引号字符串的菜单描述提示。其它值类型可能是:PC98,IA64EFI,Alpha,Arcx86,IntelLeanClient,IA32EFI, BCEFI,XscaleEFI和 X86-64EFI。
  • enable-tftp – 启用内建TFTP服务器。
  • tftp-root – 使用/srv/tftp作为Debian网络启动文件的存放位置。

步骤2: 下载Debian网络启动文件并打开防火墙连接

4. 现在,该下载Debian网络启动文件了。首先,修改你当前工作目录路径到TFTP根目录位置,此位置由最后的配置语句定义(/srv/tftp系统路径)。

转到Debian网络安装网络启动部分的官方页面镜像,抓取以下文件,要抓取的文件取决于你想要安装到客户端的系统架构。

下载好netboot.tar.gz文件后,同时提取归档(该过程描述只适用于64位,但对于其它系统架构也基本相同)。

# cd /srv/tftp/
# wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/netboot/netboot.tar.gz
# tar xfz netboot.tar.gz
# wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/SHA256SUMS
# wget http://ftp.nl.debian.org/debian/dists/wheezy/Release
# wget http://ftp.nl.debian.org/debian/dists/wheezy/Release.gpg

同时,必须确保TFTP目录中的所有文件都可让TFTP服务器读取。

# chmod -R 755 /srv/tftp/

Download Debian NetBoot Files

下载Debian网络启动文件

使用以下变量用于Debian网络安装镜像和架构。

# wget http://"$YOURMIRROR"/debian/dists/wheezy/main/installer-"$ARCH"/current/images/netboot/netboot.tar.gz
# wget http://"$YOURMIRROR"/debian/dists/wheezy/main/installer-"$ARCH"/current/images/SHA256SUMS
# wget http://"$YOURMIRROR"/debian/dists/wheezy/Release
# wget http://"$YOURMIRROR"/debian/dists/wheezy/Release.gpg

5. 下一步,启动或重启DNSMASQ守护进程,并运行netstat命令来获取服务器监听的端口列表。

# service dnsmasq restart
# netstat -tulpn | grep dnsmasq

Start Dnsmasq Service

启动Dnsmasq服务

6. 基于Debian的发行版通常附带了UFW防火墙包。使用以下命令来打开需要的DNSMASQ端口号:67(Bootps),69(TFTP),53(DNS)4011(代理DHCP)udp和53 tcp(DNS)。

# ufw allow 69/udp
# ufw allow 4011/udp   ## Only if you have a ProxyDHCP on the network
# ufw allow 67/udp
# ufw allow 53/tcp
# ufw allow 53/udp

Open Dnsmasq Ports

开启Dnsmasq端口

现在,位于你的客户机网络接口上的PXE加载器将使用按以下顺序从/srv/tftp/pxelinux.cfg目录加载pxelinux配置文件。

  • GUID文件
  • MAC文件
  • 默认文件

步骤3: 配置客户端从网络启动

7. 要为你的客户端计算机启用网络启动,请进入系统BIOS配置(如何进入BIOS设置,请查阅硬件主板提供商的文档)。

转到启动菜单,然后选择网络启动作为首要启动设备(在某些系统上,你可以不用进入BIOS配置就能选择启动设备,只要在BIOS自检时按一个键就可以进行选择了)。

Select BIOS Settings

选择BIOS设置

8。 在编辑启动顺序后,通常按F10来保存BIOS设置。重启后,你的客户端计算机应该可以直接从网络启动了,应该会出第一个PXE提示,要求你按F8键进入菜单。

接下来,敲击F8键来进入,会出现一个新的提示。敲击回车键,屏幕上会出现Debian安装器主界面提示,如下图所示。

Boot Menu Selection

启动菜单选择

Select Debian Installer Boot

选择Debian安装器启动

Select Debian Install

选择Debian安装

从这里开始,你可以使用Debian 7 Wheezy安装进程将Debian安装到你的机器上了(安装链接见上面)。然而,为了能够完成安装进程,你也需要确保你的机器上互联网连接已经激活。

步骤4: DNSMASQ服务器排障并在系统范围内启用

9. 要诊断服务器以查询最终是否发生问题或要查询其它提供给客户端的信息,运行以下命令来打开日志文件。

# tailf /var/log/daemon.log

Debug DNSMASQ Server

DNSMASQ服务器排障

10. 如果服务器测试中已一切就绪,你现在可以在sysv-rc-conf包的帮助下,启用DNSMASQ守护进程自启动,以使该进程在系统重启后自动启动。

# apt-get install sysv-rc-conf
# sysv-rc-conf dnsmaq on

Enable DNSMASQ Daemon

启用DNSMASQ守护进程

到此为止吧!现在你的PXE服务器已经整装待发,随时准备好分配IP地址了(DHCP),并为你所有网段中的客户端提供需要的启动信息,这些信息配置用来从网络启动并安装Debian Wheezy。

使用PXE网络启动安装在服务器主机数量很多时很有优势,因为你可以在短时间内火同时设置整个网络基础架构,为版本升级提供了方便,也可以通过kickstart文件使整个安装的全自动化。


via: http://212.71.234.61/network-installation-of-debian-7-on-client-machines/

作者:Matei Cezar 译者:GOLinux 校对:wxy

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