手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

CentOS Kickstart及引导镜像文件制作

[日期:2017-05-12] 来源:Linux社区  作者:xuweitao [字体: ]

这里直接进行配置(不使用模板),首先完成基本配置(如图),这里可设置语言类型、键盘类型、时区、管理员密码(加密)以及安装的平台类型等选项:

选择安装方式,这里通过网易镜像网站(mirrors.163.com)安装程序包:

选择安装类型、MBR的安装位置以及向内核传递的参数等:

设置分区信息:

网卡配置,可以静态指定也可以使用dhcp动态获取网络属性配置:

认证方式配置:

设定是否开启防火墙和selinux功能:

设定是否安装图形界面:

选定要安装的程序包:

安装前要执行的脚本,注意运行环境是安装介质之上的微型Linux系统环境:

安装后要执行的脚本:

完成配置之后进行保存:

指定保存目录:

使用ls查看:

[root@localhost ~]# ls -1

anaconda-ks.cfg

Desktop

Documents

Downloads

ks.cfg    //此文件即为kickstart文件;

Music

...(以下省略)...

可用ksvalidator命令检查kickstart文件语法错误:

[root@localhost ~]# ksvalidator ks.cfg 

[root@localhost ~]#        //没有任何信息显示,说明语法无错误;

一般直接手动编辑kickstart文件方式比较需要使用ksvalidator检查语法错误。

5. 制作引导镜像

    在上一篇博客中提到过,一般bootloader、Kernel及initrd等文件由安装系统的引导设备提供,例如通过光盘、U盘或网络引导;后续的anaconda及其安装用到的程序包可以来自程序包仓库,此仓库可以为本地光盘、本地硬盘、ftp/http/https/nfs服务器上的yum仓库等。

    如果要实现自动化安装则还需要kickstart文件,kickstart文件同样可以来自本地光盘、本地硬盘、ftp/http/https/nfs服务器等。本次实验中,采用将bootloader、Kernel、initrd及kickstart文件制作成光盘镜像方式以实现本地光盘镜像引导安装CentOS系统,其中anaconda应用程序位于initrd提供的rootfs中。而后续安装用到的程序包来自网易镜像站点(mirrors.163.com),刚才在制作kickstart文件时已经手动指定。

制作引导镜像步骤:

(1)在当前目录下创建myboot目录(名称可自定义):

[root@localhost ~]# mkdir myboot

(2)查看光盘是否已挂载:

[root@localhost ~]# df

Filesystem          1K-blocks    Used Available Use% Mounted on

/dev/mapper/VolGroup-lv_root

                      36613720 3115284  31631892  9% /

tmpfs                  953140    224    952916  1% /dev/shm

/dev/sda1              487652  40658    421394  9% /boot

/dev/sr0              3824484 3824484        0 100% /media/cdrom

//最后一行是光盘镜像的挂载信息,说明已经挂载;

(3)将光盘中的isolinux目录复制到刚才创建的myboot目录,同时也把刚才制作的kickstart文件复制进myboot目录:

[root@localhost ~]# cp -r /media/cdrom/isolinux ./myboot

[root@localhost ~]# cp ks.cfg ./myboot

(4)因为原有光盘镜像是只读挂载的,因此复制过来的文件均只有只读权限,需要先将之修改为可写权限:

[root@localhost ~]# cd ./myboot/isolinux/

[root@localhost isolinux]# ll

total 44436

-r--r--r--. 1 root root    2048 Mar  5 13:12 boot.cat

-r--r--r--. 1 root root      84 Mar  5 13:12 boot.msg

-r--r--r--. 1 root root      321 Mar  5 13:12 grub.conf

-r--r--r--. 1 root root 40688737 Mar  5 13:12 initrd.img

-r--r--r--. 1 root root    24576 Mar  5 13:12 isolinux.bin

-r--r--r--. 1 root root      923 Mar  5 13:12 isolinux.cfg

