Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7110027
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 系统运维

2015-04-30 01:03:07

引导镜像实现CentOS半自动化安装

[日期:2015-04-28] 来源:Linux社区  作者:wuday [字体:  ]

本实验在生产环境中现在已经用不到了,因为已经有更高级的自动化安装软件来取代了本次实验,所以只是为了能从低层更了解Linux的安装,从而做了本次《引导镜像实现半自动化安装》实验,加深与理解当前所学的知识。

先看一下拓扑图吧!

引导镜像实现CentOS半自动化安装

简单的解释一下拓扑图,先在服务器端开启http服务,在http默认目录下创建两个目录分别是ks、x86_64,并把光盘镜像挂载至/var/www/html/x86_64目录下,把已经制作好的ks.cfg文件复制至/var/www/html/ks目录中;在服务器端制作isolinux用于引导启动客户端(其实就是把光盘镜像中的isolinux目录给抽取出来,并重新用命令生成一个iso的文件)。在客户端在挂载isolinux,通过局域网进行安装CentOS 6.6 x86_64.

(1) 首先制作ks.cfg文件

在CentOS 6安装完成后会在/root下生成一个anaconda-ks.cfg文件,这个是由CentOS 6安装程序anaconda根据你在系统安装过程中所有的键盘类型、语言、时区、分区、程序包的选择而生成的一个文件。

如果我们要制作一个anaconda-ks.cfg文件,可以参考这个文件在些基础上进行修改,可以使用system-config-kickstart程序生成相关的文件。

安装system-config-kickstart程序

1 [root@node-2 ~]# yum install -ysystem-config-kickstart

启动system-config-kickstart程序

使用xshell 4远程连接终端启动system-config-kickstart,建议安装XmanagerEnterprise 4软件,这样可以在本地终端中打开Linux系统中的软件。在命令行中输入system-config-kickstart命令即可。

引导镜像实现CentOS半自动化安装

修改完之后在File菜单中选择Save保存,在最上面输入ks.cfg名字,选择保存位置,点击Save按钮即可。

查看刚刚生成的文件并进行添加一些内容,因为有些命令是需要手动添加的,相关的请参考REHL官方的资料。

[root@node-2 ~]# cat /var/www/html/ks/ks.cfg 
#platform=x86, AMD64, or IntelEM64T 
#version=DEVEL 
# Firewall configuration 
firewall --disabled                  #安装后重启初始化系统时选择关防火墙 
# Install OS instead of upgrade 
install                        #安装类型选择为安装 
# Use network installation 
url --url=""        #通过网络安装,使用的Http服务 
repo --name="CentOS"--baseurl= --cost=100 
#repo --name="EPEL" --baseurl= --cost=1000 
# Root password 
rootpw --iscrypted $1$jLn8z9P1$ff07gV9CfXmz1Q0NEOmAw/  #管理员root的密码,使用加密存放 
# System authorizationinformation 
auth  --useshadow --passalgo=sha512          #认证方法,使用的sha512的加密方式 
# Use graphical install 
graphical                        #使用图形界面进行安装 
firstboot --disable 
# System keyboard 
keyboard us                      #选择的键盘类型为us 
# System language 
lang en_US                        #语言为英文 
# SELinux configuration 
selinux --disabled                    #关闭selinux 
# Do not configure the X WindowSystem 
skipx                          #忽略X Window System的配置 
# Installation logging level 
logging --level=info                  #启动的日志级别 
# Reboot after installation 
reboot                          #安装完之后重启系统 
# System timezone 
timezone  Asia/Shanghai                  #系统时区为亚洲/上海 
# Network information 
#network  --bootproto=dhcp --device=eth0 --onboot=on 
# System bootloaderconfiguration              #表示传递能内核的参数 
bootloader--append="crashkernel=auto crashkernel=auto rhgb quiet"--location=mbr --driveorder="sda"
# Partition clearinginformation 
clearpart --all  #以下都是对磁盘进行分区操作的,这里使用的LVM 
zerombr      #磁盘没有分区,对磁盘进行分区 
part /boot --fstype=ext4--size=200 
part pv.008002 --size=61440 
  
