鸿 网 互 联 www.68idc.cn

PXE+DHCP+HTTP/FTP/NFS+kickstart安装无人值守的LINUX

来源:互联网 作者:佚名 时间:2012-09-20 14:16
PXE+DHCP+HTTP/FTP/NFS+kickstart安装无人值守的LINUX 说的明白点,就是网络安装。以安装的主机为服务器,被安装的裸机为客户端,通过网络传输的方法服务器为客户端装LINUX系统,批量装机的必选方法。原理可以再网上搜出很多来,略过。 我使用的RHEL5.4系统 拓
PXE+DHCP+HTTP/FTP/NFS+kickstart安装无人值守的LINUX
说的明白点,就是网络安装。以安装的主机为服务器,被安装的裸机为客户端,通过网络传输的方法服务器为客户端装LINUX系统,批量装机的必选方法。原理可以再网上搜出很多来,略过。
我使用的RHEL5.4系统
拓扑很简单如下:
  Server  ip:192.168.2.1/24 ----------- Client
我使用的是vmware做的实验。用vmware做实验一定要注意一点的是必须关闭虚拟网卡的DHCP的功能。否则实验有很大的机会失败,会跳出一个提示,大致的意思就是无法下载到kickstart文件,要求修改路径。博主就在这个问题上面花费了大半个下午才发现,现在想想,获取的IP地址都不是和Server同一个网段的,下载到kickstart那就无从说起了,所以大家一定要注意。
关闭方法是可以通过vmware上面的编辑菜单下的虚拟网络设置里面来关闭。

接下来开始我们的实验,我们在http/ftp/nfs中选用http来做实验:
1.       安装http服务器
配置好yum的仓库之后,挂载cdrom,yum –y install httpd* 装好http服务
http装好后,无需修改配置文件,直接service httpd restart 启用http服务。
同时我们可以通过netstat –tunlp查看端口是否在监听
2.启动tftp服务
  由于tftp服务是由xinetd管理的,所以我们要修改/etc/xinetd.d/tftp这个文件
将其中的disable = yes改成no,not disable就是enable的意思啦,很容易理解吧。改好之后保存就能启动tftp服务了。由于这里tftp是由xinetd管理的服务,所以要启动xinetd,service tftp restart是不行的哦。。。。
Tftp服务启动了没有呢,同样netstat –tunlp查看端口是否监听:
没有tftp的,但是有xinetd,原因同上。
3.DHCP服务。
同理,通过rpm包安装DHCP服务。
通过经验肯定是安装第一个了,所以rpm -ivh dhcp-3.0.5-21.el5.i386.rpm
安装很顺利:
DHCP是需要配置的,包括地址池,网关,掩码以及DNS服务器的配置。它的配置文件在/etc/dhcpd.conf,但是这个文件几乎是空的
但后面那句话写的相当精辟,我们只要把dhcpd.conf.sample拷过来并改名成dhcpd.conf覆盖掉原来的dhcpd.conf就ok了。
进入dhcpd.conf
subnet 修改成 192.168.2.0  掩码255.255.255.0
option routers就是网关 192.168.2.1
option subnet-mask就是网关的掩码
dns服务器的一些信息我们可以忽略不计,不影响我们装系统,但是还是要改成192.168.2.1
range dynamic-bootp这句就是设置地址池,第一个是开始地址,第二个是末尾地址
最重要的还是要在subnet上面加2句话
next-server 192.168.2.1;
filename “/pxelinux.0”;
注意这里后面不能少掉分号。
全部设置好了就保存并且启动http服务。
4 关于pxe启动程序的一些配置
Pxe启动程序有这些
vmlinuz    这个是linux的内核文件
initrd.img  这个文件是文件系统镜像文件,里面包含一些特殊的硬件模块尤其是存储设备的模块,驱动。以下是网上关于initrd.img的一个解释:vmlinuz自然就是内核了,initrd.img是一个小的映象,包含一个最小的linux系统。通常的步骤是先启动内核,然后内核挂载initrd.img,并执行里面的脚本来进一步挂载各种各样的模块,然后发现真正的root分区,挂载并执行/sbin/init... ...initrd.img当然是可选的了,如果没有initrd.img,内核就试图直接挂载root分区。之所以要有initrd,那是为了启动的时候有更大的灵活性。比如,你把ext3支持编译成模块了。偏偏你的root分区又是ext3的。这下就麻烦了。因为内核需要挂载root分区之后才能加载ext3支持。但是没有ext3支持就没法挂载root分区。initrd就是用来解决这个问题的。类似的用这个东西还可以做其他的事情,比如从usb盘启动linux也会面临上面类似的问题。用initrd就能搞定了。甚至,我想在有些嵌入式设备里面都不需要真正的root分区,用initrd就足够搞定一切了。
pxelinux.0 当tftp服务器将pxelinux.0推到客户端之后,客户端通过这个来读取pxelinux.cft/default这个文件。
pxelinux.cfg/default  定义启动的一些参数

vmlinuz和initrd.img以及default文件分别在光盘的isolinux文件夹里面有,直接拷贝到/tftpboot文件夹中就可以了,这个/tftpboot是在tftp的配置文件中定义的,名字不可以随便改的(除非把tftp服务器中的工作路径也改掉。)
其中default就是需要isolinux.cfg拷贝过来然后把名字改成default
而pxelinux.0可以通过locate查找一下就可以了
这里因为我已经拷过来了,所以显示2个路径,一般都是显示下面个路径,拷过来就好了
如果locate找不到的话,可以用updatedb更新下数据库就能locate到了。
所以现在/tftpboot文件夹中有如下文件
pxelinux.cfg文件夹下面就是default文件

5  default文件
default文件里面是一些启动的参数
default linux  
prompt 1
timeout 600  
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
  kernel vmlinuz
  append ks=http://192.168.2.1/ks.cfg initrd=initrd.img

如果用的nfs的话就是 nfs:192.168.2.1:/tftpboot/ks.cfg
ftp的话就是ftp://192.168.2.1/ks.cfg  (其中ks.cfg在/var/ftp/pub目录下面)

7.kickstart文件
先要安装system-config-kickstart:
通过yum –y install system-config-kickstart

安装成功就能配置了,system-config-kickstart 图形化配置ks.cfg
按照左边的一步一步设置,设置过程省略了。设置好后点File然后保存到/var/www/html就可以了。
以下是我的ks.cfg文件,还有注意的一点就是
auth  --useshadow  --enablemd5
key --skip  这里要加上,不然在要输入install key的地方会停下来等待输入,这样就不能实现无人值守了
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# Installation logging level
logging --level=info
# Use network installation
url --url=http://192.168.2.1/
# Reboot after installation
reboot
#Root password
rootpw --iscrypted $1$A9D3/zQk$abL8S0RSyT.klUS2yZLr6.

# SELinux configuration
selinux --disabled
# System timezone
timezone  America/New_York
# Install OS instead of upgrade
install
# X Window System configuration information
xconfig  --defaultdesktop=GNOME --depth=8 --resolution=640x480
# Disk partitioning information
part / --bytes-per-inode=4096 --fstype="ext3" --size=10000
part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100
part swap --bytes-per-inode=4096 --fstype="swap" --size=1000

%packages
@gnome-desktop
@chinese-support
@editors


好,ks.cfg文件搞定,pxe安装系统的前期准备工作已经完成。可以开始安装了。
启动一台裸机,进入BIOS设置boot方式为网络安装。
出现如下画面
输入linux,系统开始启动
以下是安装画面截图
由于我是在text模式下安装的,所以看不到任何图形画面,当然速度也应该更快的。

OK 完工。
网友评论
<