无人值守安装Linux 5操作系统
linux 无人值守kickstart安装_linux
一、过程思路
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配置文件中的操作系统内核文件。
3default 文件配置好之后,接着就是指定内核文件,这个在default文件最后。就是vmlinuzinitrd.img *.msg 这几个文件。
4、到这一步加载成功后,系统就按照我们平常光碟装系统看到的过程一模一样了,选择语言,鼠标,键盘等,但因为有了KS这个自动安装脚步,这些都不要我们手工去指定,全部会自动完成。
5、到这里为止,也许有人会问,那我们从哪里去加载安装的镜像。且慢,不是有个ks安装脚本吗,就是这个脚本里面我们可以指定安装镜像在哪里
6、现在就考虑系统镜像的传输,这里我们选用linux特有的NFS网络文件系统进行镜像的传输。当然也可以用HTTPFTP等方式。但为什么我们不直接使用tftp呢,因为这个协议在传输大文件的时候效率非常低。
二.具体操作过程
1.Server IP为:192.168.1.100 ,安装镜像挂载到/mnt下。(/mnt 为我创建的本地yum源,参考http://crazyming.blog.51cto.com/1048571/313098)

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 routers                  192.168.1.1;
        option subnet-mask              255.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 客户端从服务器的哪个目录去加载bootloaderpxelinux.0文件。
#service xinetd restart       //启动服务
6.修改/tftpboot/pxelinux.cfg/default文件
#vi /tftpboot/pxelinux.cfg/default
修改第3行,第12.
1 default linux
2 prompt 1
3 timeout
10         时间   
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 append
ks=nfs:192.168.1.100:/pub/ks.cfg  initrd=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
timezone  Asia/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.新建一虚拟机开机进行测试.
实验成功标志 :客户端只能有个开机动作