volgroup vg0 --pesize=8192pv.008002 
logvol / --fstype=ext4--name=root --vgname=vg0 --size=20480 
logvol swap --name=swap--vgname=vg0 --size=2048 
logvol /usr --fstype=ext4--name=usr --vgname=vg0 --size=10240 
logvol /var --fstype=ext4--name=var --vgname=vg0 --size=20480 
  
%post                #安装完之后需要执行的脚本 
  
%end                #脚本结束符 
%packages              #在安装过程中需要安装的程序包及程序包组 
@base 
@basic-desktop 
@chinese-support 
@client-mgmt-tools 
@core 
@desktop-platform 
@fonts 
@general-desktop 
@graphical-admin-tools 
@legacy-x 
@network-file-system-client 
@perl-runtime 
@remote-desktop-clients 
@x11 
-ibus-table-cangjie 
-ibus-table-erbi 
-ibus-table-wubi 
  
%end        #程序包及程序包组结束符

(2) 安装http服务与启动
12345 [root@node-2 ~]# yum installhttpd -y          #安装httpd服务 
[root@node-2 ~]# service httpdstart            #启动http服务 
Starting httpd:                                          [  OK  ] 
[root@node-2 ~]# netstat-ntlp|grep 80      #查看启动状态,http的端口为tcp的80端口 
tcp        0    0 :::80                      :::*                        LISTEN      2008/httpd

(3) 挂载光盘镜像
  把光盘镜像放入光驱,如果使用的是虚拟机把光盘文件添加至虚拟机的光驱,并选择启用。
1234 [root@node-2 ~]# mkdir /var/www/html/{ks,x86_64}      #创建ks,x86_64目录 
[root@node-2 ~]# mount -r/dev/dvd /var/www/html/x86_64/  #以只读方式挂载光盘镜像至/var/www/html/x86_64/ 
[root@node-2 ~]# mount|tail -1                #查看挂载情况 
/dev/sr0 on/var/www/html/x86_64 type iso9660 (ro)

(4) 复制ks.cfg文件至/var/www/html/ks目录下
123 [root@node-2 ~]# cp/root/ks.cfg /var/www/html/ks/ 
[root@node-2 ~]# ls/var/www/html/ks/ 
ks.cfg

(5)制作isolinux启动引导
在/tmp/创建一个cdrom目录,把光盘镜像中isolinux复制到/tmp/cdrom目录中,并使用mkisofs命令生成iso文件。
1234567 [root@node-2 ~]# cd /tmp/                      #切换着/tmp目录 
[root@node-2 tmp]# cp -r/var/www/html/x86_64/isolinux/ /tmp/cdrom/ #复制isolinux到/tmp/cdrom目录 
[root@node-2 tmp]# ls cdrom/                #查看复制结果 
isolinux 
[root@node-2 tmp]# mkisofs -R-J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Centos6.6 X86_64 boot disk" -b isolinux/isolinux.bin -c isolinux/boot.cat -o/root/boot.iso cdrom/    #制作boot.iso文件 
[root@node-2 tmp]# ll/root/boot.iso    #查看iso文件制作情况 
-rw-r--r-- 1 root root 39866368Apr 17 13:39 /root/boot.iso

(6)把制作好的boot.iso文件下载到本地的电脑下,可能通过Xshell 4自带的Xftp进行拖动把boot.iso放至于桌面上。
(7)新建一个虚拟机,磁盘空间大小为120G,把boot.iso加载至虚拟机光驱中,选择“启动时连接”,打开刚才新建的虚拟机,按F2进入BIOS,移动至Boot选项修改第一启动项为CD-ROM Driver,按F10保存并退出,将会重启虚拟机。
(8)在出现CentOS安装选择界面时,如下图所示。

引导镜像实现CentOS半自动化安装

