无人值守安装linux

一、原理和概念

1.1什么是PXE

PXE并不是一种安装方式,而是一种引导方式。进行PXE安装的必要条件是要安装的计算机中包含一个PXE支持的网卡(NIC),即网卡中必须要有PXE Client。PXE(Pre-boot Execution Environment)协议使计算机可以通过网络启动。


PXE协议分为client和server端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,由PXE client将放置在远端的文件通过网络下载到本地运行。


运行PXE协议需要设置DHCP服务器和TFTP服务器。DHCP服务器用来给PXE client(将要安装系统的主机)分配一个IP地址,所以在配置DHCP服务器时需要增加相应的PXE设置。


在PXE client的ROM中已经存在了TFTP Client。PXE Client通过TFTP协议到TFTP服务器上传下载所需的文件。


1.2什么是KickStart

KickStart是一种无人值守的安装方式。

KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件,在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写的参数的情况时,安装程序会首先去查找kickstar生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果kickstart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后只需等待安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。


二、实验环境

虚拟机:centos 6.4

实验需要两台虚拟机:一台配置,另一台实验(无操作系统)


PXE+KickStart安装的条件:

执行PXE+KickStart安装所需的设备:

DHCP:用来给客户机自动分配IP

TFTP:用来存储PXE相关的文件,比如系统引导文件

FTP:用来存放系统安装文件

KickStart:生成ks.cfg配置文件。


带有一个PXE支持网卡的将安装的主机

如果是virtualbox要到官网上下载扩展包


整个过程使用rpm安装,安装软件包时请转移到/var/ftp/pub/Package/下安装


三、安装步骤

1.挂载DVD光盘

虚拟机Settings-->Storage-->Attributes选择你的光盘-->OK

# mount /dev/cdrom /mnt/


2.安装vsftp并复制光盘的所有内容到/var/ftp/pub

# cd /mnt/Packages/

# rpm -ivh vsftpd-2.2.2-11.el6_3.1.x86_64.rpm

# cp –rf /mnt/* /var/ftp/pub/

# service vsftpd start

# chkconfig vsftpd on


3.安装tftp-server和xinetd

# rpm -ivh xinetd-2.3.14-38.el6.x86_64.rpm 

# rpm -ivh tftp-server-0.49-7.el6.x86_64.rpm

修改tftp的配置文件

# 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                          ####注意这里改为no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}


# service xinetd start

# chkconfig xinetd on 


4.安装DHCP服务,同时修改配置文件

先设置一下本机的IP

# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.1.1 #本机IP

GATEWAT=192.168.1.1

NETWORK=255.255.255.0

重启网络

#service network restart

安装DHCP

# rpm -ivh dhcp-4.1.1-34.P1.el6.centos.x86_64.rpm 

修改DHCP的配置文件:

# vim /etc/dhcp/dhcpd.conf 

#

# DHCP Server Configuration file.

#   see /usr/share/doc/dhcp*/dhcpd.conf.sample

#   see 'man 5 dhcpd.conf'

#


ddns-update-style none;

next-server 192.168.1.1; #PXE服务器的IP

filename "pxelinux.0";

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.150 192.168.1.200; #动态分配IP段从150到200

#option broadcast-address 192.168.1.1;

option routers 192.168.1.1;

default-lease-time 600;

max-lease-time 7200;

}


# service dhcpd start

# chkconfig dhcpd on


5.配置支持PXE启动

首先需要安装syslinux包和相应的软件包,来保证以下步骤不缺少相应的文件

# rpm -ivh perl-Crypt-PasswdMD5-1.3-6.el6.noarch.rpm 

# rpm -ivh perl-Digest-SHA1-2.12-2.el6.x86_64.rpm 

# rpm -ivh syslinux-3.86.1.1.el6.x86_64.rpm


复制PXE启动所需的文件

# mkdir /var/lib/tftpboot/pxelinux.cfg

# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 


# cp /var/ftp/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default 


# cp /var/ftp/pub/image/pxeboot/initrd.img /var/lib/tftpboot/ 

# cp /var/ftp/pub/image/pxeboot/vmlinux /var/lib/tftpboot/ 

# cp /var/ftp/pub/isolinux/boot.msg /var/lib/tftpboot/ 

# cp /var/ftp/pub/isolinux/splash.jpg /var/lib/tftpboot/ 


# cp /var/ftp/pub/isolinux/vesamenu.c32 /var/lib/tftpboot 

# chmod u+w /var/lib/tftpboot/pxelinux.cfg/default 


修改default文件配置文件ks.cfg的存放路径

# vim /var/lib/tftpboot/pxelinux.cfg/default 

default vesamenu.c32

#prompt 1

timeout 600

display boot.msg

menu background splash.jpg

menu title Welcome to CentOS 6.4!

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=ftp://192.168.1.1/pub/ks.cfg    #ks.cfg的存放路径


6.安装kickstart,同时配置kickstart(如果你的系统没有装anaconda的话,请把下面的rpm包全部装上)

#rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm  

createrepo-0.9.8-4.el6.noarch.rpm 

device-mapper-multipath-libs-0.4.9-31.el6.x86_64.rpm 

device-mapper-multipath-0.4.9-31.el6.x86_64.rpm  

libhbaapi-2.2-10.el6.x86_64.rpm 

libhbalinux-1.0.10-1.el6.x86_64.rpm 

libconfig-1.3.2-1.1.el6.x86_64.rpm

lldpad-0.9.38-3.el6.x86_64.rpm  

fcoe-utils-1.0.14-9.el6.x86_64.rpm 

isomd5sum-1.0.6-1.el6.x86_64.rpm 

iscsi-initiator-utils-6.2.0.872-10.el6.x86_64.rpm

makebootfat-1.4-10.el6.x86_64.rpm

pykickstart-1.74.1-1.el6.noarch.rpm

pyparted-3.4-2.el6.x86_64.rpm 

python-cryptsetup-0.0.11-1.el6.x86_64.rpm 

python-nss-0.8-3.el6.x86_64.rpm

python-pyblock-0.48-1.el6.x86_64.rpm

squashfs-tools-4.0-3.el6.x86_64.rpm 

tigervnc-server-1.0.90-0.10.20100115svn3945.el6.x86_64.rpm 

anaconda-yum-plugins-1.0-5.1.el6.noarch.rpm 

anaconda-13.21.82-1.el6.x86_64.rpm 

system-config-language-1.3.4-5.el6.noarch.rpm 

system-config-kickstart-2.8.6.2-1.el6.noarch.rpm 


参考:

http://wenku.baidu.com/link?url=G0IDbh8CFXBoU9hwAwvpaUsp_3GZH1doST054bf4OskdZ4rT7C1qVaYK2Bko7xmR5NBfHZzNyazuayiYrDQuK0n0WA1RzfIl-UUyHjcSHNy

经过上面的安装,现在可以在gnome环境下配置kickstart了

#system-config-kickstart

7.配置yum 

安装yum源,设置如下

# vim /etc/yum.repos.d/rhel.repo 

[Packages]

name=Packages

baseurl=ftp://localhost/pub

gpgcheck=1

enable=1


8.注意关闭防火墙和selinux

# service iptables stop

# setenforce 0


如果没有关闭防火墙和selinux会出现下面的错误:

PXE-E32:TFTP open timeout 


9.客户端安装一台空的虚拟机

即不需要镜像安装

在这台虚拟机上Settings-->System-->Boot Order选择Network上移到第一个-->OK

Network-->Attached to 选择Bridged Adapter-->OK


点击Show,安装完以后把

在这台虚拟机上Settings-->System-->Boot Order去掉Network-->OK












你可能感兴趣的:(无人值守安装linux)