在介绍自动化安装系统之前让我们来回顾一下系统的启动流程,系统的启动大概分为一下几个步骤:加电自检 boot sequencembr-- boot loader -->kernel(initramfs)—>rootfs  /sbin/init大概就是这么几个过程了,接下来来介绍系统的安装,安装系统虽然看起来简单,普通的安装大多数用户会选择一直下一步的安装把,但是想实现高逼格的安装还是需要简单的加工一下,好吧,开始介绍

anaconda:系统安装程序fedora 的一个开源项目

在系统启动的时候就会启动anaconda程序,它默认启动GUI接口,并向内核传递text参数即可,然后启动系统安装

anaconda安装系统分成两个阶段

安装前配置阶段

键盘类型

安装过程中的余元

支持的语言

时区

选择要使用的磁盘设备

分区格式化

选择要安装的程序包

管理员密码

是否启用iptables

是否启用selinux

想必安装过操作系统的小伙伴都应该知道需要经过这么几步,没装过的小伙伴需要亲自去安装体验一下

 

安装阶段

在目标磁盘上创建分区,执行格式化操作

将选定的程序包安装到指定目标磁盘

安装boot loaderinitramfs

 

启动安装过程一般位于引导设备中,后续的anaconda及安装用到的程序包等由以下几种方式:

本地光盘

本地硬盘

ftp服务器

http服务器

nfs服务器

2.jpg

如果想手动指定安装源

在启动后安装esc之后会出现boot:开头的提示符在后面输入linux askmethod选择指定的安装源

boot的引导选项,要使用引导选项请在boot:提示符后输入linux   option(以下的多种方式)

指定语言

linux keymap=gr

 

更新anaconda

linux updates


linux text:文本方式安装

 

askmethod:手动指定安装源

         repo=cdromdevice

         repo=hd:device/path

         repo=http://host/path

         repo=ftp://username:password@hosts/path

         repo=nfs:server:path

 

与网络相关的引导选项

ip=IPADDR

netmask=MASK

gateway=GW

dns=DNS IP

 

启用对安装系统的远程访问

linux vnc vncpassword=密码串

 

启用远程访问

linux  sshd=1

 

进入救援模式

linux rescue

 

kickstart文件格式

命令段:用于配置系统

  install

  firewall

  part

  lvm

 

程序包段:指定要安装的程序包及程序包组

    %packages:表示

    @Base:使用@指定包组

    lftp:直接写程序包名

    -package

    %end:软件包结束

注意:在程序包钱加-,不安装相关包


 

脚本段

%pre:安装过程开始钱的预备脚本,所能执行的操作较小,它是一个首先得环境,因为其实仅有简单版的shell环境

%post:所有的软件完成之后执行的脚本,此时具有完整意义的shell环境,但并非所有命令都安装,先确保所有的程序已经安装

%end:脚本结束段

 

kickstart 文件的格式中的命令段中必备命令

authconfig:认证方式配置

         authconfig –usershadow –passalgo=sha512

boot loader :boot loader 的安装位置及相关配置

         boot loader –location=mbr –driveorder=sda –append=”crashkernel=auto rhgb quiet “

kerboard:设定键盘类型

lang:语言类型

part:创建分区

rootpwdroot的密码

timezone:时区

 

可选命令

install  or upgrade

text:文件安装界面

network

firewall

selinux

halt

poweroff

reboot

repo

user:安装完成后创建新用户

url:指定安装源

key –skip:跳过安装号码,使用与rhel版本的操作系统

 

创建kickstart文件

创建kickstart文件的方式

直接手动编辑

         依据已安装好系统上的kickstart文件模版修改

 

使用创建工具:system-config-kickstart,建议使用/root/anaconda-ks.cfg模版生成

     

    1、生成默认语言,键盘类型,时区,以及root的密码,还可以指定安装后自动重启,指定是在字符界面安装操作系统,还是在图形界面安装操作系统

    2.jpg

 

   2、选择安装方式

    1.jpg

 

3、安装boot loader

    3.jpg


    4、分区信息,是否清除之前的MBR,清楚磁盘所有分区表,并初始化磁盘卷标

    5.jpg


    5、网络配置,即可以使用dhcp来获取ip地址,也能自己手动指定地址

    6.jpg


    

   6、密码文件加密方式,有MD5,sha256,sha512等方式

   7.jpg


   7、防火墙设定,禁用或启用

   8.jpg


   8、显示配置,是否安装图形环境

    9.jpg



   9、选择要安装的软件包

    10.jpg


    10、安装前脚本,将自己想要设定的内容写到本初,比如更改issue文件

    11.jpg


    11、安装后脚本,比如给系统添加一个repo文件

    12.jpg

  生成后的ks.cfg文件可以通过ksvalidator命令来检查ks文件的语法错误命令

  命令用法:ksvalidator  ks.cfg


生成好的ks.cfg文件内容

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --disabled

# Install OS instead of upgrade

install

# Use network installation

url --url="http://10.1.0.1/cobbler/ks_mirror/CentOS-6-x86_64/"

# Root password

rootpw --iscrypted $1$HhTXxIKI$dJ/fz1tpaghO37tA9k7Xl/

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use graphical install

graphical

firstboot --disable

# System keyboard

keyboard us

# System language

lang zh_CN

# SELinux configuration

selinux --enforcing

# Installation logging level

logging --level=info

 

# System timezone

timezone  Africa/Abidjan

# Network information

network  --bootproto=dhcp --device=et0 --onboot=on

# System bootloader configuration

bootloader --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all 

# Disk partitioning information

part / --fstype="ext4" --size=10000

part /boot --fstype="ext4" --size=300

 

%packages

@backup-client

@base

@basic-desktop

@compat-libraries

@console-internet

@debugging

@desktop-debugging

@desktop-platform

@development

@dial-up

@directory-client

@emacs

@fonts

@general-desktop

@graphical-admin-tools

@graphics

@input-methods

@internet-applications

@internet-browser

@office-suite

@server-platform-devel

@technical-writing

@tex

git

 

%end

 

制作引导光盘

    mkdir  /linuxiso

 将ks.cfg文件拷贝到/linuxiso目录下

    cp  /media/isolinux/   /linuxiso

    vim  /linuxiso/isolinux/isolinux.cfg

 将initrd=initrd.img text ks=cdrom:/ks.cfg

   cp  /root/ks.cfg  /linuxiso/

   mkisofs-R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Centos 6.5 X86_64 boot(可改)" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos6.5.boot.iso(可改) linuxiso/

 

制作好光盘后,将光盘插入机器(当然这里使用的是虚拟的),调整启动次序为光盘启动,将机器连接到网络中的安装,前提是网络当中有安装源,如果没有安装源可以自己搭建一个ftp的服务器,安装vsftpd启动服务,将光盘当中的所有文件都拷贝到/var/ftp/pub目录下,然后将安装树的源写到ks.cfg文件的url  --url那一行即可,这样就可以实现自动化安装操作系统,但是需要注意的是,当你安装完成操作系统后,你的机器的启动次序还是光盘,那么它将会重复安装操作系统,在这里提醒各位的是,在操作系统安装完成之后将启动次序调整为硬盘启动

 

创建优盘启动

de  if=/dev/cdrom  of=/dev/sdb