欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

马哥 17_01 _RHEL5.8系统安装及Kickstart 有大用

image.png

系统安装过程:

anaconda  ( anaconda   蟒蛇):

  stage2  (这是一个完整的rootfs,在这个rootfs中,主要配置了anaconda 这个程序及其它所依赖的所有的运行环境和文件等)

  stage2.img

  text,GUI


kickstart (自动读取) 这其中保存了在 anaconda 配置过程中 所有可以实现的配置过程

    三部分组成

        1)命令段 (命令部分):(所定义的配置的选项,比如键盘类型,管理员密码等,这些都需要一个命令来指定它是什么,因此,通常把它称为命令段)

image.png

        2)软件包选择段: 用百分号%引导的信息 (%package),称为 软件包选择段,这里面保存了我们系统安装过程当中所选择安装的每一个软件包的包组或软件包的名字

image.png

image.png

        3)脚本段:系统安装之前或之后可能执行一些脚本,是可选的(没有也没关系)

                    如果有的话可以分为两个部分,

                            %pre 预脚本段,在系统安装之前需要执行的脚本 (不常用,因为在系统安装之前,很多命令不可用,那时候的环境就是很小很小的位于stage2当中的根文件系统,很多命令都不存在)

                            %post 后脚本段,在系统安装之后需要执行的脚本(比如系统安装后,让它自动的创建两个用户,改改主机名,或者此前通过脚本能完成的所有任务,这里都能够完成 ) (最常用的是后安装脚本段)

image.png  一般情况下不显示脚本段,因为它是事关系统配置的信息

anaconda  在启动安装过程的时候,如果能够读取到 kickstart 文件,就能够完全的自动化安装我们的操作系统


一旦我们把应该使用的指令,要安装的软件包,及其要执行的脚本写成了kickstart 文件,那么在安装过程启动界面当中,我们就可以让我们的系统去装载 kickstart 文件了,我们的系统到哪里去找 kickstart 文件 (安装时,光盘没有 kickstart 文件)

    kickstart 放在光盘上,重新制作光盘,但太麻烦

    kickstart 放在u盘上,(只要系统的安装启动界面能够驱动u盘),就可以

    kickstart 放到网络上,(只要系统的安装启动界面能够联网),就可以


安装的时候,直接使用 ks =什么  (ks =http://) (ks与=之间没有空格) 来告诉安装过程,到什么地方去装载我们的配置文件,即可

(但是安装过程,刚刚启动安装过程的时候,没有ip地址,没有子网俺码,因此安装的时候,要求手动提供ip地址,就那是配置微型的安装过程这个linux系统具有ip地址的)(这就是要配置ip地址,并指定ks的原因)

假如ks文件在光盘上,(ks =cdrom:/)(ks与=之间没有空格)




我们每一次安装一个操作系统之后,在每一个系统的管理员的家目录下,看到 anaconda-ks.cfg 这个文件

anaconda-ks.cfg 保存了安装过程中所选择的配置信息 ,它是我们进行自定义 kickstart 的样板文件

(下图是马哥的)

image.png

(下图是我的)

image.png

image.png


















[root@localhost ~]# cat anaconda-ks.cfg (只要我们按下一步安装完成的系统,都会生成 anaconda-ks.cfg 文件)


自己安装的系统 172.16.100.50

image.png

image.png




image.png

image.png


系统安装的时候,如何让我们选择安装不通过本地安装,而通过网络安装的

linux ks =cdrom:/ks.cfg 后面跟上 askmethod 就可以了  (ks 与=之间没有空格)

(如果光盘上有文件就不提醒了,就不询问安装方法了)

(如果使用小的引导光盘来装的话,它也会自动提醒我们,询问安装方法,因为我们光盘上没有安装文件)

image.png


怎么去装载额外的硬件驱动 boot:  linux dd (linux dd 是我们输入的)

(此时如果需要装载额外的驱动程序的话,驱动程序很可能放在一个光盘或者u盘上

后面跟上 dd ,它会提示你去装载对应的光盘上的(或u盘上的)驱动程序的

image.png

image.png



我们重新启动一下

我们把启动次序调一下 

image.png

image.png

(这里 linux 后面可以跟上很多的命令,很多这些命令大多数都是 anaconda 可以接受的选项(或者叫命令),也就意味着你可以写到anaconda的配置文件里面去,如果不想写到配置文件里面去,你可以在这里 linux 后面直接跟上的 大多数都可以,比如 linux askmethod,回车

image.png 

image.png)

当然 askmethod 不会写到 kickstart  配置文件里面去的,所以它们并不完全等同,这里是命令行选项,而 kickstart  配置文件里面那叫 kickstart  命令,只不过它们俩彼此之间有重叠的部分而已

image.png

image.png

通过哪一种类型的介质来安装

image.png

如果我们通过 ftp 来安装的话

image.png

既然是通过 ftp 来安装了,所以就要配置网络属性

image.png

这时会尝试动态的去获取 ip 地址 (如果动态获取不到的话,可以手动指定一个)

(如果获取到了,就输入ftp 站点的名称,目录等等,指完之后,敲ok键,这也能够启动安装过程,这个时候就不会通过本地光盘来安装,而是通过这个服务器来安装,所以本地的光盘上就不需要任何文件,这就是我们的引导光盘做的这么小的原因,里面只保留了最基本的引导文件,连第二阶段 stage2 都不在光盘上,而是在服务器上下载的)


image.png

(这就是我们启动的界面上可以输入的命令,输完命令后,敲回车,并不能阻止它去读取kickstart文件的)

(kickstart文件本身是后读取的,而这里

image.png

仅仅是提供了一个基本的配置命令)

命令有哪些呢?(boot提示符下,我们需要或者说可以用到的命令)需要记住的就两个

1) askmethod (通过哪个方法来安装? (光盘,u盘,网络ftp?))

2) dd (将来我们要装载额外的硬件设备的时候,dd 需要我们去加载额外的驱动盘的)

