天天看点

Linux Kickstart无人值守安装(下)

                         Linux Kickstart无人值守安装

3)用于网络启动的内核文件

将 RedHat 安装光盘目录中的 '''images/pxeboot/{vmlinuz,initrd.img}''' 启动文件复制到某个安装目录,比如:'''/tftpboot/ ''':

[root@qiuri Server]# cp /media/rhel5/images/pxeboot/{vmlinuz,initrd.img} /tftpboot/

由于多个客户端可以从一个PXE服务器引导,PXE引导映像使用了一个复杂的配置文件搜索方式来查找针对客户机的配置文件。如果客户机的网卡的MAC地址为'''88:99:AA:BB:CC:DD''',对应的IP地址为192.168.1.195,那么客户机首先尝试以MAC地址为文件名匹配的配置文件,如果不存在就以IP地址来查找。根据上述环境针对这台主机要查找的以一个配置文件就是 /tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd。如果该文件不存在,就会根据IP地址来查找配置文件了,这个算法更复杂些,PXE映像查找会根据IP地址16进制命名的客户机配置文件。例如:192.168.1.195对应的16进制的形式为C0A801C3。(可以通过syslinux软件包提供的gethostip命令将10进制的IP转换为16进制)

如果C0A801C3文件不存在,就尝试查找C0A801C文件,如果C0A801C也不存在,那么就尝试C0A801文件,依次类推,直到查找C文件,如果C也不存在的话,那么最后尝试default文件。

总体来说,pxelinux 搜索的文件的顺序是:

/tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd

/tftpboot/pxelinux.cfg/ C0A801C3

/tftpboot/pxelinux.cfg/ C0A801C

/tftpboot/pxelinux.cfg/ C0A801

/tftpboot/pxelinux.cfg/ C0A80

/tftpboot/pxelinux.cfg/ C0A8

/tftpboot/pxelinux.cfg/ C0A

/tftpboot/pxelinux.cfg/ C0

/tftpboot/pxelinux.cfg/C

/tftpboot/pxelinux.cfg/default

对于一台需要支持很多安装机器的安装服务器来说,将配置写在与IP地址对应的文件里很不灵活。把所有配置都集中在default文件中是个不错的主意,可以减轻配置文件维护负担。接下来创建/tftpboot/pxelinux.cfg/ 目录,该目录用于存放客户端的配置文件。

[root@qiuri Server]# mkdir /tftpboot/pxelinux.cfg

将光盘中的 '''isolinux/isolinux.cfg''' 文件复制为 '''/tftpboot/pxelinux.cfg/default'''

[root@qiuri Server]# cp /media/rhel5/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

查看default文件内容:

以下内容根据原文件略加修改并做了注释(注:该文件中的空行和以 '''#''' 开头的行都将被忽略)

# 默认启动的是 'label linux' 中标记的启动内核

default linux      

# 显示 'boot: ' 提示符。为 '0' 时则不提示,将会直接启动 'default' 参数中指定的内容。

prompt 1     

# 在用户输入之前的超时时间,单位为 1/10 秒。

timeout 60         

#显示某个文件的内容,注意文件的路径。默认是在 /tftpboot 目录下。也可以指定位类似 'install/rhel4.4-inst/boot.msg' 这样的,路径+文件名。

display boot.msg  

F1 boot.msg  #按下 'F1' 这样的键后显示的文件。注意路径。默认是 /tftpboot。注:syslinux 官方网站上说目前只能使用 F1-F10。

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

# 'label' 指定你在 'boot:' 提示符下输入的关键字。

# 比如:

# boot: linux[ENTER]

# 这个会启动 'label linux' 下标记的 kernel 和 initrd.img 文件。

# 这里还定义了其它几个关键字:

#  boot: text

#  boot: ks

# kernel 参数指定要启动的内核。同样要注意路径,默认是 /tftpboot 目录。

# append 指定追加给内核的参数,能够在 gurb 里使用的追加给内核的参数,在这里也都可以使用。

# 使用 kickstart 安装。

# 可以在 ks 参数后直接指定 kickstart 文件的位置。

