没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
Linux Kickstart 无人值守安装
在我们的网络维护生涯中,有不少朋友,感觉到自己在机械的做一件事情,在无聊、无趣和
无奈中工作。尤其一些简单重复的操作更容易让大家感到工作的无趣。今天将给大家介绍如何大
规模的部署 RedHat Linux操作系统,避免了手工安装的繁琐。当然本方法也使用于一些特殊场
合,譬如没有光驱或光驱坏掉的计算机、手中没有安装光盘等情况。
在安装 RedHat Linux企业版的过程中,我们都知道它允许通过 NFS、HTTP 或 FTP 协议来进行网
络安装。但是在一般情况下我们需要有一个安装引导介质(引导光盘、引导软盘、U盘等),有
没有一种方法不通过引导光盘方式来安装呢,而直接通过网络来进行安装?答案是有,即通过 P
XE 技术实现。
一、基本原理
那么 PXE 到底是什么呢?
PXE(Pre-boot Execution Environment)是由 Intel设计的协议,它可以使计算机通过网络启
动。协议分为 client 和 server两端,PXE client 在网卡的 ROM中,当计算机引导时,BIOS把 PXE
client 调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统
通过网络下载到本地运行。
既然是通过网络传输,就需要 IP 地址;也就是说在其启动过程中,客户端请求服务器分配 IP 地
址,之后 PXE Client 使用 TFTP Client 通过 TFTP(Trivial File Transfer Protocol)协议下载启动
安装程序所需的文件。
简单地说 PXE 网络安装,客户机通过支持 PXE 的网卡向网络中发送请求 DHCP 信息的广播请
求 IP地址等信息,DHCP服务器给客户端提供 IP地址和其它信息(TFTP服务器、启动文件等),
之后请求并下载安装需要的文件。在这个过程中需要一台服务器来提供启动文件、安装文件、以
及安装过程中的自动应答文件等。下图中介绍了 Linux中自动安装系统的详细工作过程:
第一步:PXE Client 向 DHCP 发送请求
首先,将支持 PXE的网络接口卡(NIC)的客户端的 BIOS设置成为网络启动,
通过 PXE BootROM(自启动芯片)会以 UDP(简单用户数据报协议)发送一个广播请
求,向网络中的 DHCP服务器索取 IP地址等信息。
第二步:DHCP 服务器提供信息
DHCP服务器收到客户端的请求,验证是否来至合法的 PXE Client的请求,
验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端
分配的 IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。
第三步:PXE 客户端请求下载启动文件
客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文
件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
第四步:Boot Server 响应客户端请求并传送文件
当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与
服务器之间作应答, 用以决定启动参数。BootROM 由 TFTP 通讯协议从 Boot Server下
载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载
完成后,会根据该文件中定义的引导顺序,启动 Linux安装程序的引导内核。
第五步:请求下载自动应答文件
客户端通过 pxelinux.cfg/default文件成功的引导 Linux安装内核后,安装程序
首先必须确定你通过什么安装介质来安装 linux,如果是通过网络安装(NFS, FTP,
HTTP),则会在这个时候初始化网络,并定位安装源位置。或许你会说,刚才 PX
E 不是已经获取过 IP 地址了吗?为什么现在还需要一次?这是由于 PXE 获取的是
安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包
以及配置文件。由于它们需要的内容不同造成 PXE模块和安装程序是相对独立的,
PXE 的网络配置并不能传递给安装程序。从而进行两次获取 IP 地址过程。
接着会读取该文件中指定的自动应答文件 ks.cfg所在位置,根据该位置请
求下载该文件。
第六步:客户端安装操作系统
将 ks.cfg文件下载回来后,通过该文件找到 OS Server,并按照该文件的配置
请求下载安装过程需要的软件包。
OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操
作系统。安装完成后,将提示重新引导计算机。这个时候注意,在重新引导的过
程中一定要将 BIOS修改回从硬盘启动,不然的话又会重复的自动安装操作系统。
在上面介绍中 PXE client是需要安装 Linux的计算机,TFTP Server、DHCP Server
和 NFS Server运行在另外一台 Linux Server上。Bootstrap文件、配置文件、Linux内核
都放置在 Linux Server 上 TFTP 服务器的根目录下。而 Linux根文件系统存放于 NFS S
erver的共享目录中。
PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和 Linux
根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根
据用户的选择,下载合适的 Linux内核以及 Linux根文件系统。
二、配置过程
配置 PXE 安装,要进行如下步骤:
① 配置DHCP,用于给客户端提供IP 地址及其它信息
② 配置TFTP 服务器,用于提供客户端 PXE 引导所必须的文件
③ 配置NFS 服务器,用于存放安装树
④ 配置 Kickstart,用于自动应答安装
⑤ 使用
PXE
功能引导客户机
1、DHCP 的安装与配置
在PXE引导安装过程中,PXE客户端通过DHCP获取 PXE服务器地址,PXE引导文件名称;然后客户机
在使用TFTP协议从 TFTP服务器下载引导文件并执行,从而启动计算机安装程序。引导文件执行后,接着
下载安装程序启动安装。RedHat Linux使用了 ISC的 dhcpd软件,完成它的安装与配置。
1)安装 DHCP 软件包
[root@qiuri Server]# rpm -ivh dhcp-3.0.5-13.el5.i386.rpm
Preparing... ########################################### [100%]
1:dhcp ########################################### [100%]
[root@qiuri Server]#
2)配置 DHCP
安装完成后,复制DHCPD配置文件模版替换原配置文件/etc/dhcpd.conf。
[root@qiuri Server]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
接下来我们需要配置相关信息。为了满足我们的安装需求,假设PXE服务器、DHCP服务器、TFTP服
务器全部安装在一台为192.168.1.1的计算机上。我们需要进行如下操作:
(1)修改 /etc/dhcpd.conf 文件,指定 IP 地址等信息。
(2)在 '''/etc/dhcpd.conf''' 中增加 tftp-server 需要推送给客户端的启动文件(bootstrap):
filename "pxelinux.0";因为 tftp 的默认目录是 /tftpboot,所以文件的绝对路径就是: /tftpboot/p
xelinux.0";当然也可以指定为其它的路径。
另外需要指定 next-server 参数,告诉客户端在获取到 pxelinux.0 文件之后去哪里获取其余的启
动文件: next-server 192.168.1.1;
最终的配置文件结果如下所示:
[root@qiuri Server]# vi /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
allow booting; #定义能够PXE启动
allow bootp; #定义支持 bootp
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.80;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.1.1; #TFTP Server 的IP地址
filename "pxelinux.0"; #pxelinux启动文件位置
}
配置完成后,重启DHCP服务,并将它设为开机自启动。
[root@qiuri Server]# /etc/init.d/dhcpd start
启动 dhcpd: [确定]
[root@qiuri Server]# chkconfig --level 35 dhcpd on
2、安装配置 TFTP 服务器
在PXE安装过程中,客户机在使用TFTP协议从 TFTP服务器下载引导文件并执行。我们主要通过配置
TFTP服务器和 PXE的引导配置完成这个过程。
1)安装配置 TFTP 服务器
首先,安装TFTP服务器软件包,RedHat提供了如下两个软件包:
tftp-server:服务端程序
tftp :客户端程序
[root@qiuri Server]# rpm -ivh tftp-server-0.42-3.1.i386.rpm
Preparing... ########################################### [100%]
1:tftp-server ########################################### [100%]
[root@qiuri Server]#
配置tftp服务
tftp 服务由xinetd服务管理。编辑 '''/etc/xinetd.d/tftp''' 文件,将 '''disable = yes''' 改
为:disable = no。
[root@qiuri Server]# vi /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
从这里看出,默认选择/tftpboot为TFTP服务器的根目录位置,配置完成后重启xinetd服务,使TF
TP服务器生效。
[root@qiuri Server]# /etc/init.d/xinetd restart
2)PXE 引导配置(bootstrap)
PXE启动映像文件由 syslinux软件包提供,RedHat Enterprise Linux光盘中已提供,如果没有此软
件包可以到syslinux 主页:http://syslinux.zytor.com/下载rpm来安装。
我们只要安装了syslinux,就会生成一个pxelinux.0,将 pxelinux.0 这个文件复制到 '''/tftpbo
ot''' 目录即可:
[root@qiuri Server]# rpm -ql syslinux |grep "pxelinux.0"
/usr/lib/syslinux/pxelinux.0
[root@qiuri Server]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
本打算发表在一篇中,但是系统老是提示超过 8 万字节,也只能发两篇了,点击查看《Li
nux Kickstart 无人值守安装》后半部分。
3)用于网络启动的内核文件
将 RedHat 安装光盘目录中的 '''images/pxeboot/{vmlinuz,initrd.img}''' 启动文件复制到某个
安装目录,比如:'''/tftpboot/ ''':
[root@qiuri Server]# cp /media/rhel5/images/pxeboot/{vmlinuz,initrd.img} /tftpboot/
由于多个客户端可以从一个PXE服务器引导,PXE引导映像使用了一个复杂的配置文件搜索方式来查
找针对客户机的配置文件。如果客户机的网卡的MAC地址为'''88:99:AA:BB:CC:DD''',对应的 IP地址为
192.168.1.195,那么客户机首先尝试以 MAC地址为文件名匹配的配置文件,如果不存在就以 IP地址来查
找。根据上述环境针对这台主机要查找的以一个配置文件就是 /tftpboot/pxelinux.cfg/01-88-99-aa-bb
-cc-dd。如果该文件不存在,就会根据 IP地址来查找配置文件了,这个算法更复杂些,PXE映像查找会根
据IP地址16进制命名的客户机配置文件。例如:192.168.1.195对应的16进制的形式为C0A801C3。(可
以通过syslinux软件包提供的 gethostip命令将 10进制的IP转换为 16进制)
如果C0A801C3文件不存在,就尝试查找 C0A801C文件,如果 C0A801C也不存在,那么就尝试 C0A801
文件,依次类推,直到查找 C文件,如果 C也不存在的话,那么最后尝试default文件。
总体来说,pxelinux 搜索的文件的顺序是:
/tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd
/tftpboot/pxelinux.cfg/ C0A801C3
/tftpboot/pxelinux.cfg/ C0A801C
/tftpboot/pxelinux.cfg/ C0A801
/tftpboot/pxelinux.cfg/ C0A80
/tftpboot/pxelinux.cfg/ C0A8
/tftpboot/pxelinux.cfg/ C0A
/tftpboot/pxelinux.cfg/ C0
/tftpboot/pxelinux.cfg/C
/tftpboot/pxelinux.cfg/default
对于一台需要支持很多安装机器的安装服务器来说,将配置写在与IP地址对应的文件里很不灵活。
把所有配置都集中在default文件中是个不错的主意,可以减轻配置文件维护负担。接下来创建/tftpboot
/pxelinux.cfg/ 目录,该目录用于存放客户端的配置文件。
[root@qiuri Server]# mkdir /tftpboot/pxelinux.cfg
将光盘中的 '''isolinux/isolinux.cfg''' 文件复制为 '''/tftpboot/pxelinux.cfg/default'''
[root@qiuri Server]# cp /media/rhel5/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/defau
lt
查看default文件内容:
以下内容根据原文件略加修改并做了注释(注:该文件中的空行和以 '''#''' 开头的行都将被忽略)
# 默认启动的是 'label linux' 中标记的启动内核
default linux
# 显示 'boot: ' 提示符。为 '0' 时则不提示,将会直接启动 'default' 参数中指定的内容。
prompt 1
# 在用户输入之前的超时时间,单位为 1/10 秒。
timeout 60
剩余25页未读,继续阅读
xinxingzhiguang
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- database-project-massunaAi笔记
- 2%EF%BC%9A%E9%99%95%E8%A5%BF%E
- yyspdz62_944.apk
- SAP公司间采购EDI配置-如何触发自动MIRO.docx
- python197基于图像识别的仪表实时监控系统.rar
- python196基于循环神经网络的情感分类系统.rar
- I2C驱动SHT30温湿度传感器和LCD12864使用例程(RSCG12864B)
- python193中学地理-中国的江河湖泊教学网(django).rar
- python191基于时间序列分析的大气污染预测软件(django).rar
- python190基于人脸识别智能化小区门禁管理系统.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0