-r--r--r--. 1 root root  183012 Mar  5 13:12 memtest

-r--r--r--. 1 root root  151230 Mar  5 13:12 splash.jpg

-r--r--r--. 1 root root    2215 Mar  5 13:12 TRANS.TBL

-r--r--r--. 1 root root  163728 Mar  5 13:12 vesamenu.c32

-r-xr-xr-x. 1 root root  4264528 Mar  5 13:12 vmlinuz

[root@localhost isolinux]# chmod u+w *

[root@localhost isolinux]# ll

total 44436

-rw-r--r--. 1 root root    2048 Mar  5 13:12 boot.cat

-rw-r--r--. 1 root root      84 Mar  5 13:12 boot.msg

-rw-r--r--. 1 root root      321 Mar  5 13:12 grub.conf

-rw-r--r--. 1 root root 40688737 Mar  5 13:12 initrd.img

-rw-r--r--. 1 root root    24576 Mar  5 13:12 isolinux.bin

-rw-r--r--. 1 root root      923 Mar  5 13:12 isolinux.cfg

-rw-r--r--. 1 root root  183012 Mar  5 13:12 memtest

-rw-r--r--. 1 root root  151230 Mar  5 13:12 splash.jpg

-rw-r--r--. 1 root root    2215 Mar  5 13:12 TRANS.TBL

-rw-r--r--. 1 root root  163728 Mar  5 13:12 vesamenu.c32

-rwxr-xr-x. 1 root root  4264528 Mar  5 13:12 vmlinuz

(5)修改myboot/isolinux/isolinux.cfg配置文件,向默认启动的label所定义的内核传递参数,执行kickstart文件的存放位置:

[root@localhost isolinux]# vim isolinux.cfg

注意:无论kickstart文件是存放在待制作的光盘镜像中的哪个路径下,都可以在此处通过向内核追加参数的方式指明kickstart文件位置。

(5)为了节约等待光盘镜像引导安装时的时间,可修改default参数:

(6)到此为此所有的准备工作已经完成,接下来需要退出myboot目录,并为myboot目录及其目录中的所有文件制作成光盘引导镜像,而myboot目录作为光盘镜像中的根目录:

[root@localhost ~]#  mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-tabl

e -V "CentOS 6 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso

 ./myboot/

创建光盘镜像的命令稍微有点复杂,这里给其中的一部分做出说明:

"CentOS 6 x86_64 boot"        //光盘卷标;

isolinux/boot.cat            //MBR中的bootloader;

isolinux/isolinux.bin        //bootloader的第二阶段;

/root/boot.iso            //指定存放在哪里,并命名之;

./myboot/            //指定某个目录为“根”创建光盘镜像;

(7)创建完成之后使用ls查看:

[root@localhost ~]# ls -1

anaconda-ks.cfg

boot.iso    //这就是刚刚创建的光盘镜像文件!

Desktop

Documents

Downloads

ks.cfg

Music

myboot

myboot1

Pictures

Public

Templates

Videos

(8)在远程终端软件Xshell上新建文件传输,把CentOS上的引导镜像boot.iso拷贝至Windows系统桌面上:

可直接拖拽过去。

然后就可以在Windows桌面上看到这个镜像文件了。

(9)接着创建新的虚拟机,将其引导设备指明为boot.iso镜像,然后点击启动即可实现自动安装:

过了5s之后会自动选择默认菜单项(即第一项)。

接下来的自动安装过程:

说明:

CentOS开始安装时,由光盘镜像上的bootloader引导加载内核,第二阶段的bootloader(isolinux.bin)会去读取配置文件isolinux.cfg并把其中的initrd、ks等参数传递给内核,内核再传递给anaconda程序,由于在安装过程中使用dhcp协议动态获取ip/netmask、gateway及dns等网络属性配置,因此在后续的程序包安装过程中主机能访问互联网上的资源(本实验中kickstart文件指明在网易镜像站点上下载安装程序包)。

更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-05/143714.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款