label linux

  kernel vmlinuz

  append ks=nfs:192.168.1.1:/mnt/install/ks.cfg initrd=initrd.img

label text

  append initrd=initrd.img text

label ks

  append ks initrd=initrd.img

… …

3、安装配置NFS服务器

安装介质存储在服务器上的一个目录中,可以使用各种网络协议访问它,比如 HTTP,FTP,和NFS。也就是我们前面提到的OS Server。这里使用 NFS服务来提供安装介质,只需要将系统光盘内容拷贝放到共享目录下即可。

创建共享目录,并将光盘内容拷贝到共享目录中:

[root@qiuri Server]#mkdir /mnt/install

[root@qiuri Server]#cp /media/rhel5/* /mnt/install

安装NFS并将共享目录发布出去

[root@qiuri Server]# vi /etc/exports

/mnt/install *(ro,sync)

~

"/etc/exports" 1L, 25C written

重启服务使配置生效。

[root@qiuri Server]# service portmap restart

停止 portmap:                                             [确定]

启动 portmap:                                             [确定]

[root@qiuri Server]# service nfs start

启动 NFS 服务:                                            [确定]

关掉 NFS 配额:                                            [确定]

启动 NFS 守护进程:                                    [确定]

启动 NFS mountd:                                      [确定]

检查目录/mnt/install是否被正确共享:

[root@qiuri Server]# shoumount –e locahost

Export list for localhost:

/mnt/install *

[root@qiuri Server]# chkconfig --level 35 nfs on

通常,我们在安装操作系统的过程需要大量的人机交互过程,减少交互过程,为了提高安装效率Red Hat Linux 开始支持一个称为 kickstart 的功能。使用这种方法,只需事先定义好一个Kickstart自动应答配置文件(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了繁琐的人机交互,实现无人值守的自动化安装。

我们可以通过多种方法生成Kickstart配置文件,无论使用哪种方法无非就是创建一个应答文件,当你安装好一台Red Hat Linux机器,Red Hat Linux 安装程序都会创建一个 kickstart 配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件。 该文件位于/root/anaconda-ks.cfg。

这里我直接使用该文件,拷贝本文件到/mnt/install下。

[root@qiuri Server]# cp /root/anaconda-ks.cfg /mnt/install/ks.cfg

[root@qiuri Server]# chmod a+r /mnt/install/ks.cfg

# Kickstart file automatically generated by anaconda.

install

nfs --server=192.168.1.1 --dir=/mnt/install   #这个选项告诉安装程序:到服务器192.168.1.1的NFS共享目录 /mnt/install下寻找安装介质

key 2515dd4e215225dd

lang zh_CN.UTF-8

keyboard us

xconfig --startxonboot

network --device eth0 --bootproto dhcp

rootpw --iscrypted $1$3xvzZgwz$1jYjrh/XtXLblT00Mn3Ys0

firewall --enabled --port=22:tcp

authconfig --enableshadow --enablemd5

selinux --enforcing

timezone --utc Asia/Shanghai

bootloader --location=mbr --driveorder=sda --append="rhgb quiet"

clearpart --all --drives=sda --initlabel

part / --fstype ext3 --size=130000

part swap --fstype swap --size=2048

part /backup --fstype ext3 --size=100 --grow

%packages

@office

@admin-tools

emacs

gcc43-c++

libgfortran43

注意:关闭服务器端防火墙和SELINUX

最后设置客户端BIOS选择从网卡启动。具体方法因BIOS版本不同而异。

网卡中的PXE代码会联系DHCP服务器来获取IP地址以及启动镜像,然后启动镜像被载入并运行。

安装完成后,安装程序会提示你重新启动机器。重新启动机器时切记要在BIOS里改成从硬盘启动。如果仍然从光盘启动机器,又会重复前面的自动安装步骤。

<a href="http://down.51cto.com/data/2352690" target="_blank">附件:http://down.51cto.com/data/2352690</a>

     本文转自yjlsy 51CTO博客,原文链接:http://blog.51cto.com/baidu/158669,如需转载请自行联系原作者

继续阅读