本实验在生产环境中现在已经用不到了,因为已经有更高级的自动化安装软件来取代了本次实验,所以只是为了能从低层更了解Linux的安装,从而做了本次实验,加深与理解当前所学的知识。
先看一下拓扑图吧!
简单的解释一下拓扑图,先在服务器端开启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程序
启动system-config-kickstart程序
使用xshell 4远程连接终端启动system-config-kickstart,建议安装XmanagerEnterprise 4软件,这样可以在本地终端中打开Linux系统中的软件。在命令行中输入system-config-kickstart命令即可。
修改完之后在File菜单中选择Save保存,在最上面输入ks.cfg名字,选择保存位置,点击Save按钮即可。
查看刚刚生成的文件并进行添加一些内容,因为有些命令是需要手动添加的,相关的请参考REHL官方的资料。
[root@node-2 ~]
firewall --disabled
install
url --url= "http://172.16.9.21/x86_64/"
repo --name= "CentOS" --baseurl=http: //172 .16.9.21 /x86_64/ --cost=100
rootpw --iscrypted $1$jLn8z9P1$ff07gV9CfXmz1Q0NEOmAw/
auth --useshadow --passalgo=sha512
graphical
firstboot --disable
keyboard us
lang en_US
selinux --disabled
skipx
logging --level=info
reboot
timezone Asia /Shanghai
bootloader--append= "crashkernel=auto crashkernel=auto rhgb quiet" --location=mbr --driveorder= "sda"
clearpart --all
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服务与启动
[root@node-2 ~]
[root@node-2 ~]
Starting httpd: [ OK ]
[root@node-2 ~]
tcp 0 0 :::80 :::* LISTEN 2008 /httpd
|
(3) 挂载光盘镜像
把光盘镜像放入光驱,如果使用的是虚拟机把光盘文件添加至虚拟机的光驱,并选择启用。
[root@node-2 ~]
[root@node-2 ~]
[root@node-2 ~]
/dev/sr0 on /var/www/html/x86_64 type iso9660 (ro)
|
(4) 复制ks.cfg文件至/var/www/html/ks目录下
[root@node-2 ~]
[root@node-2 ~]
ks.cfg
|
(5)制作isolinux启动引导
在/tmp/创建一个cdrom目录,把光盘镜像中isolinux复制到/tmp/cdrom目录中,并使用mkisofs命令生成iso文件。
[root@node-2 ~]
[root@node-2 tmp]
[root@node-2 tmp]
isolinux
[root@node-2 tmp]
[root@node-2 tmp]
-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安装选择界面时,如下图所示。
此时按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=http://172.16.9.21:80/ks/ks.cfg,输入完成后回车,开始加载isolinux中微内核vmlinux和initrd.img文件,开始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=http://server_ip:port/path/to/kickstart_file
HTTPS Server ks=https://server_ip:port/path/to/kickstart_file
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已经安装完了。简单的画一个图:
我们只需要在上面的基础上加以修改就能实现的,做如下修改;
(1)把ks.cfg文件复制至/tmp/cdrom/目录下
|
[root@node-2 tmp]
[root@node-2 tmp]
isolinux ks.cfg
|
(2)修改ks.cfg文件中开启网卡的DHCP服务,让其能自动获取IP地址添加以下一行:
network --bootproto=dhcp --device=eth0 --onboot=on
|
(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引导镜像
[root@node-2 isolinux]
[root@node-2 tmp]
|
(5)把/root/boot.iso下载至本地桌面上,重启用于安装系统的虚拟机,选择“Install or upgrade an existing system”标签,进行自动化的安装CentOS6.6 x86_64.
提示:还可以把ks.cfg文件在制作isolinux引导启动镜像时指定为http服务中的ks/ks.cfg文件,你还可以把ks.cfg文件直接做到发行版的光盘中,根据你的需求来实现自动化的安装。
小结:
此实验在生产环境中已经没有使用,只是为了理解CentOS的安装流程,从而通过自己手动制作isolinux来引导启动,通过http服务来提供CentOS安装镜像及ks.cfg文件,从而实现一个半自动化的安装CentOS系统,为以后的更好的理解全自动化安装CentOS,做下前期的安装流程熟悉。
(责任编辑:IT) |