此时按ESC键,因为我们只有一个引导启动,并没有安装程序所需要的程序包,我们想通过手动指定ks.cfg文件和利用http服务实现远程的安装CentOS 6 x86_64。
  将进入boot的命令提示符,输入linux ip=172.16.9.34 netmask=255.255.0.0 gateway=172.16.0.1ks=,输入完成后回车,开始加载isolinux中微内核vmlinux和initrd.img文件,开始CentOS的自动安装。

引导镜像实现CentOS半自动化安装

提示:
 在boot的命令行提示符中输入的linux表示使用图形化安装CentOS,需要有大于512M的内存;
 ip、netmask、gateway是用于指定本地网卡的IP地址、掩码、网关的,
 ks表示用于指定ks.cfg文件所在位置,可以使用http,ftp,nfs,https,DVD Driver,使用的不同服务后面接的地址可能会有所不同的:
        DVD drive          ks=cdrom:/path/to/kickstart_file
        HTTP Server        ks=
        HTTPS Server        ks=
        FTP Server          ks=ftp://server_ip:port/path/to/kickstart_file
        NFS Server          ks=nfs:server_ip:/path/to/kickstart_file
 
安装Centos进阶:
  通过上面的安装你发现我们每次都要指定IP址址,子网掩码,网关及ks.cfg文件的路径,我们能不能把ks.cfg文件制作进isolinux引导启动中,假设所在的网络环境中已经有一个DHCP服务器能让其主机自动获取IP地址,这样我们只需要把isolinux制作的光盘放进光驱中,然后就是等待等待,Centos 6 x86_64已经安装完了。简单的画一个图:

引导镜像实现CentOS半自动化安装

 我们只需要在上面的基础上加以修改就能实现的,做如下修改;
(1)把ks.cfg文件复制至/tmp/cdrom/目录下
123 [root@node-2 tmp]# cp/var/www/html/ks/ks.cfg /tmp/cdrom/ks.cfg 
[root@node-2 tmp]# ls/tmp/cdrom/ 
isolinux  ks.cfg

(2)修改ks.cfg文件中开启网卡的DHCP服务,让其能自动获取IP地址添加以下一行:
12 # Network information 
network  --bootproto=dhcp --device=eth0 --onboot=on  #在上面的ks.cfg文件中把前面的“#”取消即可;

(3)切换至/tmp/cdrom/isolinux/目录,对isolinux.cfg文件进行修改
[root@node-2 ~]# cd/tmp/cdrom/isolinux/            #切换至/tmp/cdrom/isolinux/目录
[root@node-2 isolinux]#chmod  u+w *              #对所有的文件添加修改的权限
[root@node-2 isolinux]# vimisolinux.cfg            #编译isolinux.cfg文件,在append后面加上ks=cdrom:/ks.cfg
label linux
  menu label ^Install or upgrade an existingsystem
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/ks.cfg
(4)重新制作isolinux引导镜像
12 [root@node-2 isolinux]# cd /tmp              #切换至/tmp目录 
[root@node-2 tmp]# mkisofs -R-J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "Centos6.6 X86_64 boot disk" -b isolinux/isolinux.bin -c isolinux/boot.cat -o/root/boot.iso cdrom/

(5)把/root/boot.iso下载至本地桌面上,重启用于安装系统的虚拟机,选择“Install or upgrade an existing system”标签,进行自动化的安装CentOS6.6 x86_64.

引导镜像实现CentOS半自动化安装

提示:还可以把ks.cfg文件在制作isolinux引导启动镜像时指定为http服务中的ks/ks.cfg文件,你还可以把ks.cfg文件直接做到发行版的光盘中,根据你的需求来实现自动化的安装。
 
小结:
此实验在生产环境中已经没有使用,只是为了理解CentOS的安装流程,从而通过自己手动制作isolinux来引导启动,通过http服务来提供CentOS安装镜像及ks.cfg文件,从而实现一个半自动化的安装CentOS系统,为以后的更好的理解全自动化安装CentOS,做下前期的安装流程熟悉。

更多CentOS相关信息见 专题页面 

本文永久更新链接地址

阅读(1218) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~