本帖最后由 flyingfishzxf 于 2016-3-22 15:08 编辑
战前理论:
什么是PXE?
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术, 工作于Client/Server的网络模式, 只想hi工作站通过网络从远程服务器下载镜像, 并由此支持通过网络启动操作系统, 在启动过程中, 终端要求服务器分配IP地址, 在用TFTP(Trivial file transfer protocol)或MTFTP(Multicast Trivial File Transfer Protocol)协议卸载一个启动软件包到本机内存中执行, 这个启动软件包完成终端基本软件设置, 从而引导预先安装服务器中的操作系统. PXE可以引导多种操作系统, 如: Windows 95/98/2000/windows 2008/xp/win 7/win8;
Kickstart技术:
Kickstart技术的核心是:自动应答文件(Kickstart文件),就是将本来在安装过程中需要我们手动设置的语言、密码、网络参数等通过读取读取自动应答文件实现自动设置。也就是说,我们需要事先将对操作系统的设置写入自动应答文件,开始安装操作系统时,指定安装程序读取自动应答文件实现自动安装及部署操作系统。
以下配置文件中的IP等内容需根据实际环境填写,不可原样复制
1、安装服务器的IP:192.168.13.101
2、具体实现步骤如下
(1)安装部署DHCP服务
yum install -y dhcp
修改配置文件:/etc/dhcp/dhcpd.conf
配置说明:指定为192.168.13.0/13网络分配动态IP地址,动态地址池从192.168.13.150至192.168.13.200;客户端获取的网关地址为192.168.13.2;TFTP地址为192.168.13.101,启动文件名称为pxelinux.0。
启动DHCP服务:service dhcpd start
(2)安装部署TFTP服务
yum install -y tftp-server
vim /etc/xinetd.d/tftp // 修改配置文件如下
配置说明:共享路径为/var/lib/tftpboot。
(3) 将客户端所需启动文件复制到TFTP服务器
yum install -y syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
将光盘或ISO挂载到/media中,将安装镜像中的启动镜像文件和启动配置文件复制到TFTP共享目录下
修改启动配置文件如下:
vim /var/lib/tftpboot/pxelinux.cfg/default
配置说明:default指定默认引导方式,即下面的以label开头的各种引导方式;kernel指定的是系统内核文件;后面的ks参数可以指定自动应答文件的位置,本例设置为通过访问192.168.13.101的NFS共享方式读取kickstart文件。
重启tftp服务:
service xinetd restart
关闭防火墙:
service iptables stop
(4)创建kickstart自动应答文件
mkdir /ks
touch /ks/ks.cfg
vim /ks/ks.cfg
自动应答文件内容如下
(5)部署NFS服务
修改NFS配置文件如下:vim /etc/exports
/ks 192.168.13.0/255.255.255.0(ro)
/media 192.168.13.0/255.255.255.0(ro)
启动NFS服务
service nfs start
(6)开启客户机
对于首次安装的客户机来说,不需要进入BIOS更改启动顺序,从CD-ROM或硬盘找不到自然会从网络寻找安装源
战前理论:
什么是PXE?
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术, 工作于Client/Server的网络模式, 只想hi工作站通过网络从远程服务器下载镜像, 并由此支持通过网络启动操作系统, 在启动过程中, 终端要求服务器分配IP地址, 在用TFTP(Trivial file transfer protocol)或MTFTP(Multicast Trivial File Transfer Protocol)协议卸载一个启动软件包到本机内存中执行, 这个启动软件包完成终端基本软件设置, 从而引导预先安装服务器中的操作系统. PXE可以引导多种操作系统, 如: Windows 95/98/2000/windows 2008/xp/win 7/win8;
Kickstart技术:
Kickstart技术的核心是:自动应答文件(Kickstart文件),就是将本来在安装过程中需要我们手动设置的语言、密码、网络参数等通过读取读取自动应答文件实现自动设置。也就是说,我们需要事先将对操作系统的设置写入自动应答文件,开始安装操作系统时,指定安装程序读取自动应答文件实现自动安装及部署操作系统。
以下配置文件中的IP等内容需根据实际环境填写,不可原样复制
1、安装服务器的IP:192.168.13.101
2、具体实现步骤如下
(1)安装部署DHCP服务
yum install -y dhcp
修改配置文件:/etc/dhcp/dhcpd.conf
- log-facility local7;
- subnet 192.168.13.0 netmask 255.255.255.0 {
- range 192.168.13.150 192.168.13.200;
- option domain-name-servers 8.8.8.8;
- option routers 192.168.13.2;
- default-lease-time 600;
- max-lease-time 7200;
- next-server 192.168.13.101;
- filename "pxelinux.0";
- }
配置说明:指定为192.168.13.0/13网络分配动态IP地址,动态地址池从192.168.13.150至192.168.13.200;客户端获取的网关地址为192.168.13.2;TFTP地址为192.168.13.101,启动文件名称为pxelinux.0。
启动DHCP服务:service dhcpd start
(2)安装部署TFTP服务
yum install -y tftp-server
vim /etc/xinetd.d/tftp // 修改配置文件如下
- service tftp
- {
- socket_type = dgram
- protocol = udp
- wait = yes
- user = root
- server = /usr/sbin/in.tftpd
- server_args = -s /var/lib/tftpboot
- disable = no
- per_source = 11
- cps = 100 2
- flags = IPv4
- }
配置说明:共享路径为/var/lib/tftpboot。
(3) 将客户端所需启动文件复制到TFTP服务器
yum install -y syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
将光盘或ISO挂载到/media中,将安装镜像中的启动镜像文件和启动配置文件复制到TFTP共享目录下
- mount /dev/cdrom /media/
- cp /media/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
修改启动配置文件如下:
vim /var/lib/tftpboot/pxelinux.cfg/default
- default linux
- #prompt 1
- timeout 600
- display boot.msg
- menu background splash.jpg
- menu title Welcome to CentOS 6.5!
- menu color border 0 #ffffffff #00000000
- menu color sel 7 #ffffffff #ff000000
- menu color title 0 #ffffffff #00000000
- menu color tabmsg 0 #ffffffff #00000000
- menu color unsel 0 #ffffffff #00000000
- menu color hotsel 0 #ff000000 #ffffffff
- menu color hotkey 7 #ffffffff #ff000000
- menu color scrollbar 0 #ffffffff #00000000
- label linux
- menu label ^Install or upgrade an existing system
- menu default
- kernel vmlinuz
- append initrd=initrd.img ks=nfs:192.168.13.101:/ks/ks.cfg
- label vesa
- menu label Install system with ^basic video driver
- kernel vmlinuz
- append initrd=initrd.img xdriver=vesa nomodeset
- label rescue
- menu label ^Rescue installed system
- kernel vmlinuz
- append initrd=initrd.img rescue
- label local
- menu label Boot from ^local drive
- localboot 0xffff
- label memtest86
- menu label ^Memory test
- kernel memtest
- append -
配置说明:default指定默认引导方式,即下面的以label开头的各种引导方式;kernel指定的是系统内核文件;后面的ks参数可以指定自动应答文件的位置,本例设置为通过访问192.168.13.101的NFS共享方式读取kickstart文件。
重启tftp服务:
service xinetd restart
关闭防火墙:
service iptables stop
(4)创建kickstart自动应答文件
mkdir /ks
touch /ks/ks.cfg
vim /ks/ks.cfg
自动应答文件内容如下
- #platform=x86, AMD64, 或 Intel EM64T
- #version=DEVEL
- # 禁用防火墙规则iptables
- firewall --disabled
- # 安装系统
- install
- # nfs服务器地址ip,及nfs上的系统镜像路径
- nfs --server=192.168.13.101 --dir=/media
- # Root 密码(加密的123456)
- rootpw --iscrypted $1$16PXgd.m$C4vE6OJCMGfQVadgm0DSe.
- # System authorization information
- auth --useshadow --passalgo=sha512
- # 使用字符界面安装
- text
- firstboot --disable
- # 美式键盘
- keyboard us
- # 系统语言
- lang en_US
- # 关闭Selinux
- selinux --disabled
- # 不配置图形界面
- skipx
- # 安装日志记录级别为 info
- logging --level=info
- # 安装完成后重启
- reboot
- # 系统时区
- timezone Asia/Shanghai
- # 网络配置:动态获取ip、网卡名称eth0,开机自动启动网络服务,不开启ipv6,主机名(自定义,可以不写,默认localdomain:localhost)
- network --bootproto=dhcp --device=eth0 --onboot=on --noipv6 --hostname=CentOS04
- # 系统启动引导配置:mbr引导
- bootloader --location=mbr
- # 磁盘分区,zerombr:一定要有,不然安装的时候会停在格式化分区界面
- zerombr
- clearpart --all --initlabel
- # 磁盘分区方式
- part /boot --fstype="ext4" --size=200
- part swap --fstype="swap" --size=2000
- part / --fstype="ext4" --grow --size=1
- # 安装完成后要执行的脚本
- %post
- /sbin/chkconfig --level 2345 atd off
- /sbin/chkconfig --level 2345 httpd off
- /sbin/chkconfig --level 2345 cups off
- /sbin/chkconfig --level 2345 smartd off
- /sbin/chkconfig --level 2345 bluetooth off
- /sbin/chkconfig --level 2345 sshd on
- /sbin/chkconfig --level 2345 snmpd on
- /usr/sbin/useradd tomcat
- mkdir /root/.ssh/
- chmod -R 600 /root/.ssh/
- %end
- # 自定义一些软件包,比如vim、开发工具
- %packages
- @additional-devel
- @development
- @core
- vim-common
- vim-enhanced
- vim-minimal
- wget
- lrzsz
- %end
(5)部署NFS服务
修改NFS配置文件如下:vim /etc/exports
/ks 192.168.13.0/255.255.255.0(ro)
/media 192.168.13.0/255.255.255.0(ro)
启动NFS服务
service nfs start
(6)开启客户机
对于首次安装的客户机来说,不需要进入BIOS更改启动顺序,从CD-ROM或硬盘找不到自然会从网络寻找安装源
0
自动应答文件在%post前面少了 zerombr,少了这个的结果是你安装的时候会停在是否初始化磁盘界面,还有 这样安装的系统/boot/grub/grub.conf文件和正常安装的不一样。
还有你这样装,虚拟机内存要至少要1G,装好后 关机把内存弄小,因为vmware虚拟机的快照文件的大小是和你虚拟机内存的大小一样的。。
还有你这样装,虚拟机内存要至少要1G,装好后 关机把内存弄小,因为vmware虚拟机的快照文件的大小是和你虚拟机内存的大小一样的。。
0
谢谢师兄指教,请问师兄有比较好的应答文件不?/boot/grub/grub.conf文件怎样才会和正常安装的一样呢?
qidi2015 发表于 2016-3-8 22:39
自动应答文件在%post前面少了 zerombr,少了这个的结果是你安装的时候会停在是否初始化磁盘界面,还有 这样 ...
谢谢师兄指教,请问师兄有比较好的应答文件不?/boot/grub/grub.conf文件怎样才会和正常安装的一样呢?
0
你的配置文件应该不会影响grub.conf
我的配置文件里面原本有一句 bootloader --location=mbr --driveorder=sda --append="nomodeset crashkernel=auto rhgb quiet"
所以导致了grub.conf不一样。
我的配置文件,安装文件放在apache上。
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
url --url="http://192.168.2.2/centos66"
text
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
rootpw --iscrypted $6$UFa5riPPu2zomj7I$OIylLEY4J19cSjx6il44dR2f.gjehy6ogvhLJhXZ2V86IBe3.aUvBnIqZGkxSiQUG7xXkZiwsbzpVORhdAZ0j0
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="nomodeset crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --none
zerombr #确认初始化磁盘
clearpart --all --initlabel
part /boot --fstype=ext4 --size=100 #/boot 分100M
part swap --size=500
part / --fstype=ext4 --grow --size=1 #剩下的所有空间给根目录 (其实实验环境可以只分一个根目录和一个swap,共两个分区)
reboot #reboot 一定要加上,不然不会自动重启。
firewall --disabled
%packages --nobase #最小化安装
@core
vim-common
vim-enhanced
vim-minimal
wget
lrzsz
%post
wget -P /etc/yum.repos.d/ http://192.168.2.2/{epel,Centos}-6.repo
wget -O /root/autoip.sh http://192.168.2.2/autoip.sh
/bin/sh /root/autoip.sh
%end
我的配置文件里面原本有一句 bootloader --location=mbr --driveorder=sda --append="nomodeset crashkernel=auto rhgb quiet"
所以导致了grub.conf不一样。
我的配置文件,安装文件放在apache上。
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
url --url="http://192.168.2.2/centos66"
text
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
rootpw --iscrypted $6$UFa5riPPu2zomj7I$OIylLEY4J19cSjx6il44dR2f.gjehy6ogvhLJhXZ2V86IBe3.aUvBnIqZGkxSiQUG7xXkZiwsbzpVORhdAZ0j0
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="nomodeset crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --none
zerombr #确认初始化磁盘
clearpart --all --initlabel
part /boot --fstype=ext4 --size=100 #/boot 分100M
part swap --size=500
part / --fstype=ext4 --grow --size=1 #剩下的所有空间给根目录 (其实实验环境可以只分一个根目录和一个swap,共两个分区)
reboot #reboot 一定要加上,不然不会自动重启。
firewall --disabled
%packages --nobase #最小化安装
@core
vim-common
vim-enhanced
vim-minimal
wget
lrzsz
%post
wget -P /etc/yum.repos.d/ http://192.168.2.2/{epel,Centos}-6.repo
wget -O /root/autoip.sh http://192.168.2.2/autoip.sh
/bin/sh /root/autoip.sh
%end
0
谢谢师兄,其实我的自动应答文件是从图形安装的kickstart上设置好生成的文件里拷贝下来的,然后再在字符界面的centos上复制进去修改而来,嘿嘿
qidi2015 发表于 2016-3-9 08:46
你的配置文件应该不会影响grub.conf
我的配置文件里面原本有一句 bootloader --location=mbr --driveorder ...
谢谢师兄,其实我的自动应答文件是从图形安装的kickstart上设置好生成的文件里拷贝下来的,然后再在字符界面的centos上复制进去修改而来,嘿嘿
0
里面的密码是使用密码生成工具生成的md5加密密码或者是sha-512等密码,注意密文密码前面几个字符,对不同加密方式有固定的格式
liushuangwei 发表于 2016-3-21 14:11
自动应答里的初始化密码是多少哇
里面的密码是使用密码生成工具生成的md5加密密码或者是sha-512等密码,注意密文密码前面几个字符,对不同加密方式有固定的格式
0
你这个问题我也没有遇到,是在哪个步骤提示找不到的?你可以贴一个截图看一下吗
liushuangwei 发表于 2016-3-22 11:00
你好,我做这个实验老提示找不到nfs指定的KS. CFG,路径是正确的文件也可以访问,但就提示找不到,防火墙关 ...
你这个问题我也没有遇到,是在哪个步骤提示找不到的?你可以贴一个截图看一下吗
0
你的安装服务器IP和几个配置文件也贴出来看一下,
这是我搜到的可能的原因,你对着试试
Unable to download the kickstart file. Please modify the kickstart parameter below or press Cancel to proceed as an interactive installation.
原因:
可能原因有四种:
(1)权限问题。
(2)NFS配置问题。
(3)ks配置文件路径错误。
(4)iptables和selinux设置问题。
(5)PXE server与Client时间不一致。
解决办法:
(1)检查ks配置文件的权限,是否为755或者更高。
(2)检查NFS的/etc/exports配置内容和服务,并测试是否能够访问。
(3)检查ks配置文件路径和,ks中指定的镜像路径是否正确。
(4)检查iptables配置和selinux的是否已关闭。
(5)用date检查PXE本地时间是否正确,并查看Client时间(无系统可查看BIOS),两者时间否是一致。
liushuangwei 发表于 2016-3-22 13:43
NFS是可以访问的,在windows端用 NFS也可以访问,地址也没有错,但KICKSTART提示找不到
你的安装服务器IP和几个配置文件也贴出来看一下,
这是我搜到的可能的原因,你对着试试
Unable to download the kickstart file. Please modify the kickstart parameter below or press Cancel to proceed as an interactive installation.
原因:
可能原因有四种:
(1)权限问题。
(2)NFS配置问题。
(3)ks配置文件路径错误。
(4)iptables和selinux设置问题。
(5)PXE server与Client时间不一致。
解决办法:
(1)检查ks配置文件的权限,是否为755或者更高。
(2)检查NFS的/etc/exports配置内容和服务,并测试是否能够访问。
(3)检查ks配置文件路径和,ks中指定的镜像路径是否正确。
(4)检查iptables配置和selinux的是否已关闭。
(5)用date检查PXE本地时间是否正确,并查看Client时间(无系统可查看BIOS),两者时间否是一致。
0
我原来发的ks.cfg好像内容有点不全,因为这个帖子的编辑器有个毛病,直接在已经贴好的代码文本里面删除修改,会把很多内容删掉,只能把全部删掉,再重新在编辑器菜单栏里面选择代码<>,把修改好的内容完整粘进去才可以,所以你之前参照的配置文件可能是缺失的,昨天我重新编辑修改了N遍,还加上一一些中文注释,你有时间重新做一遍应该可以成功
如果你把图形界面的CENTOS当作安装服务器的话,可以安装kickstart的图形工具system-config-kickstart,就不用自己手动编写配置文件了
liushuangwei 发表于 2016-3-23 10:07
没有,可能是ks.cfg配置文件有问题吧
我原来发的ks.cfg好像内容有点不全,因为这个帖子的编辑器有个毛病,直接在已经贴好的代码文本里面删除修改,会把很多内容删掉,只能把全部删掉,再重新在编辑器菜单栏里面选择代码<>,把修改好的内容完整粘进去才可以,所以你之前参照的配置文件可能是缺失的,昨天我重新编辑修改了N遍,还加上一一些中文注释,你有时间重新做一遍应该可以成功
如果你把图形界面的CENTOS当作安装服务器的话,可以安装kickstart的图形工具system-config-kickstart,就不用自己手动编写配置文件了
编辑回复