Chapter 1. 引言
什么是Kickstart安装?
许多系统管理员都希望能够使用自动化安装的方式来在他们的机器上安装Fedora或红帽企业版Linux。为了满足这样的需求,红帽公司创建了kickstart安装方式。通过使用kickstart,系统管理员能够创建一个单独的、包含安装过程中遇到所有问题的答案的文件。
kickstart文件能被存储在服务器系统之上,机器在安装系统的时候可以读取该文件。这种安装方式支持只用一个kickstart文件就可以在多台机器上安装Fedora和红帽企业版Linux的特性,这对于网络和系统管理员来说非常理想。
Fedora安装指南(http://docs.fedoraproject.org/en-US/index.html)中有关于kickstart的详细说明。
如何使用kickstart进行系统安装?
使用kickstart来安装系统可以通过本地CD-ROM、本地磁盘、或者通过NFS、FTP、HTTP来进行。
为了使用kickstart,你必须:
- 创建一个kickstart文件
- 创建一个带有kickstart文件的启动磁盘,或者让kickstart可以通过网络访问
- 使能安装树
- 开始kickstart安装
本章节详细地解释了这些步骤。
创建Kickstart文件
kickstart文件是一个简单的文本文件,它包含了一个项目列表,列表中的每一个项目都有一个关键字用来识别。你可以通过Kickstart Configurator程序来生成kickstart文件,也可以手动编辑。Fedora或者红帽企业版Linux安装程序已经根据你在安装过程中的选择创建了一个简单的kickstart文件。它就是/root/anaconda-ks.cfg。你应该可以使用能够识别ASCII编码的文本编辑器或文字处理软件来编辑它。
首先,在创建kickstart文件的时候应该注意以下问题:
- 有一条并不严格的要求,kickstart文件中各部分(section)要遵循一定的顺序。每个部分中的项(Item)并不需要按照一定的顺序排列,除非有其他要求。各部分的顺序如下:
- 命令部分 -- (参考第二章节)列出的kickstart选项(option),必须包含要求的选项。
- %packages部分 -- 详细内容参见第三章节。
- %pre, %post, 以及%traceback部分 -- 这些部分的顺序可以任意排列,更详细的内容请参考第四和第五章节。
- %packages, %pre, %post以及%traceback部分需要以%end结束。
- 不要求的项(Item)可以被省略。
- 省略任何一个被要求的项将会导致安装程序向用户询问相关的问题,就像典型安装过程向用户询问那样。一旦用户给出了答案,安装过程将会继续自动进行,除非又遇到缺失的项。
- 以(#)开头的行作为注释行被忽略。
- 如果在kickstart安装中使用了不推荐的命令、选项或者语法,警告日志将会被记录到anaconda日志中。因为在一个或者两个发行版之间这些不推荐的项经常会被删掉,所以检查安装日志以确保没有使用这些项非常必要。当使用ksvalidator的时候,这些不推荐的项会导致错误。
引用磁盘的特殊说明
传统上,Kickstart一直通过设备节点名(例如 sda
)来引用磁盘。Linux内核采用了更加动态的方法,设备名并不会在重启时保持不变。因此,这会使得在Kickstart脚本中引用磁盘变得复杂。为了满足稳定的设备命名,你可以在项(Item)中使用/dev/disk
代替设备名。例如,你可以使用:
part / --fstype=ext4 --onpart=/dev/disk/by-path/pci-0000:00:05.0-scsi-0:0:0:0-part1 part / --fstype=ext4 --onpart=/dev/disk/by-id/ata-ST3160815AS_6RA0C882-part1
来代替:
part / --fstype=ext4 --onpart=sda1
这种方式提供了对磁盘的持久引用,因而比仅仅使用sda
更加有意义。 这在大的存储环境中特别有意义。
你也可以使用类似于shell的入口来应用磁盘。这种方式主要用来简化大的存储环境中clearpart
以及ignoredisk
命令的使用。例如,为了替代:
ignoredisk --drives=sdaa,sdab,sdac
你可以使用如下的入口:
ignoredisk --drives=/dev/disk/by-path/pci-0000:00:05.0-scsi-*
最后,如果想要在任何地方引用已经存在的分区或者文件系统(例如,在part --ondisk=
中),你可以通过文件系统标签(label)或者UUID来进行。例如:
part /data --ondisk=LABEL=data part /misc --ondisk=UUID=819ff6de-0bd6-4bf4-8b72-dbe41033a85b