Linux系统安装

概述:

    上篇我们讨论了下关于Linux系统的启动流程和grub相关的内容,本篇将介绍一下Linux的系统安装相关的内容,具体分为:

    1、系统安装程序anaconda的介绍

    2、kickstart文件的介绍

    3、实战:利用ks文件实现无人值守安装和制作iso引导文件进行安装

第一章    系统上安装程序anaconda的介绍

    1、CentOS的安装过程启动流程:(以光盘为例)

        MBR:在光盘的文件isolinux目录中有boot.cat,这个相当于bootloader

        stage2:isolinux/isolinux.bin  相当于grub的第二阶段,也就是相当于/boot/grub下的文件,显示出启动菜单的。

        isolinux.bin的配置文件时isolinux.cfg,也就类似于grub的配置文件

            配置文件中,每个对应的菜单选项:

            加载内核:isolinux/vmlinuz

            向内核传递参数:append initrd=initrd.img

        装载根文件系统,并启动anaconda应用程序,默认界面是图形界面,但前提是需要512M以上的内存

            若需要显式指定启动文本接口,则想启动内核传递一个参数text即可

isolinux.cfg文件的详解(显示出光盘启动时菜单项的相关配置)
#####################################################################################
[root@localhost ~]# mount /dev/sr0 /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
CentOS_BuildTag  EULA  images    Packages     repodata    RPM-GPG-KEY-CentOS-Debug-6 
RPM-GPG-KEY-CentOS-Testing-6     EFI    GPL   isolinux  RELEASE-NOTES-en-US.html  
RPM-GPG-KEY-CentOS-6  RPM-GPG-KEY-CentOS-Security-6  TRANS.TBL
[root@localhost mnt]# ls isolinux/
boot.cat  boot.msg  grub.conf  initrd.img  isolinux.bin  
isolinux.cfg  memtest  splash.jpg  TRANS.TBL  vesamenu.c32  vmlinuz
[root@localhost mnt]# vim isolinux/isolinux.cfg 

default vesamenu.c32
#prompt 1
timeout 600                ###指定显示的菜单界面的等待用户选择的超时时长,600相当于60秒

display boot.msg

menu background splash.jpg                ###菜单的背景图片
menu title Welcome to CentOS 6.8!         ###菜单的title信息
menu color border 0 #ffffffff #00000000   ###相关颜色的定义
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
 
