一.系统的自动安装理论知识:
  1.anaconda:就是在选择软件包之前的界面都是anaconda体现给我们的;anaconda的安装需要两个步骤:一个是anaconda自己的安装,另一个是用户的配置过程,最后才进入linux的真正安装。

  2.在真正安装linux之前我们所做的有很多:选择键盘,选择地区,分区,boot的安装位置,管理员的密码等等。这些我们都成为是交互式安装的过程,而kickstart是提供个anaconda,让其需要获取某些信息的时候,在这个文件中读取所需要的信息,像键盘类型、地区等,各种信息,因此略过了非得用户输入某些信息来安装系统了;

  3.我们在rad hat linux上创建kickstart文件大约有两种方式:
    1)第一种是直接使用文本编辑器去编辑这个文件
    2)第二种:我们可以使用linux系统提供给我们的图形化界面工具:命令 system-config-kickstart
     这个命令和我们在安装系统的窗口界面是一样的,一步一步配置,最后点保存配置,会帮助我们生成一个kickstart文件。

   3)kickstart文件配置好后,就可以使用了。使用方法:就是我们在通过引导盘引导出一个linux的安装内核,并在linux内核启动以后,我们输入linux命令,即用ks命令指令指定它到×××这个文件(kickstart),之后,只要我们的kickstart文件配置正确,下面我们安装系统将是全自动化,不需要我们的参与;

  4.我们系统既可以是纯字符界面的安装,也可以是图形化的安装;
    就是我们在安装的时候看到boot:的时候,如果在后面输入 ks=...的命令的时候,就是纯字符界面的安装,如果直接敲回车,就是图形界面的安装;当内存最大不超过256M的时候,是不能启用图形化的安装的。

  5.如果我们的kickstart文件缺少某些步骤或有某些错误,就会自动进入交互式配置模式;
    ksvalidator:这个命令是检查我们的kickstart文件的语法是否有错误;

  6.如何启用kickstart文件,在linux下有三种方式?
    答:就是在出现boot:后输入linux ks=;
         下面是三种方式:
         boot:linux ks   --->这种是靠dhcp服务器去找kickstart文件的,在dhcp服务器中有一个指令叫:next-server,这个指令在dhcp配置文件/etc/dhcpd.conf中,在next-server后面指定一个服务器的名字,这个服务器有kickstart文件;filename指定我们这台服务器上的kickstart文件的路径;这就是使用ks的寻找方法;
         boot:linux ks=url    --->我们可以看出这个是基于网络的,如果我们把这个文件放大ftp上的时候,可以如下使用:boot:linux ks=ftp://192.168.0.254/var/ftp/pub/kickstart.cfg ,这里还支持http,nfs的格式,
         boot:linux ks=hd:devices:/path/to/your/kickstart_file     --->这里指的路径是本地磁盘或者光盘、软盘;注意,在不同盘上,这个hd符号是不同的。
         假如在光盘上,eg:  boot:linux ks=cdrom:/kickstart
         如果放在软盘上, eg:  boot:linux ks=floppy:/ab/kickstart
         硬盘上安装的例子就是上面的,

  7.我们想要到将系统引导到boot:这命令这个地方,我们需要一个引导盘,来启动系统,我们通常用的是boot光盘镜像,

  8.我们通常在boot:linux后面可以输入的命令有:
    askmethod:就是让系统询问我,安装光盘在哪里,是通过光盘来安装,还是通过网络来安装。
    dd:如果我们的系统要安装在一个硬件raid硬件上,这时候,系统就需要加载initrd内核,在initrd里面没有radi驱动,这时候,我们就需要告诉我们的内核,到哪里去读我们的硬件驱动,而dd就提供一个路径,包含了我们这个硬件所需要的驱动。
    ks:指定kickstart的路径的
    noipv6:禁用ipv6的
    noprobe:不探测我们的硬件
    rescue:linux的急救模式
    text:强制进入文本安装模式
    vnc:启用vnc的安装,意味着我们安装的界面可以显示到远程服务器上去。

  9.kickstart文件的组成部分:(286页)
    主要有三段组成:
      第一段:Commands section  指令段,如:选择键盘类型,地区,分区等
      第二段:Packages section  在此定义你打算安装的软件包的,包括单个的软件包或者软件包租,它会自动解决依赖关系
      第三段:Scripts section   脚本段,这一段主要包括两类脚本,第一类:用%pre开头叫做欲安装脚本,主要做配置工作;第二类:以%post开头的脚本叫后安装脚本。

  10.下面看一看我们的着Commands section段基本包含的指令有哪些
    1)安装模式:Installation Mode
      install    纯粹的一个全新安装,
      upgrade    升级安装
    注意:这两种安装模式必须指定一个,默认是install

    2)安装方法:Installation Method
      这里主要指定安装源在哪里,如:我们需要的rpm包在哪里,有一下几种方法:
      cdrom          --->这里指定我们的所有的安装rpm包都在光盘上
      url            --->通过网络安装,这里可以指定ftp,http等,eg: --url ftp://192.168.0.254/pub/ftp/
      nfs --sever IP --path /var/fitp/pub          --->通过nfs安装,nfs也是网络安装,不过和网络安装不同,和本地安装差不多;因为nfs像本地文件系统,它一般需要不是光盘解压之后的软件包,而是一个iso镜像,所以我们需要告诉我们的nfs server在哪里,用--sever IP --path /var/fitp/pub来指定。
      harddrive --partition=sda5 --dir=/iso/    --->通过硬盘安装,用--partition指定那个分区上,--dir指定哪个目录
     
  11.我们安装系统的时候需要序列号,当我们没有序列号的时候,我们可以用key命令跳过
       eg: key --skip

  12.Commands section段的选项:Required Directives (288页)
      必须选项:keyboard,lang,timezone
      认证的部分:rootpw, authconfig    -->这里的authconfig需要两个选项,--enablemd5,即使告诉我们的密码是通过md5来加密存放到shadow文件中的,--enableshadow,就是告诉我们的系统,我们通过shadow来认证的;
      Bootloader: bootloader             --->指定grub装在那个位置,--localtion

     下面的都是下可选选项:在Red_Hat_Enterprise_Linux-5-Installation_Guide-en-US.pdf的31章,第一节有介绍
      autopart:用来自动分区,如果我们的硬盘重来没有分过区,这项是很有用的
      clearpart:清除掉我们以前的分区,如果不清除掉,就会用那些未用的空间,或者以前装过linux的分区;clearpart有一个重要的选项,叫--initlabel,用来自动初始化我们的硬盘,如果没有这一项,在安装系统的时候,它会认为没有分区表,会一直卡在这里,实际上,我们的硬盘重来就没有分过区,即没有初始化过,
     
      firwall: --enabled启用防火墙,--disable禁用防火墙,
      halt:表示安装后关机
      reboot:表示安装完成以后,重启系统。
      key: --skip
      logvol:是logical volume的缩写,表示创建逻辑卷,--grow表示逻辑卷自动扩展到可用空间。
      network:可选dhcp
      part:用于在安装的过程中创建分区的。
      selinux:--disabled --permissive
      sevices: --disabled --enabled表示禁用或者启用某个服务的;eg:sevice --disabled auditd,cups,smartd,nfslock
      text:表示基于文本的形式安装。
      timezone:
      user:--name --group等,可以在创建好系统后,家用户的
      volgroup:创建卷组
     
