无人值守安装Linux 5操作系统
一、过程思路:
1、客户端网卡在主机启动初始化时通过网卡内置的PXE芯片启动DHCP进程向server获取ip地址,网卡获取到ip地址后,server会提供给client一个下载bootloader的指令,就是dhcp服务器中dhcpd.conf配置文件中filename这个选项。
2、网卡PXE芯片中已经包含了tftp client程序,获取到ip地址后,网卡会启动tftp服务去向tftp server请求传输这个bootloader文件PXElinux.0。当Bootloader加载后我们可以看到主机屏幕上有信息显示,而这个画面就是我们在用光驱装linux的时候看到的第一个画面。画面提示选择图形界面安装还是linux text字符界面安装等信息。如果在server端的tftpboot目录下只有这个文件,那么客户机会一直停留在boot这个地方,因为没有default这个bootloader配置文件告诉机器下一步加载哪个系统内核,default配置文件的作用是告诉主机从哪里去加载操作系统内核,这个时候如果我们按照正常光碟装机时会看到提示:输入回车或者linux text等信息。Bootloader会去调用default配置文件中的操作系统内核文件。
3、default文件配置好之后,接着就是指定内核文件,这个在default文件最后。就是vmlinuz,initrd.img,*.msg这几个文件。
4、到这一步加载成功后,系统就按照我们平常光碟装系统看到的过程一模一样了,选择语言,鼠标,键盘等,但因为有了KS这个自动安装脚步,这些都不要我们手工去指定,全部会自动完成。
5、到这里为止,也许有人会问,那我们从哪里去加载安装的镜像。且慢,不是有个ks安装脚本吗,就是这个脚本里面我们可以指定安装镜像在哪里。
6、现在就考虑系统镜像的传输,这里我们选用linux特有的NFS网络文件系统进行镜像的传输。当然也可以用HTTP,FTP等方式。但为什么我们不直接使用tftp呢,因为这个协议在传输大文件的时候效率非常低。
二.具体操作过程
1.配Server IP为:192.168.1.100 ,安装镜像挂载到/mnt下。(/mnt为我创建的本地yum源,参考
2.安装tftp服务 、dhcp服务和nfs服务(一般默认已安装).安装前先查看这些服务是否已安装
# rpm -qa |grep tftp
# rpm -qa |grep dhcp
# rpm -qa |grep nfs
# rpm -q portmap
未安装的进行安装
yum install dhcp-*
yum install tftp-*
yum install nfs-utils portmap
3.配置启动DHCP服务
#cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
#vi /etc/dhcpd.conf最后一行添加filename "pxelinux.0";
next-server 192.168.1.100;
配置举例:
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers192.168.1.1;
option subnet-mask255.255.255.0;
option time-offset-18000; # Eastern Standard Time
range dynamic-bootp 192.168.1.128 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;
filename "pxelinux.0";
next-server 192.168.1.10;
}
#service dhcpd restart//启动服务
4.复制内核相关文件到/tftpboot下#cd /tftpboot
#cp /mnt/cdrom/isolinux/* ./
#mkdir pxelinux.cfg
#mv isolinux.cfg pxelinux.cfg/default
#cp /usr/lib/syslinux/pxelinux.0./
5.修改tftp参数并启动tftp服务
# vi /etc/xinetd.d/tftp
……………………………………………………………………………………
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 client客户端从服务器的哪个目录去加载bootloader的pxelinux.0文件。
#service xinetd restart //启动服务
6.修改/tftpboot/pxelinux.cfg/default文件
#vi /tftpboot/pxelinux.cfg/default修改第3行,第12行.
1 default linux
2 prompt 1
3 timeout10时间4 display boot.msg
5 F1 boot.msg
6 F2 options.msg
7 F3 general.msg
8 F4 param.msg
9 F5 rescue.msg
10 label linux
11 kernel vmlinuz
12 appendks=nfs:192.168.1.100:/pub/ks.cfginitrd=initrd.img
13 label text……
7.安装kickstart配置ks.cfg
#cd /mnt/cdrom/CentOS
#yum install kickstart
#system-config-kickstart(在图形界面终端打此命令)根据需要配置ks.cfg.
在/目录下创建pub目录,将ks.cfg移动到此目录下。#chmod 757 /pub/ks.cfg修改ks.cfg权限
手动修改ks.cfg文件,最终配置示例如下:
#platform=x86, AMD64,或– Intel EM64
# System authorization information
auth--useshadow--enablemd5
# System bootloader configuration
bootloader --location=mbr
key --skip//跳过安装序列号,需要手动修改添加
# Partition clearing information
zerombr
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 NFS installation media
nfs --server=192.168.1.100 --dir=/media
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
# Reboot after installation
reboot
#Root password
rootpw --iscrypted $1$CbqAiBPx$/TwPJepXJ0sKsiU4/Urd4/
# SELinux configuration
selinux --disabled
# System timezone
timezoneAsia/Shanghai
# Install OS instead of upgrade
install
# X Window System configuration information
xconfig--defaultdesktop=GNOME --depth=8 --resolution=640x480
# Disk partitioning information
part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100
part swap --bytes-per-inode=4096 --fstype="swap" --size=1024
part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
%packages --resolvedeps
@ base-x//最小化安装(如果用kickstart不能选择安装包时需要手动添加)
8.配置nfs并启动服务
#vi /etc/exports//添加两行记录
/mnt/cdrom*(ro)
/pub*(ro)
#service nfs restart
9.为保证实验一次成功,将所有服务都重新启动一下
#service dhcpd restart
#service xinetd restart
#service nfs restart
10.新建一虚拟机开机进行测试.
实验成功标志:客户端只能有个开机动作