还有

1) ip=          (如果不想手动指定ip地址,让它通过动态获取的话,就ip=dhcp)(ip与=之间没有空格)

2) netmask =    (用来指定子网掩码的)(netmask与=之间没有空格)

3) gateway =     (用来指定网关的)(gateway 与=之间没有空格)

4) dns =            (指定dns服务器地址的,可以指定多个,逗号隔开?)(有的地方使用dns1=  dns2 = ,我们可以测试一下)(一般用不到多个,知道就可以了)(dns 与=之间没有空格)



image.png

image.png

image.png

image.png

image.png

 ks = (ks 与等于号之间没有空格) 指定到什么地方去获取ks文件

        ks = http://<server>/path 到web服务器上去获取的

        ks = nfs:<server>:/<path> 到nfs服务器上去获取的

        ks = floppy:/<path> 到软盘上去获取的        ( floppy 软盘)

        ks = hd:<device>:/<path> 到硬盘的某个分区上去获取的 

                    (ks = hd:sda3:/mydir/ks.cfg 这个路径与文件系统没关系,,因为这里还没有挂载而是直接访问它的 )

                    (所以看有没有这个目录,有这个目录表示就在这个目录下,没有这个目录表示在根分区下)

        ks = nfs:<server>:/<path> 到nfs服务器上去获取的

        ks = nfs:<server>:/<path> 到nfs服务器上去获取的

image.png

ks = file:/<file>    (ks与等号之间没有空格) 表示在initrd文件中获取的,也就是说你可以把ks打包到initrd文件里面

ks = cdrom:/<path> 到光盘上去获取的

image.png

( diskette 软盘)

ksdevice =<device>    (ksdevice =eth1 表示通过这个网卡eth1去获取的)(ksdevice 与等于号之间没有空格)

image.png

mediacheck =no  可以让它跳过,不作光盘检查的 (mediacheck 与等于号之间没有空格)

image.png

method 表示哪种安装方式,否则的话可以让它提问的  askmethod

image.png

nonet 表示不启用网络功能

image.png

noprobe     不探测硬件信息的,不装载特殊硬件设备(偶尔会用到)

                    (有的时候,安装系统的时候,假如有独特的硬件,比如视频采集卡,如果系统驱动不了,或兼容(可能出现安装过程崩溃的界面),因此为了避免这种情况,可以让它不去装载额外的特殊的硬件驱动设备的) (这项偶尔会有用)


image.png

nousb 不使用usb设备

image.png

rescue (营救,救援) (系统坏了,要去进行修复了)进入紧急救援模式

image.png



mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o ttylinux.iso iso/

 大多数选项也不用管它是什么,只要记住路径在什么地方就可以了



-b isolinux/isolinux.bin   (类似于grub一样的引导程序)

-o boot.iso (-o output)表示输出文件为 boot.iso ,创建为iso镜像文件之后,保存的iso镜像文件的名字是什么

-no-emul-boot 表示不模拟启动界面

-boot-load-size 4  启动的时候,装载多大空间中的数据当作bootloader

-boot-info-table 是否产生一个boot引导信息

iso/  应该是一个目录,对哪个目录中的文个进行创建

mkisofs -R -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o boot.iso iso/


当然上面的命令都要跟在 linux 后面

如果多个命令,彼此之间要用空格隔开,

这是boot提示符里面可以使用的命令


boot提示符里面设定了ip地址等各种信息,然后又定义了kickstart文件,在kickstart文件中也可以定义ip地址的,

在装载ks文件之前,boot提示符里的指令是生效的,一旦装载ks文件之后,ks文件中的配置生效了,(如果boot提示符里定义了ip,ks里面没有定义网络属性,那boot提示符里定义了ip会一直生效的,并且会成为ks的配置部分的)


我们看看 kickstart 文件中的命令有哪些,软件包选择段如何选择的,如何定制脚本段的

