定制属于自己的自动化安装的linux系统镜像
使用软件和平台
1、基于平台: Vmware workstation 8.0
2、基于系统镜像: rhel-server-5.8-i386-dvd.iso
3、ISO编辑软件: UltraISO
4、自定义配置文件: ks.cfg
5、需要重新编辑的配置文件: isolinux.cfg
6、其他: 针对不需要的文件包进行删减
第一步生成ks.cfg文件
我这里使用的远程连接工具是Xmanager Enterprise 4,可以支持在当前系统上打开远程主机的图形软件界面。
1、首先确认kickstart是否安装,没有安装的话使用yum进行安装
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#检查 kickstart是否安装[root@lovelace ~]# rpm -qa | grep kickstartsystem-config-kickstart-2.6.19.9-2.el5pykickstart-0.43.9-1.el5#使用yum安装 kickstart[root@lovelace ~]# yum install system-config-kickstart -yLoaded plugins: katello, securityRepository rhel-debuginfo is listed more than once in the configurationUnable to read consumer identitySetting up Install ProcessPackage system-config-kickstart-2.6.19.9-2.el5.noarch already installed and latest versionNothing to do |
2、启动Xmanager - Passive服务,然后在终端上输入命令system-config-kickstart &
如果执行上面的命令弹出错误,请在终端输入以下两条命令
3、再次进行测试,如果还不成功,请查看服务是否开启,上面两条命令执行是否成功
注:这里为了方便大家进行配置,直接在现有系统的基础上进行编辑。
4、在弹出的图形界面点击文件---->打开文件---->root目录下---->anaconda-ks.cfg文件---->确定。
5、开始我们的ks.cfg文件编辑过程(选择语言,键盘类型,时区,设置根口令,安装后是否重启引导系统,在文本模式下进行安装)
6、安装方法的选择(这里我们是对磁盘进行全新封装的,选择执行新安装,安装方法为光盘驱动器)
7、引导装载程序选项,(给内核传递参数rhgb quiet ,其他默认即可)

8、分区信息设置,这里我们新建三个分区(/分区:5G, /boot:200M, swap分区:1G)

9、网络配置(这里选择添加eth0网卡,IP为dhcp自动分配)

10、验证方式默认即可

11、防火墙配置(这里选择禁用)

12、显示配置(这里我们选择安装X界面,色彩深度调整为16,RHEL上默认安装的是gnome)

13、软件包安装选择(按需自定义选择)

14、预安装脚本(按需进行设置)

15、安装后脚本(按需进行设置)

14、保存配置好的文件(可自定义存放路径,这里我们存放到/home目录下)

查看生成的ks.cfg配置文件
|
1
2
3
4
|
#验证ks.cfg文件是否存在[root@lovelace home]# pwd;ll ks.cfg/home-rw-r--r-- 1 root root 1649 05-27 04:20 ks.cfg |
查看ks.cfg文件 具体参数请查看kickstart文档
|
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@lovelace home]# cat ks.cfg#platform=x86, AMD64, 或 Intel EM64T# System authorization informationauth --useshadow --enablemd5# System bootloader configurationbootloader --append="rhgb quiet" --location=mbr --driveorder=sda# Partition clearing informationclearpart --none# Use text mode installtext# Firewall configurationfirewall --disabled# Run the Setup Agent on first bootfirstboot --disablekey --skip# System keyboardkeyboard us# System languagelang en_US# Installation logging levellogging --level=info# Use CDROM installation mediacdrom# Network informationnetwork --bootproto=dhcp --device=eth0 --onboot=on# Reboot after installationreboot#Root passwordrootpw --iscrypted $1$/3RmiuX/$ZqpoSJEqBLYu93wL6a60R1# SELinux configurationselinux --enforcing# System timezonetimezone --isUtc Asia/Shanghai# Install OS instead of upgradeinstall# X Window System configuration informationxconfig --defaultdesktop=GNOME --depth=8 --resolution=640x480# Disk partitioning informationpart / --bytes-per-inode=4096 --fstype="ext3" --size=6000part /boot --bytes-per-inode=4096 --fstype="ext3" --size=200part swap --bytes-per-inode=4096 --fstype="swap" --size=1024%packages@base@development-libs@core@development-tools@sound-and-video@x-software-development@gnome-desktop@base-x@printing@gnome-software-development@admin-tools@legacy-software-support@editors@text-internet@dialup@graphics@office@java@graphical-internet@gameskexec-toolsiscsi-initiator-utilsfipscheckdevice-mapper-multipathsgpiopython-dmidecodeimakeemacslibsane-hpaiomesa-libGLU-develxorg-x11-utilsxorg-x11-server-Xnestxorg-x11-server-Xvfb |
第二步:修改isolinux.cfg配置文件(有多种方向进行选择,这里不再演示)
修改后内容为(Note:网上好多关于这个配置文件各不相同,只要能够实验成功就行)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
[root@lovelace home]# cat isolinux.cfgdefault ksprompt 1timeout 60display boot.msgF1 boot.msgF2 options.msgF3 general.msgF4 param.msgF5 rescue.msglabel linuxkernel vmlinuzappend initrd=initrd.imglabel textkernel vmlinuzappend initrd=initrd.img textlabel kskernel vmlinuzappend ks=cdrom:/ks.cfg initrd=initrd.imglabel locallocalboot 1label memtest86kernel memtestappend - |
第三步:重新封装iso镜像文件(win下操作)
1、打开原版iso镜像文件(删除自动的isolinux.cfg文件,然后把我们重新编辑过的文件添加进去)

