网站搜索

如何使用本地 DVD 源通过 PXE 服务器安装 Ubuntu


PXE预启动执行环境 是一种服务器-客户端机制,指示客户端计算机从网络启动。

在本指南中,我们将展示如何通过 PXE 服务器安装 Ubuntu Server,其中本地 HTTP 源通过 Apache Web 从 Ubuntu 服务器 ISO 镜像镜像服务器。本教程中使用的 PXE 服务器是 Dnsmasq Server

要求:

  1. Ubuntu 服务器 16.04 或 17.04 安装
  2. 配置有静态 IP 地址的网络接口
  3. Ubuntu 服务器 16.04 或 17.04 ISO 映像

第 1 步:安装和配置 DNSMASQ 服务器

1.为了设置PXE服务器,第一步使用root帐户或具有root权限的帐户登录并安装Dnsmasq软件包在 Ubuntu 中,通过发出以下命令。

apt install dnsmasq

2. 接下来,备份dnsmasq主配置文件,然后开始使用以下配置编辑该文件。

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

将以下配置添加到 dnsmasq.conf 文件中。

interface=ens33,lo
bind-interfaces
domain=mypxe.local

dhcp-range=ens33,192.168.1.230,192.168.1.253,255.255.255.0,1h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
dhcp-option=6,8.8.8.8
server=8.8.4.4
dhcp-option=28,10.0.0.255
dhcp-option=42,0.0.0.0

dhcp-boot=pxelinux.0,pxeserver,192.168.1.14

pxe-prompt="Press F8 for menu.", 2
pxe-service=x86PC, "Install Ubuntu 16.04 from network server 192.168.1.14", pxelinux
enable-tftp
tftp-root=/srv/tftp

在上面的配置文件中相应地替换以下行。

  • interface 替换为你自己机器的网络接口。
  • 域名 – 将其替换为您的域名。
  • dhcp-range – 定义您自己的网络范围,让 DHCP 为该网段分配 IP,以及应授予客户端 IP 地址多长时间。
  • dhcp-option=3 – 您的网关 IP。
  • dhcp-option=6 DNS 服务器 IP – 可以定义多个 DNS IP。
  • 服务器 – DNS 转发器 IP 地址。
  • dhcp-option=28 – 您的网络广播地址。
  • dhcp-option=42 – NTP 服务器 – 使用 0.0.0.0 地址供自我参考。
  • dhcp-boot – pxe启动文件和PXE服务器的IP地址(这里是pxelinux.0和同一台机器的IP地址)。
  • pxe-prompt – 用户可以按F8键进入PXE菜单或等待2秒自动切换到PXE菜单。
  • pxe=service – 对于 32 位/64 位架构使用 x86PC,并在字符串引号下输入菜单描述提示。其他值类型可以是:PC98、IA64_EFI、Alpha、Arc_x86、Intel_Lean_Client、IA32_EFI、BC_EFI、Xscale_EFI 和 X86-64_EFI。
  • enable-tftp – 启用内置 TFTP 服务器。
  • tftp-root – 网络启动文件的系统路径。

3. 此外,完成 dnsmasq 配置文件的编辑后,通过发出以下命令来创建 PXE netboot 文件的目录并重新启动 dnsmasq 守护进程以应用更改。检查 dnsmasq 服务状态以查看其是否已启动。

mkdir /srv/tftp
systemctl restart dnsmasq.service
systemctl status dnsmasq.service

步骤 2:安装 TFTP 网络启动文件

4.下一步,通过发出以下命令获取 64 位架构的最新版本的 Ubuntu 服务器 ISO 映像。

wget http://releases.ubuntu.com/16.04/ubuntu-16.04.3-server-amd64.iso

5. 下载 Ubuntu 服务器 ISO 后,将映像挂载到 /mnt 目录中,并通过运行以下命令列出挂载的目录内容。

mount -o loop ubuntu-16.04.3-desktop-amd64.iso /mnt/
ls /mnt/

6. 接下来,通过发出以下命令将 netboot 文件从 Ubuntu 安装树复制到 tftp 系统路径。另外,列出 tftp 系统路径以查看复制的文件。