kickstart

    命令段

        必须指定 (强制类的)(必备命令)

                keyboard us  (us 是美式键盘)

                lang

                timezone Asia/Shanghai 表示使用亚洲上海时区 

                rootpw  --iscrypted  (通常要使用加密的密码串) (管理员密码) 

                authconfig    --useshadow or --enableshadow (认证方式)

                bootloader    --location(装载引导加载器的)

                timezone 


        可选命令 (有些命令,虽然叫可选的,但一旦没给,然后系统不知道该怎么办的话,它仍然会终止自动化安装过程让你选择)               

                clearpart --initlabel --linux    (指定分区的清除方式,以及是否初始化标记(标识),分区表的类型,在 x86,x64系列的系统上,它们与安腾系列的系统上,它们的分区标识是不同的,所以我们必须要给它创建一个分区标识的)

                driverdisk --source    来定义位于网络上的驱动程序,

                firewall  --disabled (--enabled) 可以禁用;也可以启用,但不配置

                firstboot --disabled

                text|graphical  (纯文本|图形) 如果不指定的话,默认是图形的(只要内存大于256M)

                key --skip  (安装过程让我们提供密钥的,如果不提供,跳过了就是 --skip )


                                #clearpart --all --initlabel

                                #part /boot --fstype ext3 --size=100 --ondisk=sda # 起始柱面和结束柱面可以不指的

                                #part pv.100000--size=40960 --grow --ondisk=sda #表示一个物理卷要占用多大的磁盘空间

                                                            (这个 100000 号码(是pv的id号,只是在安装过程当中为了能够让ks能够区别不同的pv,,哪怕命名为pv.01都可以,只不过后面volgroup使用它的进候 要使用这个pv.id号)是随便命名的,只要两个pv的名称不一样就行)

                                #part swap --size=1024 #创建一个swap分区,大小为1024 个字节

                                #volgroup VolGroup00 --pesize=32768 pv.100000       #创建卷组的 (这一行是用来定义卷组的,VolGroup00 是卷组名称, pesize 大小单位是K,不是M,这里 pv.100000 是对应的物理卷)

                                #logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=512 --grow --maxsize=1024

                                #logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow #逻辑卷

                    软件包选择段 ( / 是挂载点,--fstype ext3 指的是文件系统类型,  --name=LogVol00指的是卷的名称,--vgname=VolGroup00 指的是卷组名称,在哪个卷组中创建,--size=1024 大小是多少)

                

        selinux    --disabled|--permissive        (permissive 许可的) 建议使用 --permissive 



    脚本段


查看必选,可选的命令段

image.png


autopart (可选的)自动分区

ignoredisk (可选的)不去打扰到某个硬盘 忽略某个硬盘

        ignoredisk --drives =drive1,drive2,...        (--drives  与等于号之间没有空格)

        ignoredisk  --only-use =sda    (白名单) (可以不用指,如果只有一块硬盘,根本没问题) (--only-use 与等于号之间没有空格)



image.png


autostep (可选项)  (对于大多数可选项,给它自动跳过,它自己选择默认项)


auth or authconfig (必选项)    指定认证方式 (默认上到/etc/passwd /etc/shadow里面去认证)

            --enbabemd5  (默认md5)

            --useshadow or --enableshadow (默认使用shadow验证)

image.png


bootloader (必选项)  指定bootloader如何进行安装的,安装在哪块磁盘上,安装在什么位置,

        (直接使用 bootloader  不用加任何选项就可以了,如果要带的话,通常是--location)

        --location        (默认安装在mbr上,)

        --password            (如果使用grub 要不要加密码)


image.png


image.pngimage.png

clearpart (可选项)   (选错了,会出现致命问题) (如何清除分区)

        安装的时候,,选择四种分区方式 (

移除所有分区,  -all

移除所有linux分区,--linux (一般使用它,最保险,因为安装linux,自然要清除原来的linux)

使用空闲空间(不清除任何分区),

自定义)

如果此前从未装过系统,而且硬盘上连分区表都没有,为了避免出现误判,如果不给任何选项

我们的ks过程会终止的,它会警告你,你的硬盘上没有一个合法的分区表,请问,您确定要继续吗

那么就选择  --initlabel   (如果没有分区表,给我初始化一个) (对于一个完全的全新的硬盘,--initlabel很有用)

image.png



image.png

driverdisk (可选项)  也可以在 ks 中指定驱动磁盘(或者说叫镜像文件) (在boot提示符下也可以指定)

        driverdisk --source=ftp://path/to/dd.img        (驱动磁盘不用放在光盘上,也可以不用放在u盘上,可放到网络上,当然放到网络上要是一个镜像文件)(当然也可以放在硬盘上)

        driverdisk  <partition>  [--type=<fstype>]

        (在 boot  提示符下,可以使用 dd= 来定义的 ( 如果 dd 后面没有跟着=,它提示你,给你一个界面,让你选择,哪个设备)   )

image.png

