这是安装系类的第三篇,下。那我们结合前面的安装经验跟思路。结合PXE的原理,来无盘安装RHEL.
     框架: PXE+kickstart+DHCP+DNS(可选)+NFS(可选)+FTP
      实验环境:
      
 pxe server
 192.168.0.1(RHEL6.2)
 client(裸机) 
 dhcp server
 192.168.0.1
 dhcp client
 ftp server
 192.168.0.1
/var/ftp/pub/RHEL6.2
 
 kickstart 192.168.0.1
/var/ftp/pub/RHEL6.2/ks.cfg
 
 nfs server
   (可选)
 192.168.0.1
/var/ftp/pub               <world>
/var/ftp/pub/RHEL6.2 <world>

    服务器端:配置
    DHCP:动态分配ip地址,方便管理局域网的主机。可以分配主机地址,dns,网关等信息。
    安装:
[root@kikupotter ~]# rpm -qa | grep dhcp // 查看是否安装
dhcp-4.1.1-25.P1.el6.x86_64
dhcp-common-4.1.1-25.P1.el6.x86_64
[root@kikupotter ~]# yum -y install dhcp // 没有安装的运行这条命令
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
Setting up Install Process
Package 12:dhcp-4.1.1-25.P1.el6.x86_64 already installed and latest version
Nothing to do
    配置:指定网段192.168.0.1 dns 192.168.0.1与 pxelinux.0 路径。
[root@kikupotter ~]# cd /etc/dhcp/
[root@kikupotter dhcp]# vim dhcpd.conf
ddns-update-style none;
subnet 192.168.0.0 netmask 255.255.255.0 {

class "virtual" {
                match if substring (hardware, 1, 3) = 00:16:3e;
}
                option subnet-mask 255.255.255.0;
                option routers 192.168.0.254;
                option domain-name "218.85.157.99";
                option domain-name-servers 218.85.157.99;
                default-lease-time 21600;
                max-lease-time 43200;
                range 192.168.0.3 192.168.0.15;
                # Assign IPs 61-80 to Xen domUs
                 next-server 192.168.0.1;
                filename "pxelinux.0";
}
或者运行以下命令:
 
cat >/etc/dhcp/dhcpd.conf<< EOF
ddns-update-style none;
subnet 192.168.0.0 netmask 255.255.255.0 {

class "virtual" {
                match if substring (hardware, 1, 3) = 00:16:3e;
}
                option subnet-mask 255.255.255.0;
                option routers 192.168.0.254;
                option domain-name "218.85.157.99";
                option domain-name-servers 218.85.157.99;
                default-lease-time 21600;
                max-lease-time 43200;
                range 192.168.0.3 192.168.0.15;
                # Assign IPs 61-80 to Xen domUs
                 next-server 192.168.0.1;
                filename "pxelinux.0";
}
EOF
   重启或者启动服务,加入开机运行。
 
[root@kikupotter ~]# service dhcpd restart
Shutting down dhcpd:       
[    OK    ]                                                                    
Startingdhcpd:                                                                                      [    OK    ]
[root@kikupotter ~]# chkconfig dhcpd on
[root@kikupotter ~]# chkconfig --list | grep dhcpd
dhcpd              0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
dhcpd6             0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭
     安装FTP:
 
[root@kikupotter ~]# rpm -qa | grep vsftpd
vsftpd-2.2.2-6.el6_0.1.x86_64
[root@kikupotter ~]# yum -y install vsftpd //未安装则运行此条命令

    配置FTP:
      一般不需要配置。然后将光盘的内容拷贝的/var/ftp/pub下面。
      我是将整个内容放在pub下的HREL6.2的目录内,这个目录是自己定义了。
[root@kikupotter RHEL6.2]# pwd 
/var/ftp/pub/RHEL6.2
[root@kikupotter RHEL6.2]# ls  //光盘的内容
EFI               RELEASE-NOTES-as-IN.html  RELEASE-NOTES-pt-BR.html
EULA              RELEASE-NOTES-bn-IN.html  RELEASE-NOTES-ru-RU.html
EXAMPLE-CA-CERT   RELEASE-NOTES-de-DE.html  RELEASE-NOTES-si-LK.html
example-ca.crt    RELEASE-NOTES-en-US.html  RELEASE-NOTES-ta-IN.html
GPL               RELEASE-NOTES-es-ES.html  RELEASE-NOTES-te-IN.html
HighAvailability  RELEASE-NOTES-fr-FR.html  RELEASE-NOTES-zh-CN.html
p_w_picpaths            RELEASE-NOTES-gu-IN.html  RELEASE-NOTES-zh-TW.html
isolinux          RELEASE-NOTES-hi-IN.html  repodata
ks.cfg            RELEASE-NOTES-it-IT.html  ResilientStorage
ks.cfg~           RELEASE-NOTES-ja-JP.html  RPM-GPG-KEY-redhat-beta
LoadBalancer      RELEASE-NOTES-kn-IN.html  RPM-GPG-KEY-redhat-release
lost+found        RELEASE-NOTES-ko-KR.html  ScalableFileSystem
media.repo        RELEASE-NOTES-ml-IN.html  Server
my-ca.crt         RELEASE-NOTES-mr-IN.html  TRANS.TBL
Packages          RELEASE-NOTES-or-IN.html
README            RELEASE-NOTES-pa-IN.html
   启动或者重启FTP服务,加入开机启动
[root@kikupotter ~]# service vsftpd restart
Shutting down vsftpd:                                                                            [    OK    ]
Starting vsftpd for vsftpd:                                                                [    OK    ]
[root@kikupotter ~]# chkconfig vsftpd on
[root@kikupotter ~]# chkconfig --list | grep vsftpd
vsftpd                    0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
   安装kickstart
[root@kikupotter ~]# rpm -qa |grep kickstart
pykickstart-1.74.6-1.el6.noarch
system-config-kickstart-2.8.6.4-1.el6.noarch
[root@kikupotter ~]# yum -y install system-config-kickstart
   运行kickstart 编写第一个ks.cfg文件。
   或者运行!
cat >/var/ftp/pub/RHEL6.2/ks.cfg<<EOF
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use NFS installation media
nfs --server=192.168.0.1 --dir=/var/ftp/pub/centos_6.3_final
# Root password
rootpw --iscrypted $1$1mOtsVK8$ypiScxGkTE32g8Q9lQzIt0
# System authorization information
auth    --useshadow    --passalgo=sha512
# Use text mode install
text
# Run the Setup Agent on first boot
firstboot --enable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --enforcing
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone    Asia/Shanghai
# Network information
network    --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr --password="redhat" --iscrypted
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="ext4" --size=100
part / --fstype="ext4" --grow --size=25000
part swap --fstype="swap" --size=2048
part /usr --fstype="ext4" --size=50000
part /var --fstype="ext4" --size=50000
%packages
@base
@basic-desktop
@chinese-support
@desktop-platform
@fonts
@ftp-server
@general-desktop
@graphical-admin-tools
@graphics
@input-methods
@internet-browser
@legacy-x
@nfs-file-server
@remote-desktop-clients
@x11
%end
EOF
   安装TFTP服务。
[root@kikupotter ~]# rpm -qa |grep xinetd
xinetd-2.3.14-33.el6.x86_64
[root@kikupotter ~]# rpm -qa |grep tftp
tftp-server-0.49-7.el6.x86_64
tftp-0.49-7.el6.x86_64
[root@kikupotter ~]# yum -y install  xinetd tftp
    配置TFTP
    或者运行一下命令
cat >/etc/xinetd.d/tftp<<EOF
# default: off
# description: The tftp server serves files using the trivial file transfer \
#             protocol.    The tftp protocol is often used to boot diskless \
#             workstations, download configuration files to network-aware printers, \
#             and to start the installation process for some operating systems.
service tftp
{
                disable = no
                socket_type                         = dgram
                protocol                                = udp
                wait                                        = yes
                user                                        = root
                server                                    = /usr/sbin/in.tftpd
                server_args                         = -s /tftpboot
                per_source                            = 11
                cps                                         = 100 2
                flags                                     = IPv4
}
EOF
   启动TFTP服务
[root@kikupotter ~]# service xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]
[root@kikupotter ~]# chkconfig xinetd on
[root@kikupotter ~]# chkconfig tftp on
[root@kikupotter ~]# chkconfig --list | grep tftp
  tftp:                      启用
    配置PXE启动源。
 
[root@kikupotter ~]# mkdir /tftpboot
[root@kikupotter ~]# rpm -qa | grep syslinux
syslinux-4.02-4.el6.x86_64
[root@kikupotter ~]# cd /usr/share/syslinux/
[root@kikupotter syslinux]# cp chain.c32 mboot.c32 menu.c32 pxelinux.0 memdisk /tftpboot/
[root@kikupotter p_w_picpaths]# pwd
/var/ftp/pub/RHEL6.2/p_w_picpaths
[root@kikupotter p_w_picpaths]# ls
efiboot.img    install.img    pxeboot    TRANS.TBL
efidisk.img    product.img    README
[root@kikupotter p_w_picpaths]# cd pxeboot/
[root@kikupotter pxeboot]# ls
initrd.img    TRANS.TBL    vmlinuz
[root@kikupotter pxeboot]# cp * /tftpboot/
[root@kikupotter tftpboot]# ls
chain.c32    mboot.c32    menu.c32        
   initrd.img  TRANS.TBL  vmlinuz
     memdisk        pxelinux.0    TRANS.TBL
[root@kikupotter tftpboot]# mkdir pxelinux.cfg
[root@kikupotter tftpboot]# cd pxelinux.cfg、
// 配置提示接界面,default 文件
default    menu.c32
prompt 0
timeout 300
ONTIMEOUT local

MENU TITLE PXE Menu

LABEL redhat 6.2 x86_64    
                MENU LABEL redhat 6.2 x86_64
                KERNEL vmlinuz  //
                APPEND initrd=initrd.img    ksdevice=eth0 network ks=ftp://192.168.0.1/pub/RHEL6.2/ks.cfg //指定ks路径。
    那整个服务器就配置好了。
   下面进入测试阶段:
  1. 启动裸设备,bios设置成从网络启动。
  2. 客户端获取ip,TFTP下载pxeliunx.0文件

  3. 客户端读取default文件,我们选择安装redhat 6.2.

  4. 则根据default记录的信息,现将内核初始化系统载入内存。先完成启动过程。
  5. 然后启动安装程序,安装程序会下载下载ks文件,并且进行读取看看是否有错,确认无误ks文件进行安装。
    终于完成一个安装系列了。那五天的第一天就完成redhat的系统安装。分别从初级,中级,较高级的角度安装linux。
    接下来马上要着手的是管理系列,敬请期待。