linux 无人值守kickstart安装

无人值守安装 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源,参考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 客户端从服务器的哪个目录去加载 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 timeout
10          时间   
4 display boot.msg
5 F 1 boot.msg
6 F 2 options.msg
7 F 3 general.msg
8 F 4 param.msg
9 F 5 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. 新建一虚拟机开机进行测试.
实验成功标志 :客户端只能有个开机动作
 
  

你可能感兴趣的:(linux,职场,休闲,kickstart)