( 如果 我们想全自动安装,人完全不介入,boot提示符下什么都不键入,完全可以通过ks文件来获取,这时在ks文件中可以使有 driverdisk 


firewall (可选项) 虽然是可选的,但是如果不选的话,下一次第一次启动的时候,老是让你配置一次  表示是否启用防火墙的

        --enabled 启用

                    如果是启用的话,还要定义,哪些服务是允许别人访问,哪些服务是不允许别人访问的                --trust=        或者 (--ssh,--telnet,--smtp,--http,--ftp) 或者 --port=

        --disabled 禁用



( commas 逗号 ) ( explicitly 明确的)

image.pngimage.png


firstboot (可选项) 第一次启动    (linux安装完成后,第一次启动,它还会让你配置很多信息)

如果不想配置的话,就是 --disabled (禁用第一次启动配置信息) (如果不禁用,就会启动配置界面)


image.png

image.png


重启它,切换下启动次序

image.png

halt (可选项) 表示系统安装完成之后,做什么 可以选择关机或重机,

            (halt poweroff) 关机 (reboot)重启 


graphical 安装过程是什么界面,是图形界面,默认是图形界面的,只要内存大于256M

text 是指安装过程是纯文本界面

            因此有两项 graphical 或 text

image.png


install (option) 可以有两项 install (安装) 或 upgrade (升级)

install 安装

upgrade 升级

        可以指定通过什么方式 install  (比如指定 cdrom, harddrive, nft, url )

            ( 例子 harddrive --partition=hdb2 --dir=/tmp/install-tree )

            (比较常用的例子 url --url http://<server>/<dir>

                             或者  url --url ftp://<username>:<password>@<server>/<dir>)

image.png

image.png

image.png

interactive (可选项)  (interactive  交互的,互动的) (本来我们是要自动化安装的,所以不让它交互)

iscsi (可选项)  (安装内容要配置安装在scsi设备上)

image.png

image.png


key (可选项) 安装过程让我们提供密钥的

    key --skip 不提供密钥

image.png

keyboard (必选项)指定键盘类型的      (us 是美式键盘)

image.png


lang 指定语言

/usr/share/system-config-language/locale-list 这个文件里面有所有支持的语言列表

(# locale -a 也可以相看看) ( -a 就是 all )可以查看所有的语言

(指定了对应的语言,必须安装对应的字体,否则,字体无法显示的)


image.png


[root@localhost ~]# locale -a        显示所有支持的语言  (locale 现场,本地,地点) (-a all 所有)

image.png

langsupport 已经废弃了

image.png


logvol (可选项)     (logic volume)    指定逻辑卷  如何定义逻辑卷

image.png

image.png
image.png



part or partition 创建分区   如何划分分区,     指定分区,指定挂载点,指定创建的设备

    如果指定pv的话,   part pv.<id>   即可

    如果创建raid的话, part raid.<id> 即可

    --size 指定大小

    --grow 指定是否可以自动扩展到所有可用空间的

    --maxsize 表示最大空间是多少

    --ondisk 表示在哪个磁盘上创建 

    --fstype 表示文件系统类型

    --start 表示从哪个柱面开始

    --end 表示到哪个柱面结束 (当然也可以指定为多大?)

    --encrypted 加密

    --passphrase 密码

    --label 表示卷标是什么


image.png

image.png

image.png

image.png

image.png

image.png



[root@localhost ~]# vim anaconda-ks.cfg

# Kickstart file automatically generated by anaconda.


install

cdrom

key --skip

lang zh_CN.UTF-8

keyboard us

xconfig --startxonboot

network --device eth0 --bootproto dhcp

rootpw --iscrypted $1$3AbLM56u$bids4CspuzF9Fhd3bfejL.

firewall --enabled --port=22:tcp

authconfig --enableshadow --enablemd5

selinux --enforcing

timezone Asia/Shanghai

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

# The following is the partition information you requested

# Note that any partitions you deleted are not expressed

# here so unless you clear all partitions first, this is

# not guaranteed to work

#clearpart --all --drives=sda

#part /boot --fstype ext3 --size=100 --ondisk=sda # 起始柱面和结束柱面可以不指的

#part pv.100000--size=40960 --grow --ondisk=sda #表示一个物理卷要占用多大的磁盘空间

#part swap --size=1024 #创建一个swap分区,大小为1024 个字节

#volgroup VolGroup00 --pesize=32768 pv.100000       #创建卷组的

#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=512 --grow --maxsize=1024

#logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow #逻辑卷


%packages

@admin-tools

@base

@chinese-support

@core

@development-libs

@development-tools

@dialup

@editors

@gnome-desktop

@gnome-software-development

@games

@graphical-internet

@graphics

@java

@legacy-software-support

@office

@printing

@sound-and-video

@text-internet

@web-server

@x-software-development

@base-x

kexec-tools

iscsi-initiator-utils

fipscheck

device-mapper-multipath

sgpio

python-dmidecode

imake

emacs

libsane-hpaio

mesa-libGLU-devel

xorg-x11-utils

xorg-x11-server-Xnest



mediacheck (可选项)    检查光盘介质,一般而言,我们没必要检查了,所以mediacheck就不用加了,加了就表示检查了

mouse(deprecated)已经废弃了


image.png


network (可选项)    配置网络属性的 如果没有(不管有没有)在boot提示符中配置,这里也可以配置

        network --bootproto 来确定我们的引导协议 (如果  --bootproto=hdcp 就不需要配置ip地址了,因为dhcp是自动获取ip地址的)  (如果  --bootproto=static 是需要自己手动指定地址的)

        (例子 network --bootproto=static --ip=10.0.2.15 --netmask=255.255.255.0 --gateway=10.0.2.254 --nameserver=10.0.2.1 

         例子 network --bootproto=static --ip=10.0.2.15 --netmask=255.255.255.0 --gateway=10.0.2.254 --nameserver=192.168.2.1, 192.168.3.1) (如果有多个nameserver,用逗号隔开)

        --device 指定地址配置到哪个网卡上,如果只有一个网卡,那么就不用指了


image.png

image.png

image.pngimage.png

image.png


poweroff (可选项) 跟halt一样,安装完成之后的操作,这里是关机

image.png


part 的时候, 是可以直接创建 raid 的, part创建raid的时候,只能创建这个设备为raid设备,而不能创建raid阵列,

事实上我们很少用到软raid,所以这个功能很少用,可以忽略 

raid

image.png


reboot 一般我们安装完成之后是重启,而不是关机

image.png



repo   ( Repository 仓库) (定义yum仓库的) 不用管它

image.png


rootpw (必选项)      指定管理员密码的 (必须的,而且密码是明文的)

( iscrypted 是加密的)

rootpw --iscrypted <passwd> 存放加密的密码 

(自己添加一个用户,创建个密码,把生成的加密的密码复制过来就可以了)

(或者使用 grub-md5-crypt 生成一个密码放在这里也可以)

selinux 对红帽系列的企业版来讲,通常要配置 selinux ,我们直接禁用 --disabled 或者 --permissive  , (permissive 许可的) 建议使用 --permissive ,因为使用了 permissive ,将来想启用的话,就能够容易启用起来 (若使用--disabled,要重启系统,重新打标之后,才能启用起来)

image.png


skipx    是不是跳过图形界面配置,如果跳过了,就不让你配置图形界面了 这一项偶尔会有用

text 纯文本的安装界面,不使用图形界面

timezone (必选项)    时区        (要使用utc 就加上 --utc) (不使用utc  后面就指定 timezone就行了(比如 timezone Asia/Shanghai ))

image.png

查看所有时区

[root@localhost ~]# timeconfig    查看所有的时区

image.png

[root@localhost ~]# echo $LANG

zh_CN.UTF-8


[root@localhost ~]# export LANG=en

[root@localhost ~]# timeconfig        

Traceback (most recent call last):

  File "/usr/share/system-config-date/timeconfig.py", line 32, in ?

    locale.setlocale(locale.LC_ALL, "")

  File "/usr/lib/python2.4/locale.py", line 381, in setlocale

    return _setlocale(category, locale)

locale.Error: unsupported locale setting


image.png

[root@localhost ~]# export LANG=C            (这里C 表示acsii 码吧,乱码时非常有用,见 /node-admin/13012)


[root@localhost ~]# timeconfig

image.png


不选择 utc 把 utc去了

image.png


image.png


没有看到 ksconfig 命令 装下 kstart 软件包吧

[root@localhost ~]# ks

ksh    ksh93  kshd   ksu

[root@localhost ~]# yum install sysconfig-config-kickstart

Loaded plugins: product-id, security, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Setting up Install Process

No package sysconfig-config-kickstart available.

Nothing to do

[root@localhost ~]#

[root@localhost ~]# yum list | grep kick  (yum list 等于 yum list all)

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

[root@localhost ~]# yum list all | grep kick

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

[root@localhost ~]#


[root@localhost ~]# cd /etc/yum.repos.d/

[root@localhost yum.repos.d]# ls

rhel-debuginfo.repo

修改源,配置源,此处省略

[root@localhost yum.repos.d]#

[root@localhost yum.repos.d]# yum whatprovides /*ksvalidator*/            看到一大堆东西看不清

[root@localhost yum.repos.d]# yum list | grep kick

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

pykickstart.noarch                         0.43.9-1.el5               Cdrom_Base

system-config-kickstart.noarch             2.6.19.9-2.el5             Cdrom_Base

[root@localhost yum.repos.d]# yum install system-config-kickstart    (这一步进行安装)

image.png


看到一个命令 kdvalidator


[root@localhost yum.repos.d]# ks

ksh          ksh93        kshd         ksu          ksvalidator

image.png


ksvalidator 这个命令是用来帮我们检查ks文件有没有语法错误的

[root@localhost yum.repos.d]# man ksvalidator

No manual entry for ksvalidator

[root@localhost yum.repos.d]#


[root@localhost yum.repos.d]#  ksvalidator --h

usage: ksvalidator [options] ksfile|url


options:

  -h, --help            show this help message and exit

  -e, --firsterror      halt after the first error or warning

  -i, --followincludes  parse include files when %include is seen


[root@localhost ~]#  ksvalidator --help

usage: ksvalidator [options] ksfile|url


options:

  -h, --help            show this help message and exit

  -e, --firsterror      在第一次错误或警告时中止执行

  -i, --followincludes  遇到 %include 时,解析包含文件

[root@localhost ~]#

[root@localhost yum.repos.d]#


没报任何信息就是最好的信息

[root@localhost yum.repos.d]#  ksvalidator /root/anaconda-ks.cfg

[root@localhost yum.repos.d]#


可以打开图形界面自己去做一个 kickstart 文件,做完之后再修改,就会简单很多


[root@localhost yum.repos.d]# system-config-kickstart &        (在putty中执行会报下面的错,在xshell中执行吧

见 /node-admin/13008  )(xshell xmanager 中我的百度网盘中有 (xmanager 包含 xshell))

/node-admin/13008在Xshell中执行system-config-kickstart命令时出现错误提示:“Could not open display because no X server is running”,解

image.png

在 xshell 中执行 # system-config-kickstart &             会弹出下面的对话框


这个配置里面一保存就是一个ks文件

(可以打开范本,比如家目录下的 anaconda-kg.cfg,以它为范本,在它的基础上改, )

image.png

image.png

image.png

马哥的

image.png

我的

image.png


image.png

马哥的

image.png

我的

image.png

马哥的

image.png

我的

rhgb表示redhat graphics boot,就是会看到图片来代替启动过程中显示的文本信息

image.png


马哥的

image.png

马哥的 不支持逻辑卷,这个不太好       取消吧不管它吧

image.png

我的

image.png

我的 不支持逻卷,这个不太好     取消吧不管它吧

image.png

马哥的

image.png

我的

image.png

马哥的

image.png

我的

image.png

马哥的

image.png

我的

image.png

马哥的

on first boot,set up Agent is 表示是否是第一个引导的时候,配置这些的色彩深度,分辨率等信息

( resolution 分辨率 )

image.png

我的

image.png



马哥的        (选择安装哪些软件包)

image.png

马哥的       

image.png

马哥的       

image.png

马哥的       Develoopment 和 Servers 不选

image.png

马哥的       

image.png 

我的

image.png

马哥的         预安装脚本

image.png

我的

image.png

马哥的      后安装脚本

image.png

我的

image.png


image.png

保存ks文件

image.png



[root@localhost ~]# vim ks.cfg

#platform=x86, AMD64, ▒~H~V Intel EM64T

# System authorization information

auth  --useshadow  --enablemd5

# System bootloader configuration

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

# Partition clearing information

clearpart --none

# Use text mode install

text

# Firewall configuration

firewall --disabled

# Run the Setup Agent on first boot

firstboot --disable

# System keyboard

keyboard us

# System language

lang en_US

# Installation logging level

logging --level=info

# Use CDROM installation media

cdrom

# Network information

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

# Reboot after installation

reboot

#Root password

rootpw --iscrypted $1$SbGBR/hZ$qufp0O.1Fux02ry2xaL6j1


# SELinux configuration

selinux --permissive

# System timezone

timezone  Asia/Shanghai

# Install OS instead of upgrade

install

# X Window System configuration information

xconfig  --defaultdesktop=GNOME --depth=8 --resolution=640x480 --startxonboot


%packages

@admin-tools

@base

@chinese-support

@core

@development-libs

@development-tools

@dialup

@editors

@gnome-desktop

@gnome-software-development

@games

@graphical-internet

@graphics

@java

@legacy-software-support

@office

@printing

@sound-and-video

@text-internet

@web-server

@x-software-development

@base-x

kexec-tools

kexec-tools

iscsi-initiator-utils

fipscheck

device-mapper-multipath

sgpio

python-dmidecode

imake

emacs

libsane-hpaio

mesa-libGLU-devel

xorg-x11-utils

xorg-x11-server-Xnest

xorg-x11-server-Xvfb


我们可以在ks.cfg的基础上进行修改

将来我们可能会批量部署系统的,有了ks.cfg可以方便很多

如何把kickstart文件和在光盘上,通过光盘去找

我们做一个光盘镜像,在这个镜像里面装上kickstart文件,以后一敲回车,就能直接执行安装的


[root@localhost cdrom]# cd /media/cdrom/

[root@localhost cdrom]# pwd

/media/cdrom

[root@localhost cdrom]#

[root@localhost cdrom]# ls            有个images目录

image.png


[root@localhost cdrom]# cd images/

[root@localhost images]# ls                ( boot.iso 就是一个小的引导光盘,而我们平时用到的光盘就是根据这个光盘来做的)

(因此下载这个光盘 boot.iso , 挂载上来,改一改,重新封装起来就 OK 了)

README  TRANS.TBL  boot.iso  diskboot.img  minstg2.img  pxeboot  stage2.img  xen

[root@localhost images]# 

[root@localhost images]# cp boot.iso /root

[root@localhost images]# cd

[root@localhost ~]# ll -h

total 121M

drwxr-xr-x  2 root root  4.0K Nov 10 14:34 Desktop

-rw-------  1 root root  1.5K Nov 10 14:26 anaconda-ks.cfg

-rwxr-xr-x  1 root root   708 Dec 18 18:09 bincopy.sh

-r--r--r--  1 root root   14M Dec 20 16:50 boot.iso


boot.iso 是一个本地回环设备,所以 -o loop 进行挂载

[root@localhost ~]# mount -o loop boot.iso /mnt

[root@localhost ~]# cd /mnt

[root@localhost mnt]# ls

TRANS.TBL  isolinux

[root@localhost mnt]#


[root@localhost mnt]# cd isolinux/

[root@localhost isolinux]# pwd

/mnt/isolinux

[root@localhost isolinux]#

[root@localhost isolinux]# ls

TRANS.TBL  general.msg   isolinux.cfg  param.msg   vmlinuz

boot.cat   initrd.img    memtest       rescue.msg

boot.msg   isolinux.bin  options.msg   splash.lss

[root@localhost isolinux]#

把里面的有些文件内容改一下,并且在光盘的镜像文件里面加个ks文件就可以了

马哥是下载下来一个 class.cfg文件 我直接使用刚才生成的ks.cfg文件吧

image.png

先把ks.cfg备份一下吧

[root@localhost ~]# cp ks.cfg ks.cfg-bak


是不是硬盘小于100G的话,安装过程就中止了,提示没有足够的空间可用,

就是因为逻辑盘的相加大于了100个G

所以创建虚拟机的时候,虚拟硬盘最好大于100G


软件包组如果没定义的话,它自己会自动解决依赖关系的

post脚本是我们安装完成之后的执行的脚本

马哥的class.cfg(ks.cfg)

image.pngimage.png

image.png

image.png

[root@localhost ~]# vim ks.cfg

#platform=x86, AMD64, ▒~H~V Intel EM64T

# System authorization information

auth  --useshadow  --enablemd5

# System bootloader configuration

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

bootloader



# Partition clearing information

clearpart --linux --initlabel #clearpart --none

# Use text mode install

text

# Firewall configuration

firewall --disabled

# Run the Setup Agent on first boot

firstboot --disable

# System keyboard

keyboard us

# System language

lang en_US

# Installation logging level

logging --level=info

# Use CDROM installation media

#cdrom

# Network information

network --bootproto=static --ip=192.168.1.48 --netmask=255.255.255.0 --gateway=192.168.1.1 --nameserver=192.168.1.1  --device=eth0 --onboot=on

# Reboot after installation

url --url http://192.168.15/pub

zerombr # yes 可以不用写  # 它表示清除 mbr

part swap --size 1024

part /boot --size 100

part pv.01 --size 81920

volgroup vo10 pv.01

logvol / --vgname=vo10 --size=30000 --name=root

logvol /home --vgname=vo10 --size=5000 --name=home

logvol /usr --vgname=vo10 --size=20480 --name=usr



reboot

#Root password

rootpw zhong1926 #rootpw --iscrypted $1$SbGBR/hZ$qufp0O.1Fux02ry2xaL6j1

authconfig --useshadow --enablemd5

# SELinux configuration

selinux --permissive

# System timezone

timezone  Asia/Shanghai  #timezone  Asia/Shanghai --utc

# Install OS instead of upgrade

install

# X Window System configuration information

#xconfig  --defaultdesktop=GNOME --depth=8 --resolution=640x480 --startxonboot

skipx

%packages

@ GNOME Desktop Environment

@ X Window System

#@ Printing Support

#@ KDE is huge...install it if you wish

#@ KDE

#@ Development Tools

#@ Windows File Server


@admin-tools

@base

@chinese-support

@core

@development-libs

@development-tools

@dialup

@editors

@gnome-desktop

@gnome-software-development

@games

@graphical-internet

@graphics

@java

@legacy-software-support

@office

@printing

@sound-and-video

@text-internet

@web-server

@x-software-development

@base-x

kexec-tools

iscsi-initiator-utils

fipscheck

device-mapper-multipath

sgpio

python-dmidecode

imake

emacs

libsane-hpaio

mesa-libGLU-devel

xorg-x11-utils

xorg-x11-server-Xnest

xorg-x11-server-Xvfb


%post

useradd hadoop

echo "zhong1926" | passwd --stdin hadoop


sed -i 's@id:[0-6]:initdefault:@id:3:initdefault:@g' /etc/inittab


echo "Welcome to my linux ." >> /etc/issue


这是马哥的 

image.png




登录界面的显示信息

image.png


等下把这个ks.cfg 放到 光盘里面,把光盘里的文件复制出来 做成一个光盘

[root@localhost ~]# mkdir /tmp/iso

[root@localhost ~]# cd /tmp/iso

[root@localhost iso]# pwd

/tmp/iso


以 /tmp/iso 这个目录为基本点来创建我们的光盘镜像


[root@localhost iso]# cp /mnt/* ./ -r            (把光盘里面的文件全部复制过来)

[root@localhost iso]# ll

total 8

-r--r--r-- 1 root root  220 Dec 20 19:06 TRANS.TBL

drwxr-xr-x 2 root root 4096 Dec 20 19:06 isolinux

[root@localhost iso]#


[root@localhost iso]# cd isolinux/

[root@localhost isolinux]# pwd

/tmp/iso/isolinux

[root@localhost isolinux]# ll

total 13460

-r--r--r-- 1 root root     2659 Dec 20 19:06 TRANS.TBL

-r--r--r-- 1 root root     2048 Dec 20 19:06 boot.cat

-rw-r--r-- 1 root root      292 Dec 20 19:06 boot.msg

-rw-r--r-- 1 root root      919 Dec 20 19:06 general.msg

-rw-r--r-- 1 root root 11662571 Dec 20 19:06 initrd.img

-r--r--r-- 1 root root    24576 Dec 20 19:06 isolinux.bin

-r-xr-xr-x 1 root root      366 Dec 20 19:06 isolinux.cfg

-r--r--r-- 1 root root    94600 Dec 20 19:06 memtest

-rw-r--r-- 1 root root      817 Dec 20 19:06 options.msg

-rw-r--r-- 1 root root      517 Dec 20 19:06 param.msg

-rw-r--r-- 1 root root      490 Dec 20 19:06 rescue.msg

-rw-r--r-- 1 root root    23107 Dec 20 19:06 splash.lss

-rw-r--r-- 1 root root  1912180 Dec 20 19:06 vmlinuz

[root@localhost isolinux]#

[root@localhost isolinux]# cd ..

[root@localhost iso]# pwd

/tmp/iso

[root@localhost iso]# ls

TRANS.TBL  isolinux

[root@localhost iso]# cp /root/ks.cfg ./

[root@localhost iso]#


[root@localhost iso]# ls

TRANS.TBL  isolinux  ks.cfg

[root@localhost iso]#


[root@localhost iso]# cd isolinux/

[root@localhost isolinux]# ls

TRANS.TBL  general.msg   isolinux.cfg  param.msg   vmlinuz

boot.cat   initrd.img    memtest       rescue.msg

boot.msg   isolinux.bin  options.msg   splash.lss

[root@localhost isolinux]#

isolinux.cfg 是定义我们的配置界面所输出的参数的


把这个做成光盘镜像,一回车,它会自动读取光盘上的配置文件里面的 ks.cfg

[root@localhost isolinux]# vim isolinux.cfg

default linux  ks=cdrom:/ks.cfg     #我们期望不仅有linux,还支持配置文件的         #default linux        # 直接敲回车,就让你是linux   #把这个做成光盘镜像,一回车,它会自动读取光盘上的配置文件里面的 ks.cfg,而且所有有完全自动化,进行安装

prompt 1

timeout 600

display boot.msg

F1 boot.msg

F2 options.msg

F3 general.msg

F4 param.msg

F5 rescue.msg

label linux

  kernel vmlinuz

  append initrd=initrd.img

label text

  kernel vmlinuz

  append initrd=initrd.img text

label ks

  kernel vmlinuz

  append ks initrd=initrd.img

label local

  localboot 1

label memtest86

  kernel memtest

  append -


isolinux.cfg  是只读文件(因为它是光盘里面复制的镜像,它是只读的) :w! 强行保存  :wq! 强行保存退出


splash.lss 这个图片 可以换换 ,它的大小应该是 640*300 的 (不是480,因为底下还有个菜单,菜单的空间要给它留出来)

image.png


boot.msg是显示我们的信息的,可以在里面加点话 可以把自己的名字写进去,这是哥制作的

这是一个里面有些二进制格式的文件

image.png


接下来创建镜像


[root@localhost isolinux]# cd ../../   到iso 目录的父目录下创建镜像

[root@localhost tmp]# pwd

/tmp

[root@localhost tmp]# ls

grub-install.img.CJ4327  scim-bridge-0.3.0.socket-0@localhost:0.0

grub-install.log.gE4328  scim-helper-manager-socket-rootf

initrd                   scim-helper-manager-socket-shipingzhong

iso                      scim-panel-socket:0-root

keyring-E5mtRn           scim-panel-socket:0-shipingzhong

keyring-mhN5qf           scim-socket-frontend-root

keyring-mt4fTi           scim-socket-frontend-shipingzhong

mapping-root             tmphGY7E7

mapping-shipingzhong     tmpqrSAIc

[root@localhost tmp]#


[root@localhost tmp]# mkisofs -R -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o boot.iso iso/

Size of boot image is 4 sectors -> No emulation

 72.70% done, estimate finish Thu Dec 20 19:46:55 2018

Total translation table size: 2048

Total rockridge attributes bytes: 1759

Total directory bytes: 2048

Path table size(bytes): 26

Max brk space used 0

6891 extents written (13 MB)


[root@localhost tmp]# ll

total 13832

-rw-r--r--  1 root         root         14112768 Dec 20 19:46 boot.iso

-rw-------  1 root         root                0 Dec 18 15:48 grub-install.img.CJ4327

-rw-------  1 root         root                0 Dec 18 15:48 grub-install.log.gE4328

drwxr-xr-x 12 root         root             4096 Dec 19 00:05 initrd

drwxr-xr-x  3 root         root             4096 Dec 20 19:10 iso

下面是马哥的

把boot.iso移到windows本地

image.png

CD/DVD引入这个boot.iso

image.png

image.png

启动它,

image.png


按F2 进 bios 调整为光盘优先 (第一启动盘)

image.png

保存退出

image.png

启动这个linux

image.png

直接敲回车

马哥出现下面的这种错             没有KDE的组 把 ks.cfg 里面的 KDE 改成  KDE (K  Desktop EnVironment)

image.png


# yum grouplist

image.png

image.png


image.png把 ks.cfg 里面的 KDE 改成  KDE (K  Desktop EnVironment)

image.png

再重新创建 boot.iso

[root@localhost tmp]# mkisofs -R -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o boot.iso iso/


我们不管这个错 Continue 看下效果

You have specified that group 'KDE' should be installed. This group does not exist. Would you like to continue or abotr your installation? (它的意思是 KDE组不存在,应该是叫  KDE (K Desktop Environment)   )

image.png

image.png

这就是我们创建的安装过程,我们以后不用输任何信息,直接回车就可以安装了,事实上,可以把整个系统安装光盘做成这样子,

所有的安装镜像不用来自于网络,就来自于本地cdrom镜像,把光盘一插,安装过程自动启动,安装完成以后,自动启动或自动关机,都可以.



[root@localhost ~]# yum grouplist

image.png


下面是马哥的

改下 vim iso/ks.cfg

image.png

image.png

image.png   ( mkisofs -R -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o boot.iso iso/ )



                keyboard


                keyboard


autopart (可选的)自动分区


普通分类: