共计 5153 个字符,预计需要花费 13 分钟才能阅读完成。
PXE 启动的原理什么的这里就不介绍了,网上有很多,一定要理解原理再来做,不但便于记忆,也便于操作,可以把安装步骤模块化,前后要融会贯通。如果有不好的地方请谅解。
环境:
CentOS 6.8_x86_64
Apache2.2.27 编译安装
安装配置 DHCP 服务器
rpm -qa | grep dhcp #查看 DHCP 服务是否已经安装了,一般默认有个 dhcp- common-4.1.1-51.P1.el6.centos.x86_64,这个不是主程序
yum install dhcp.x86_64 dhcp-devel.x86_64 -y #安装 DHCP 服务和 devel,必须要有 devel 否则出错
cat /etc/dhcp/dhcpd.conf #查看配置文件
# DHCP Server Configuration file. #一下是查看 DHCP 配置文件的方法,这里我们用第一种方法
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see ‘man 5 dhcpd.conf’
===DHCP 服务安装完成 ============================
rpm -ql dhcp | grep sample
/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample #DHCP 的配置文件
egrep -v “#|^$” /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample > /etc/dhcp/dhcpd.conf
## 去除 dhcpd.conf.sample 文件中的空行和注释行,并重定向到 /etc/dhcpdhcpd.conf 文件中
vim /etc/dhcp/dhcpd.conf #编辑配置文件,留下一下内容即可,其他的参数用不到,红色的是自己加的
subnet 192.168.199.0 netmask 255.255.255.0 {#DHCP 分配的网段
range 192.168.199.2 192.168.199.6; #DHCP 分配的地址段
option domain-name-servers ns1.internal.example.org; #DNS 服务器地址,这里就默认把
option domain-name “internal.example.org”; #域名
option routers 192.168.199.1; #默认路由,其实就是网关地址
option broadcast-address 192.168.199.255; #广播地址
default-lease-time 600; #默认租期
max-lease-time 7200; #最大租期
next-server 192.168.199.214; #tftp 服务器所在的地址
filename “pxelinux.0”; #网络引导文件名,引号别忘了,我经常忘记
}
service dhcpd start #启动服务
提示:如果服务器启动失败,可以查看 /var/log/messages 日志信息,在之后的安装系统时最好关闭网络中的其他有 DHCP 功能的设备,比如路由器等,否则不能正确指向 TFTP 服务器,从而无法正常引导、启动和安装。
netstat -nupl | grep dhcp #查看 DHCP 的工作端口号
iptables -I INPUT -p udp –dport 67 -j ACCEPT #添加放火墙端口
service iptables save #保存配置规则
===DHCP 服务器配置完成 =======================
yum install httpd #安装 httpd 服务器,我等等就用之前编译好的 httpd 服务器了,但是用 yum 安装的作为演示
service httpd start #启动 httpd 服务
curl localhost #测试下服务器是否正常用功了
iptables -I INPUT -p tcp –dport 80 -j ACCEPT ## 添加防火墙规则
===httpd 安装和配置完成 =========================
yum install tftp.x86_64 tftp-server.x86_64 -y #安装 tftp 和 tftp-server,同时会安装一个 xinetd
vim /etc/xinetd.d/tftp #编辑 tftp 文件将 disable 的 yes 改成 no
disable = no
service xinetd start #启动 xinetd 服务
netstat -nupl| grep xinetd #查看 xinetd 的工作端口
iptables -I INPUT -p udp –dport 69 -j ACCEPT #给防火墙添加开放的端口
service iptables save #保存规则
mkdir /var/www/cdrom -p #yum 安装的站点目录是 /var/www/html/,我是编译的所以自己新建
mount /dev/cdrom /var/www/cdrom/ #为了方便这里将 iso 文件直接挂载了
cd /var/www/cdrom/isolinux/ #进入 isolinux 目录
cp -v boot.msg vmlinuz vesamenu.c32 initrd.img /var/lib/tftpboot/ #复制这四个文件到指定 tftp 的工作目录
mkdir /var/lib/tftpboot/pxelinux.cfg -p #在 tftp 工作目录创建 pxelinux.cfg 目录
cat isolinux.cfg > /var/lib/tftpboot/pxelinux.cfg/default #查看重定向,到 default 文件
vim /var/lib/tftpboot/pxelinux.cfg/default
timeout 5 #超时时间
label linux
menu label ^Install or upgrade an existing system
menu default 默认选择 menu label ^Install or upgrade an existing system
kernel vmlinuz #内核文件
append initrd=initrd.img ks=http://192.168.199.214/ks.cfg
## 编辑 default 文件添加红色部分,即为 ks.cfg 文件存放的位置,centos7 还可以在理这顶安装文件路径,但是没什么意义,因为指定了 ks.cfg 文件的位置后,ks.cfg 文件中又指定了一次
yum install syslinux-devel.x86_64 syslinux.x86_64 -y #安装 syslinux,因为他又我们所需 要 网 络 引导文件
find / -name “pxelinux.0” -exec cp {} /var/lib/tftpboot/ \; #找到这个文件并且复制到指定位置
===TFTP 服务 + 网络引导 +linux 内核什么的准备完成 ================
cd /var/www/ #进入站点根目录
vim ks.cfg #添加 ks.cfg 的配置文件,也可以自己用图化 system-config-kickstart.noarch 编辑
# Kickstart Configurator for CentOS 6.7 by yao zhang
install
url –url=”http://192.168.199.214/cdrom/” # 指定安装盘的网络位置
#text # 这个看习惯开把我还是喜欢图形界面
lang en_US.UTF-8
keyboard us
zerombr
bootloader –location=mbr –driveorder=sda –append=”crashkernel=auto rhgb quiet”
network –bootproto=dhcp –device=eth0 –onboot=yes –noipv6 –hostname=CentOS6
timezone –utc Asia/Shanghai
authconfig –enableshadow –passalgo=sha512
rootpw –iscrypted $6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/
clearpart –all –initlabel
part /boot –fstype=ext4 –asprimary –size=200
part swap –size=1024
part / –fstype=ext4 –grow –asprimary –size=200
firstboot –disable
selinux –disabled
firewall –disabled
logging –level=info
reboot
%packages
@base
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet
%end
注意:centos7 的 anaconda-ks.cfg 拿过来修改下安装方式,就是上面的红色部分就可以用了,centos6.x 的不行,也有可能是我比较菜,还不知道怎么弄,如果直接复制家目录下的 anaconda-ks.cfg,记得一定要给权限否则会报错,ks.cfg 文件出错 chmod 777 ks.cfg
# 新建一个这样的空虚拟机,不要挂载光盘,还有就是网络一定要和我们搭建的 DHCP 服务器一个网络,否则会找不到,或者直接出错。
后面全程高速公路无人驾驶模式,可以把整个过程回忆一遍,自己一定要总结,多操作,否则容易忘记。root 密码就不写了,我是为了强行让自己回忆一遍修改 root 的步骤。我对 ks 文件的编辑不很熟悉,碰过好多次壁,有不对的地方还请谅解。上面的 ks 文件是我参考老男孩老师提供的,因为我自己写了 6 次都出问题了。
=== 只待开机完成了 ================================
=== 安装完成 =================================
参见错误:
DHCP 服务器
a)centos 的配置文件查找不是查找 sample
b)dhcp 配置文件的 filename “pxelinux.0”; 一定不要忘记引号和分号
c)记得要么关闭防火墙和 selinux 除非你非常了解 selinux 这个服务
httpd 服务器
a)服务是否能够正常工作
b)默认站点不要弄错
c)如果是自己创建的话文件夹权限,还有 最好关闭 selinux
d)记得要么关闭防火墙和 selinux 除非你非常了解 selinux 这个服务
tftp 服务
a)如果在安装了 tftp-server,并没有安装 xinetd 记得自行安装,yum 的话一般都是装的
b)如果 tftpboot 目录是自己创建的注意 权限和 selinux问题
c)pxelinux.cfg 目录下的文件名不要出错
d)记得要么关闭防火墙和 selinux 除非你非常了解 selinux 这个服务
default 文件
a)超时时间自己随意
b)centos6 不用在 append 的后面加 inst.stage2=http://IP/iso,直接 ks=http://IP/ks.cfg 就好了
加了反而在 centos6.X 中会出错
c)centos7 的 menu default 是在媒体测试选项上的记得自己改下
ks.cfg
a)这个文件的配置也是个大学问,每一句话是有顺序问题的,所以顺序不能乱
b)常见的编辑方法就是 system-config-kickstart.noarch 编辑
c)centos6.x 如果都到了选语言的界面之后,出现异常提出的问题,绝对就是 ks.cfg 文件有问题,再改改
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142640.htm