二.自动化安装的相关知识和步骤:
   1.我们在安装好系统之后,都会在root家目录下生一个anaconda-ks.cfg文件,里面有我们选择安装了什么软件包或者软件包组,

   2.我们可以在图形化界面下配置我们的kickstart文件。
     # yum install system-config-kickstart           --->这是装上我们的配置kickstart文件图形界面工具
     # system-config-kickstart                   --->这是启用图形化界面的命令
     然后开始配置,配置完成之后保存退出,就好了。默认命名成ks.cfg
 
   3.我们怎么用这个ks.cfg文件?
     答:我们需要重新做一个启动光盘boot.iso镜像。

         挂载我们的启动光盘,将其启动光盘的东西拷贝出来
         # mount /dev/cdrom /media/cdrom/
         # cd /media/cdrom/
         # mkdir /tmp/iso
         # cp -r /media/cdrom/* /tmp/iso/
         # cd /tmp/iso/
         # cp /root/kickstart ./kickstart        --->将kickstart文件拷贝到当前目录中,做成镜像文件
       

       我们在boot:这个地方需要敲回车键,下面我们做的不需要敲回车键。
       # cd isolinux/
       # chmod u+w isolinux.cfg          --->因为这个文件是只读文件,下面我们要修改这个文件,
       # vim isolinux.cfg
         将第一行修改成:
           default linux ks=cdrom:/kickstart          --->这里是修改默认启动选项


         下面我们做镜像文件
         # cd /tmp            ---->注意这里是切换到iso的父目录中去
         # mkisofs -o MyCustom_Redhat.iso -b isolinux/ioslinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T iso/
            解释:-o 表示我们创建好光盘的输出的位置,后面是起的名字
                  -b 指定我们的光盘自起动的引导程序,就是isolinux/ioslinux.bin这个文件,这个文件就是我们的上面创建的iso目录中的文件。
                  -c 就是用isolinux/boot.cat的程序显示isolinux/boot.msg这里面的信息的,就是我们启动的时候那个红×××片上的信息的。
                  -no-emul-boot  这一项不用管,只需要照抄下来就好
                  -boot-load-size  这一项是指定我们的启动光盘boot-load的大小的
                  iso/            指定的我们的文件所在的位置

                 

        这样我们启动光盘就做好了,我们只需要再启动时候加载就好了,就会自动安装了。