2、添加我们制作的ks.cfg文件到光盘根目录下,然后进行iso文件生成即可

第四步:测试安装(这里截两张图验证下)


后记:其实做这个也没有多大意义,因为生产环境中都是批量部署的,这里希望大家能够了解下关于ks.cfg文件的编辑方法,如果你很熟悉的话,也可以脱离图形编辑,直接命令行进行设置…..
存在的bug:
1、安装后swap分区没有被自动挂载
2、没有对系统包和组件进行裁剪,只是添加了ks.cfg文件和对isolinux.cfg文件进行了添加和修改
3、进入系统后没有主机名为.不知道是啥情况
4、只在虚拟机上进行验证
定制属于自己的自动化安装的linux系统镜像的更多相关文章
- 安装Ubuntu Linux系统时硬盘分区最合理的方法
无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在合 ...
- 在本机使用虚拟机安装一个linux系统,并搭建ftp服务器
一.Linux基础使用:linux服务器环境搭建(FTP服务器), 在本机使用虚拟机安装一个linux系统,并搭建ftp服务器,要求能使用ftp服务将本机文件到保存linux虚拟机上 资料: VMwa ...
- Cobbler全自动批量安装部署Linux系统
说明: Cobbler服务器系统:CentOS 5.10 64位 IP地址:192.168.21.128 需要安装部署的Linux系统: eth0(第一块网卡,用于外网)IP地址段:192.168.2 ...
- 在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。
原因:在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件. 解决办法: .随便写一条iptables命令配 ...
- Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装(转载)(1)
Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装 一.引言 设计模式写完了,相当于重新学了一遍,每次学习都会有不同的感受,对设计模式的理解又加深了,理解的更加透彻了.还差一篇 ...
- 制作U盘启动安装CentOS Linux系统
制作U盘启动安装CentOS Linux系统 (特为老男孩教育&&51CTO学院在线三期同学而发) 方法一:使用UltraISO,将u盘做成启动盘 文件-->打开-->选择 ...
- 在 VirtualBox 虚拟机中安装 Arch Linux 系统指南
How to install Arch Linux on VirtualBox 在 VirtualBox 虚拟机中安装 Arch Linux 系统指南 本文导航 1.Arch Linux 软件仓库2. ...
- Linux-导入已安装的Linux系统
之前在安装过一个Linux系统,由于重装电脑需要将之前安装的系统重新移动到VMWare中,让Linux系统能够重新运行起来,这样也省去了每次重新安装系统的麻烦. 废话不多说,咱们直接看是如何做? 1) ...
- 【docker linux】linux系统镜像转化为docker镜像
概述 使用docker安装linux的同学都知道,你在docker提供的仓库安装linux系统,你就会体验到最精简的.最纯净的linux系统,当然,他会精简到你连ifconfig命令都需要自己配置,恰 ...
随机推荐
- java.util.Hashtable源码分析
Hashtable实现一个键值映射的表.任何非null的object可以用作key和value. 为了能存取对象,放在表里的对象必须实现hashCode和equals方法. 一个Hashtable有两 ...
- 第32条:用EnumSet代替位域
如果一个枚举类型的元素主要用在集合中,一般使用int枚举模式,将2的不同倍数赋予每个常量: public class Text { public static final int STYLE_BOLD ...
- 使用thinkPHP实现数据更新一例【原创】
在上一篇文章中我们实现了数据的删除和批量删除,这一篇文章我们将实现数据的更新. 首先依然是预期效果图: 点击修改后进入modi.html页面,然后进行修改,如此处修改了真实姓名这一属性: 点击保存: ...
- 使用XmlPullParser对xml进行读取
XML文件是一种标记性语言;在开发中经常在接口交互时被用作报文传输或者把自定义的类序列化为XML的形式存储到数据库.正因为XML文件这么常用,使用JAVA对XML文件进行读写操作是每一个开发人员必须掌 ...
- 【HeadFirst设计模式】8.模板方法模式
模板方法 定义: 在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使用得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. 策略模式: 定义一个算法家族,并让这些算法可以互 ...
- SSH+Ajax实现用户名重复检查(二)
1.另外一种更常用的js表达方式: var user = { inintEvent: function(){ $("input[name='user.User_LogName']" ...
- grunt学习
有些时候,项目中的静态资源,比如图片占用的文件有点大,影响加载的速度,所以会选择grunt对其进行压缩打包.对于grunt其他的用法,还在继续学习中,先记录下关于grunt的一些学习. grunt是一 ...
- Photoshop快捷键
ctrl+del :铺后景色alt+del:铺前景色ctrl+d:取消选框ctrl+t:拉伸(挡住文字)TAB:显示(隐藏)工具栏ctrl+alt+i:反选ctrl+r:辅佐线ctrl+j:复制并添加 ...
- ASP.NET MVC3实现无刷新验证码
在MVC中进行留言,评论等功能时,不可避免会用到表单提交时的验证码问题,有时,我们的作法是,当表单被提交后,在controller里去判断验证码的正确与否,但我认为这种用户体验是很差的,今天正好有后时 ...
- 如何编写规范,灵活,稳定,高质量的HTML和css代码
黄金定律 永远遵循同一套编码规范,不管有多少人共同参与同一项目,一定要确保每一行代码都像是同一个人编写的. 语法: 1.用两个空格来代替制表符(tab);2.嵌套元素应当缩进一次(两个空格); 3.对 ...