cp -rf /mnt/install/netboot/* /srv/tftp/
ls /srv/tftp/

第三步:准备本地安装源文件

7. Ubuntu服务器的本地网络安装源将通过HTTP协议提供。首先,通过发出以下命令安装、启动并启用 Apache Web 服务器。

apt install apache2
systemctl start apache2
systemctl status apache2
systemctl enable apache2

8. 然后,通过执行以下命令将安装的 Ubuntu DVD 内容复制到 Apache Web 服务器 Web 根路径。列出 Apache Web 根路径的内容以检查 Ubuntu ISO 挂载树是否已完全复制。

cp -rf /mnt/* /var/www/html/
ls /var/www/html/

9. 接下来,在防火墙中打开 HTTP 端口,并通过浏览器导航到您的计算机 IP 地址 (http://192.168.1.14/ubuntu),以测试您是否可以通过 HTTP 协议到达源。

ufw allow http

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

10. 为了能够通过 PXE 和本地源旋转 rootfs,Ubuntu 需要通过预置文件进行指示。在您的 Web 服务器文档根路径中创建以下 local-sources.seed 文件,其中包含以下内容。

nano /var/www/html/ubuntu/preseed/local-sources.seed

将以下行添加到 local-sources.seed 文件中。

d-i live-installer/net-image string http://192.168.1.14/ubuntu/install/filesystem.squashfs

在这里,请确保相应地替换 IP 地址。应该是网络资源所在的IP地址。在本指南中,Web 源、PXE 服务器和 TFTP 服务器托管在同一系统上。在拥挤的网络中,您可能希望在不同的计算机上运行 PXE、TFTP 和 Web 服务,以提高 PXE 网络速度。

11. PXE 服务器按以下顺序读取并执行位于 pxelinux.cfg TFTP 根目录中的配置文件:GUID 文件、MAC 文件和默认文件。

目录 pxelinux.cfg 已创建并填充了所需的 PXE 配置文件,因为我们之前已从 Ubuntu 安装的 ISO 映像复制了网络启动文件。

为了将上述预置语句文件添加到 PXE 配置文件中的 Ubuntu 安装标签,请通过发出以下命令打开以下文件进行编辑。

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg

在 Ubuntu PXE txt.cfg 配置文件中,替换以下行,如以下摘录所示。

append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

/srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg 文件应具有以下全局内容:

default install
label install
	menu label ^Install Ubuntu 16.04 with Local Sources
	menu default
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet 
label cli
	menu label ^Command-line install
	kernel ubuntu-installer/amd64/linux
	append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

12. 如果您想将预置 url 语句添加到 Ubuntu Rescue 菜单,请打开以下文件并确保按照以下示例所示更新内容。

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/rqtxt.cfg

将以下配置添加到rqtxt.cfg文件中。

label rescue
	menu label ^Rescue mode
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz rescue/enable=true --- quiet

您应该更新的重要行是 url=http://192.168.1.14/ubuntu/preseed/local-sources.seed,它指定了按下的文件在您的网络中所在的 URL 地址。

13. 最后,打开 Ubuntu pxe menu.cfg 文件并注释前三行,以展开 PXE 启动屏幕,如下面的屏幕截图所示。

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/menu.cfg

注释以下三行。

#menu hshift 13
#menu width 49
#menu margin 8

第5步:在Ubuntu中打开防火墙端口

14. 使用root权限执行netstat命令来识别服务器上处于监听状态的dnsmasq、tftp和web开放端口,如下面的摘录所示。

netstat -tulpn

15.确定所有必需的端口后,发出以下命令以打开 ufw 防火墙中的端口。

ufw allow 53/tcp
ufw allow 53/udp
ufw allow 67/udp
ufw allow 69/udp
ufw allow 4011/udp

步骤 6:通过 PXE 使用本地源安装 Ubuntu

16. 要通过 PXE 安装 Ubuntu 服务器并使用本地网络安装源,请重新启动计算机客户端,指示 BIOS 从网络启动,然后在第一个 PXE 菜单屏幕上选择第一个选项,如图所示下面的图像。

17.安装过程应照常进行。当安装程序到达Ubuntu存档镜像国家设置时,使用向上键盘箭头移动到第一个选项,该选项显示:手动输入信息

18.[enter]键更新此选项,删除镜像字符串并添加Web服务器镜像源的IP地址,然后按Enter键继续,如图所示下图。

http://192.168.1.14

19. 在下一个屏幕上,添加镜像存档目录,如下所示,然后按 Enter 键继续安装过程。

/ubuntu

20.如果您想查看有关从网络本地镜像下载哪些软件包的信息,请按[CTRL+ALT+F2]键以更改计算机虚拟控制台并发出以下命令。

tail –f /var/log/syslog

21. Ubuntu服务器安装完成后,登录新安装的系统并以root权限运行以下命令,将本地网络源的存储库包更新到官方Ubuntu镜像。

需要更改镜像才能使用互联网存储库更新系统。

sudo sed –i.bak ‘s/192.168.1.14/archive.ubuntu.com/g’ /etc/apt/sources.list

确保根据您自己的网络本地源的 IP 地址替换 IP 地址。

就这样!您现在可以更新 Ubuntu 服务器系统并安装所有必需的软件。通过PXE和本地网络源镜像安装Ubuntu可以提高安装速度,并且在您的场所短时间内部署大量服务器的情况下可以节省网络带宽和成本。