一.系统的自动安装理论知识:
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/ 指定的我们的文件所在的位置
这样我们启动光盘就做好了,我们只需要再启动时候加载就好了,就会自动安装了。