概述:
上篇我们讨论了下关于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即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
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 - |
注意:上述内容一般位于引导设备,例如通过光盘,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配置文件的语法
生成的ks文件详解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
#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文件为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
[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 ~] # |
<2>新建虚拟机,挂载系统光盘,进行引导
<3>在安装显示出来的菜单项中,指定ks文件的路径,然后执行安装
<4>安装完成后验证是否成功
2、创建光盘引导镜像,利用网络上的仓库作为安装时的程序包的来源进行系统自动化安装
思路:与上个实验一样,只是本实验中不是利用系统光盘进行引导,而是自己制作一个具有引导功能的iso文件,利用制作好的iso文件进行引导,剩余的步骤根上个实验一样。
环境:与上述实验一致,ks文件也一致,只是本实验中,不再在引导完成后在安装菜单项里面手动输入ks文件路径,而是在制作引导盘时,直接将ks文件写入到iso文件中,直接启动安装
步骤:
<1>制作iso引导文件
a、创建光盘的文件的目录,假设为/tmp/mycd,将系统光盘的isolinux这个微型系统拷贝到/tmp/mycd
1
2
3
4
5
6
7
8
9
|
[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文件的路径了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
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镜像
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
[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文件(与上个实验一样)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
[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上)
<4>执行安装
<5>安装完成后验证是否成功
原创文章,作者:wencx,如若转载,请注明出处:http://www.178linux.com/46848