label linux                     ###第一个菜单项的定义,label为linux
  menu label ^Install or upgrade an existing system     ###该菜单显示出来的提示信息
  menu default         ###定义当超过等待用户选择的超时时长,而用户没有做出选择时,默认执行的菜单项
  kernel vmlinuz       ###定义该菜单项用的内核信息
  append initrd=initrd.img           ###定义该菜单项的ramdisk文件的信息,和附加给内核的选项参数的信息
     ###修改附加给内核参数的信息可以有两种方法:
         ##<1>选择到某菜单项显示界面的条目,按TAB键,然后在后面直接输入要附加的参数
         ##<2>在菜单项显示界面,按ESC键,进入boot提示符界面,然后输入要启动的菜单项的label信息,然后跟上要额外附加的参数
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -

    1.png

    2.png

    3.png

        注意:上述内容一般位于引导设备,例如通过光盘,U盘,网络等;后续的anaconda机器安装到的程序包等可以来自于程序包仓库,此仓库的位置可以为:本地光盘、本地硬盘、ftp server、http server、nfs server。安装过程中,如果想手动指定安装仓库,可以在安装界面下按ESC键,然后进入boot提示符界面,键入: linux(菜单项的label,不一定是linux) method  表示询问用户,让用户选择安装方法

    2、安装过程中的引导选项:

        安装界面下按ESC,进入boot提示符,然后输入指定菜单项的label然后加上相关选项,或者在某个菜单项后,按tab键,然后直接输出相关选项

        常见的选项有:

            text  文本安装方式

            method  手动指定使用的安装方法

            与网络相关的引导选项:

                ip=IPADDR

                netmask=MASK

                getaway=GATEWAY

                dns=DNS_ADDR

            远程访问功能相关的引导选项:

                vnc

                vncpassword="PASSWORD"

            启动紧急救援模式:

                rescue

            装载额外驱动:

                dd

            自动化安装的配置文件路径选项:ks=/PATH  指明kictstart配置文件

                如果kicstart文件在光盘上,则应写成:

                    ks=cdrom:/PATH/TO/KICKSTART_FILE

                如果kickstart文件在某个硬盘上,则应写成

                    ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE

                如果kickstart文件在http服务器上,则应写成

                    ks=http://HOST:PORT/PATH/TO/KICKSTART_FILE

                    ks=https://HOST:PORT/PATH/TO/KICKSTART_FILE

                如果kickstart文件在ftp服务器上,则应写成

                    ks=ftp://HOST:PORT/PATH/TO/KICKSTART_FILE

    3、anaconda的工作过程:分两个阶段

        <1>安装前配置阶段:

            安装过程使用的语言

            键盘类型

            安装目标存储设备

                    basic storage:本地磁盘

                    special storage:如ISCSI或SAN等

            主机名称

            配置网络接口

            时区

            root账户密码

            分区方式及MBR安装位置

            创建一个普通用户

            选定要安装的程序包

        <2>安装阶段:

            在目标磁盘创建分区,并执行格式化

            将选定的程序包,安装至指定的目标位置

            安装bootloader

        <3>首次启动(与anaconda本身没关系):

            iptables是否要启用

            selinux是否要启用

            core dump 核心转储(要求内存大于2G),当某一时刻内核崩溃时,将崩溃那一刻内存中的数据存储到磁盘上,供后期分析崩溃原因

    4、anaconda的安装前相关配置方式

        <1>交互式配置方式

        <2>支持通过读取配置文件中事先定义好的配置项自动完成配置:遵循特定的语法格式,此文件即为kickstart文件

第二章    kickstart文件的介绍

    1、kickstart文件的格式:三部分组成

        命令段:指定各种系统真正执行安装前的配置选项,如键盘类型,语言、分区等参数信息

            必备命令:

            可选命令:

        程序包段:指明要安装的程序包,以及包组,也包括不安装的程序包

            %packages  指明程序包段开始

            %end   指明程序包段结束

            段内内容:

                @GROUP_PACKAGE_NAME  表示要安装一个包组

                PACKAGE   表示要安装一个包

                -PACKAGE   表示不安装的包,即使指明了不安装,但有可能还是会安装,因为有可能别的包安装时依赖该包,那么该包也会被安装上去

        脚本段:

            %pre   安装操作真正开始之前的脚本,结束用%end

            %post   安装后运行的脚本,结束用%end

            安装前脚本和安装后脚本的运行环境是不一样的,因为脚本本身是命令的集合,但安装前的脚本中使用的命令,主要是安装介质,如光盘,上面自带的一个小的系统所提供的,命令及其有限。但是安装后脚本可以很丰富,因为安装后的脚本,运行环境是安装好的系统,提供了更多的可用的命令

    2、kickstart文件中命令段中的先关命令:

        <1>必备命令

            authconfig:认证方式配置 

                    authconfig –enableshadow –passalgo=sha512

                    表示基于shadow文件进行认证,密码加密方式是sha512

            bootloader:定义bootloader的安装位置及相关设定

                    bootloader –location=mbr –driveorder=sda –append="crashkernel=auto rhgb quiet"

                    表示bootloader安装位置在mbr中,驱动优先选择sda,附加给grub中内核的参数为crashkernel=auto rhgb quiet,表示内核崩溃后的处理方式,auto一般表示核心转储,quiet表示展开内核的过程不显示

            keyboard:设置键盘类型

                    keyboard us   美式英语键盘

            lang:语言类型

                    lang zh_CN.UTF-8

            part:分区布局及分区使用方式

                    part /boot –fstype=ext4 –size=200

                    part pv.008002  –size=51200

                    pv.008002表示创建的是一个物理卷,及该物理卷的ID号,pv大小为51200M

            rootpw:管理员密码

                    rootpw  –iscrypted $6$2owvccL5jQV4….

                    表示管理员加密后的密码

                        生成密码的方式:

                        openssl passwd -1 -salt `openssl rand -hex 4`

                        表表示用openssl生成密码,-1表示利用md5方式加密,salt表示密码段的杂质,杂质由openssl随机生成8位

            timezone:指定时区

            timezone Asia/Shanghai

            补充:分区相关的其他指令

                clearpart:清除分区

                clearpart –none  –drives=sda  表示清空磁盘分区

                volgroup:创建卷组

                volgroup myvg –pesize=4096  pv.008002  表示在pv.008002物理卷上创建名为myvg的卷组,pe大小为4096字节,可以有多个物理卷

                logvo:创建逻辑卷

                logvo  /home  –fstype=ext4  –name=lv_home  –vgname=myvg  –size=5120    表示在myvg卷组上创建逻辑卷,逻辑卷名称为lv_home,逻辑卷大小为5120M,分区挂载至/home ;文件系统类型为ext4;

        <2>可选的命令:

            install | upgrade :安装或升级

            text   安装界面类型,text为文本界面,默认为图形界面

            network   配置网络接口

                    network –onboot yes –device eth0 –bootproto dhcp –noipv6

                    network –onboot yes –device eth0 –bootproto=static –ip=10.1.32.68 –netmask=255.255.0.0 –gateway=10.1.0.1 –nameserver=10.1.0.1

            firewall:防火墙

                    firewall –service=ssh

                    表示防火墙启用了,但是防火墙放行了对本机ssh的访问

                    firewall –disabled 

                    表示禁用防火墙

            selinux:

                    selinux –disabled  表示禁用selinux

            halt、poweroff、reboot:表示系统安装完成后的行为是关机或重启

            repo:指明安装时指明的仓库

            repo –name=“CentOS” –baseurl=cdrom:sr0 –cost=100

            url:表示指明安装时使用的repo源为url格式

                    url –url=http://10.1.0.1/cobbler/ks_mirror/centos-6.8-x86_64/  表示利用url指向的地址作为安装时的仓库,如果用网络安装,则要保证安装时网卡配置好,能够更url地址连通

    

            注意:当repo和url同时存在时,url的优先级高

    3、kickstart文件的创建

        <1>可以使用 yum install system-config-kickstart 这个是一个生成kickstart配置文件的图形化工具

            然后用xshell连接linux主机时,使用-X选项,表示在windows界面打开linux图形化工具,如:ssh -X root@10.1.32.68

运行system-config-kickstart命令,出现图形化工具,即可开始配置

        <2>利用现有的kickstart现有的模板进行修改,本机安装后再/root目录下有个anaconda-ks.cfg,可利用此文件进行修改后生成自己的ks配置文件

        ksvalidator ks.cfg   可以检查kickstart配置文件的语法

    5.png

    6.png

    7.png

    生成的ks文件详解

#platform=x86, AMD64, 或 Intel EM64T  
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$QzMtsmtx$U3pKecgCxMLpfzt6QSVHo/
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url=" 
# System language
lang zh_CN
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx

# Network information
network  --bootproto=static --device=eth0 --gateway=10.1.0.1 --ip=10.1.32.100 --nameserver=8.8.8.8 --netmask=255.255.0.0
# Reboot after installation
reboot
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype="ext4" --size=512
part /var --asprimary --fstype="ext4" --size=10000
part / --fstype="ext4" --size=20000
part swap --asprimary --fstype="swap" --size=200

%packages
@Base
@Core
%end

%post
echo  "nwclinux,do not login">>/etc/issue
mkdir /etc/yum.repos.d/back
mv /etc/yum.repos.d/*.repo  /etc/yum.repos.d/back
cat > /etc/yum.repos.d/nwc.repo <<EOF
[base]
name="test base repo"
baseurl=http://10.1.0.1/cobbler/ks_mirror/6/
gpgcheck=0
EOF

[ ! -d /root/.ssh ] && mkdir /root/.ssh && chmod og=--- /root/.ssh

cat >> /root/.ssh/authorized_keys << EOF
sh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1ZfkFc+UkS47PUn/oofOInvCFF/oDR617m6uWi5zML0I17MKP0yRUthEsJKolzllpkUtfn0reNmvvYAZ9/
fsgcMNv3zGWHZaRyeeXsOxm44zkuVWfvcdYCJkSQaJqrKgOoFB4xPig8Up45opos/k6TLTKfFv/vsRV6/4FRgTpFRzcVXP9ambL8TfOH9tSwGp0QKR6CD
KCqdk55wOudEuk0eTF+VEcWMzxtBns8a9U6Gi+g+RLAwfe4VtpKouWKVSM6BCfiVUQGXQPKaGgF/DzaR08gWuJv5+RlVJFNbMdulBLamuWC1pEvDHASgw
CMlqZxiOCmTrECly4ca3ds/yrw== root@localhost.localdomain
%end

第三章    实战:利用ks文件实现无人值守安装和制作iso引导文件进行安装

    1、利用系统光盘引导,手动指定ks文件路径,借助网络上的软件源进行自动化无人值守安装

        环境:

            相关系统均为CentOS6.8,生成ks文件放在10.1.32.118的ftp服务器上,需要安装系统的终端,通过本地挂载系统光盘镜像进行引导,显示出安装的相关菜单选项时,指明ks文件为ftp服务器上的nwcks.cfg。

            在ks文件中,明确定义安装时使用的网络仓库为环境中的一台软件包仓库http服务器,地址为10.1.0.1,实现最小化安装,指明新装的机器的IP地址为手工指定,指定为10.1.32.100

        步骤:

        <1>根据需要,生成ks文件

        ks文件的生成,此处采用修改现有的系统上ks文件,然后加上相关配置形成,最终的ks文件为:

[root@localhost ~]# service vsftpd status
vsftpd (pid 1690) is running...
[root@localhost ~]# vim /var/ftp/pub/nwcks.cfg 
[root@localhost ~]# cat /var/ftp/pub/nwcks.cfg
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# 管理员密码
rootpw --iscrypted $1$QzMtsmtx$U3pKecgCxMLpfzt6QSVHo/
# 时区
timezone Asia/Shanghai
# 安装时的软件包仓库路径,url表示是http的,也可用repo关键字指明其他仓库路径
url --url="http://10.1.0.1/cobbler/ks_mirror/6"
# System language
lang zh_CN
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx

# 安装时网络的指定,本处指明为静态
network  --bootproto=static --device=eth0 --gateway=10.1.0.1 --ip=10.1.32.100 --nameserver=8.8.8.8 --netmask=255.255.0.0
# Reboot after installation
reboot
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# 指定磁盘分区方式
part /boot --asprimary --fstype="ext4" --size=512
part /var --asprimary --fstype="ext4" --size=10000
part / --fstype="ext4" --size=20000
part swap --asprimary --fstype="swap" --size=200

#指定安装的软件包,本处为最小化安装
%packages
@Base
@Core
%end


#指定安装后执行的相关操作,该issue文件,改yum仓库,增加对某机器的ssh公钥,实现该机器登录新装的系统时免密登录
%post
echo  "nwclinux,do not login">>/etc/issue
mkdir /etc/yum.repos.d/back
mv /etc/yum.repos.d/*.repo  /etc/yum.repos.d/back
cat > /etc/yum.repos.d/nwc.repo <<EOF
[base]
name="test base repo"
baseurl=http://10.1.0.1/cobbler/ks_mirror/6/
gpgcheck=0
EOF

[ ! -d /root/.ssh ] && mkdir /root/.ssh && chmod og=--- /root/.ssh

cat >> /root/.ssh/authorized_keys << EOF
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA44A8s8v1MAzPGIu4iJhL2F0QKVTq0mBGu0kAZeadHvX/jVYnTkTDk8OURjQThxnZELlqViel1WCeOw4i7
hwxM1qO+8hs505p39PoKj3WZ/P4Pvi4xRKfEsRF7jMW3cS84y3nE1KVpNuyzwSQlWk9sgNRMC4CIm2ZvSrSmBeyl1Tp8TQo/Ut6v0q2TfHlFh9UbGSpOa
1I2WkfJaU2kCPsk2/89GZFDDEZiCknYIeW6B1p+2xUqqSyaJHa+B7QAXe5dLvAVu1XqMPJKhv2de4HoN3871bwZtFzRCFtXzPJ09AhRkZQ4aKYxGtIS5o
LTIsfZUTVtFtHa3b3C0cJra6r7Q== root@localhost.localdomain
EOF
%end
[root@localhost ~]#

        blob.png        

        <2>新建虚拟机,挂载系统光盘,进行引导

        blob.png

        blob.png

        <3>在安装显示出来的菜单项中,指定ks文件的路径,然后执行安装

        blob.png

        blob.png

        

        <4>安装完成后验证是否成功

        blob.png

        

    2、创建光盘引导镜像,利用网络上的仓库作为安装时的程序包的来源进行系统自动化安装

        思路:与上个实验一样,只是本实验中不是利用系统光盘进行引导,而是自己制作一个具有引导功能的iso文件,利用制作好的iso文件进行引导,剩余的步骤根上个实验一样。

        环境:与上述实验一致,ks文件也一致,只是本实验中,不再在引导完成后在安装菜单项里面手动输入ks文件路径,而是在制作引导盘时,直接将ks文件写入到iso文件中,直接启动安装

        步骤:

        <1>制作iso引导文件

            a、创建光盘的文件的目录,假设为/tmp/mycd,将系统光盘的isolinux这个微型系统拷贝到/tmp/mycd

    [root@localhost ~]# mount /dev/sr0 /mnt    
    mount: block device /dev/sr0 is write-protected, mounting read-only
    [root@localhost ~]# mkdir /tmp/mycd
    [root@localhost ~]# cp -r /mnt/isolinux/ /tmp/mycd/
    [root@localhost ~]# ls /tmp/mycd/
    isolinux
    [root@localhost ~]# ls /tmp/mycd/isolinux/
    boot.cat  boot.msg  grub.conf  initrd.img  isolinux.bin  
    isolinux.cfg  memtest  splash.jpg  TRANS.TBL  vesamenu.c32  vmlinuz

            

            b、根据需要,修改拷/tmp/mycd/isolinux/目录下,islinux.cfg文件,修改安装启动时菜单项的信息,在响应的信息后面加上ks文件的路径指向,这样,我们在执行安装时就不用手动添加ks文件的路径了

default vesamenu.c32
#prompt 1
timeout 1000    ##修改超时时间为100s

display boot.msg

menu background splash.jpg
menu title niwenchao test boot iso!!!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

##新增的一个菜单项,label为nwcmin,作为默认的菜单项,内核为vmlinuz,ks文件路径为ftp上的路径
label nwcmin   
  menu label ^Install min linux system
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=ftp://10.1.32.118/pub/nwcks.cfg

##新增一个菜单项,label为nwcdesktop,指定ks文件路径为本iso镜像的根下的nwcks.cfg,也可以指定为别的位置的ks文件
##注意,本实验中,此处ks文件指定为本iso镜像上的文件,则需要将对应的ks文件拷贝到/tmp/mycd目录下
##通过指定不同的ks文件,即可以实现不同菜单项安装不同的系统,只是在ks文件中定义好各个ks文件需要安装的包和相关操作即可
label nwcdesktop
  menu label ^Install desktop linux system
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/nwcks.cfg
  
label linux
  menu label ^Install or upgrade an existing system
  kernel vmlinuz
  append initrd=initrd.img
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -

       

            e、利用命令将/tmp/mycdboot创建为iso镜像

                 先 cd /tmp目录中,不能cd到/tmp/mycdboot目录中

                 然后执行:mkisofs -R -J -T -v –no-emul-boot –boot-load-size 4 –boot-info-table -V "nwc test" -c isolinux/boot.cat  -b  isolinux/isolinux.bin -o /tmp/testboot.iso mycd/

                注意:此命令要安装genisoimage软件包

                        -V 指定光盘名称

                        -c 指定光盘里面微型系统的grub1阶段的程序

                        -b 指定光盘里面微型系统的grub2阶段的程序

                        -o 指定创建生成的iso文件存储的路径及名称

                        最后指定对哪个目录下的而文件创建iso镜像

[root@localhost tmp]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "nwc test"
-c isolinux/boot.cat  -b  isolinux/isolinux.bin -o /testdir/testboot.iso mycd/
I: -input-charset not specified, using utf-8 (detected in locale settings)
genisoimage 1.1.9 (Linux)
Scanning mycd/
Scanning mycd/isolinux
Excluded: mycd/isolinux/TRANS.TBL
Excluded by match: mycd/isolinux/boot.cat
Writing:   Initial Padblock                        Start Block 0
Done with: Initial Padblock                        Block(s)    16
Writing:   Primary Volume Descriptor               Start Block 16
Done with: Primary Volume Descriptor               Block(s)    1
Writing:   Eltorito Volume Descriptor              Start Block 17
Size of boot image is 4 sectors -> No emulation
Done with: Eltorito Volume Descriptor              Block(s)    1
Writing:   Joliet Volume Descriptor                Start Block 18
Done with: Joliet Volume Descriptor                Block(s)    1
Writing:   End Volume Descriptor                   Start Block 19
Done with: End Volume Descriptor                   Block(s)    1
Writing:   Version block                           Start Block 20
Done with: Version block                           Block(s)    1
Writing:   Path table                              Start Block 21
Done with: Path table                              Block(s)    4
Writing:   Joliet path table                       Start Block 25
Done with: Joliet path table                       Block(s)    4
Writing:   Directory tree                          Start Block 29
Done with: Directory tree                          Block(s)    2
Writing:   Joliet directory tree                   Start Block 31
Done with: Joliet directory tree                   Block(s)    2
Writing:   Directory tree cleanup                  Start Block 33
Done with: Directory tree cleanup                  Block(s)    0
Writing:   Extension record                        Start Block 33
Done with: Extension record                        Block(s)    1
Writing:   The File(s)                             Start Block 34
 22.37% done, estimate finish Wed Sep 14 21:21:04 2016
 44.66% done, estimate finish Wed Sep 14 21:21:04 2016
 67.02% done, estimate finish Wed Sep 14 21:21:04 2016
 89.29% done, estimate finish Wed Sep 14 21:21:04 2016
Total translation table size: 4704
Total rockridge attributes bytes: 1441
Total directory bytes: 2048
Path table size(bytes): 26
Done with: The File(s)                             Block(s)    22215
Writing:   Ending Padblock                         Start Block 22249
Done with: Ending Padblock                         Block(s)    150
Max brk space used 0
22399 extents written (43 MB)
[root@localhost tmp]# 
[root@localhost tmp]# ll /testdir/testboot.iso 
-rw-r--r-- 1 root root 45873152 9月  14 21:21 /testdir/testboot.iso
[root@localhost tmp]#

        

        <2>制作ks文件(与上个实验一样)

[root@localhost ~]# cat /var/ftp/pub/nwcks.cfg
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# 管理员密码
rootpw --iscrypted $1$QzMtsmtx$U3pKecgCxMLpfzt6QSVHo/
# 时区
timezone Asia/Shanghai
# 安装时的软件包仓库路径,url表示是http的,也可用repo关键字指明其他仓库路径
url --url="http://10.1.0.1/cobbler/ks_mirror/6"
# System language
lang zh_CN
# Firewall configuration
firewall --disabled
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx

# 安装时网络的指定,本处指明为静态
network  --bootproto=static --device=eth0 --gateway=10.1.0.1 --ip=10.1.32.100 --nameserver=8.8.8.8 --netmask=255.255.0.0
# Reboot after installation
reboot
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# 指定磁盘分区方式
part /boot --asprimary --fstype="ext4" --size=512
part /var --asprimary --fstype="ext4" --size=10000
part / --fstype="ext4" --size=20000
part swap --asprimary --fstype="swap" --size=200

#指定安装的软件包,本处为最小化安装
%packages
@Base
@Core
%end


#指定安装后执行的相关操作,该issue文件,改yum仓库,增加对某机器的ssh公钥,实现该机器登录新装的系统时免密登录
%post
echo  "nwclinux,do not login">>/etc/issue
mkdir /etc/yum.repos.d/back
mv /etc/yum.repos.d/*.repo  /etc/yum.repos.d/back
cat > /etc/yum.repos.d/nwc.repo <<EOF
[base]
name="test base repo"
baseurl=http://10.1.0.1/cobbler/ks_mirror/6/
gpgcheck=0
EOF

[ ! -d /root/.ssh ] && mkdir /root/.ssh && chmod og=--- /root/.ssh

cat >> /root/.ssh/authorized_keys << EOF
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA44A8s8v1MAzPGIu4iJhL2F0QKVTq0mBGu0kAZeadHvX/jVYnTkTDk8OURjQThxnZELlqViel1WCeOw4i7
hwxM1qO+8hs505p39PoKj3WZ/P4Pvi4xRKfEsRF7jMW3cS84y3nE1KVpNuyzwSQlWk9sgNRMC4CIm2ZvSrSmBeyl1Tp8TQo/Ut6v0q2TfHlFh9UbGSpOa
1I2WkfJaU2kCPsk2/89GZFDDEZiCknYIeW6B1p+2xUqqSyaJHa+B7QAXe5dLvAVu1XqMPJKhv2de4HoN3871bwZtFzRCFtXzPJ09AhRkZQ4aKYxGtIS5o
LTIsfZUTVtFtHa3b3C0cJra6r7Q== root@localhost.localdomain
EOF
%end
[root@localhost ~]#

        <3>新建虚拟机,将制作好的iso文件作为虚拟机启动时的光盘引导,然后执行安装

        (先将制作好的iso文件导出到windows上)

        blob.png

        1.png

        2.png

        <4>执行安装

        blob.png

        blob.png

        blob.png

        blob.png

        blob.png

        <5>安装完成后验证是否成功

        blob.png

原创文章,作者:M20-1倪文超,如若转载,请注明出处:http://www.178linux.com/46515

(0)
M20-1倪文超M20-1倪文超
上一篇 2016-09-14
下一篇 2016-09-15

相关推荐

  • 2016/08/03:用户管理与权限

    名称解析:User IDentifier UID 组名:Group IDentifier GID                                     &nbsp…

    学员作品 2016-08-05
  • sed基本用法详解

    一、sed介绍:        sed是非交互式的编辑器,同时又是面向字符流的,一次处理一行文本。当前输入的行被缓存至一个被称为模式空间(pattern space)的内存空间中,与给定的模式进行比对,若不匹配,则将内容输出至屏幕,之后读取第二行;若匹配,则执行编辑命令,命令执行完成后,将模式空间中…

    Linux干货 2016-08-10
  • 马哥教育网络班20期+第9周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash declare -i other=0 declare -i nologin=0 for i in&nbs…

    学员作品 2016-08-08
  • Linux 用户,组和用户权限的使用

    echo -e "Hello,I am 'whoami',the system version is here,please helcheck ist  thanks! \n'lsb_release'"| mail -s 'help'root cmd1 |cmd 2 cma1 2&…

    2016-08-05
  • 【马哥linux运维】–马帮高薪就业系列文章之一线资深运维

    时光荏苒,马哥linux运维在北京开校已经有一些时日了,随着大家对马哥linux的密切关注,来跟随小编走进我们马哥linux运维的北京校区 关于学员就业这点事 很多小伙伴在马哥学习一段时间后,获得了快速的成长,不少学员已经进入著名互联网公司拿到了高薪,有的在成长性公司成为技术骨干,有的已经出国等,我们回顾下最近几个月很多学员的成长,收获,自己的心得感受吧 当…

    2015-11-06
  • 马哥教育网络班20期+第10周博客作业

    4、写一个脚本   (1) 能接受四个参数:start, stop, restart, status    start: 输出“starting 脚本名 finished.”    …   (2) 其它任意参数,均报错退出;     #!bin/b…

    学员作品 2016-12-05