制作&&修改CentOS Livecd
在centos中可以用kickstart进行装机自动化,也可以定制一些软件包,公司的需要的基础系统里面很多软件参数、选项、内核都经过优化,所以用kickstart装起来虽然方便但是后期调整很麻烦,所以打算换种方法,思路如下:
把经过优化的系统整体打包,做成一个原始的tar包,由于linux是文件系统,所以只要在新硬盘上划好分区好以后,解压打好的tar系统包就可以了,然后安装grub,这样一个系统就完成了,但是本人有点懒,分区,grub都不想自己动手,所以可以写个脚本自动执行。
1 打包系统
1
2
|
tar
czvfp Centos5_x86_64.tgz bin/ boot/ dev/ etc/ home/ lib/ lib64/ lost+found/ media/ mnt/ opt/ \
--exclude=proc/* proc/ root/ sbin/ selinux/ srv/ --exclude=tmp/* tmp/ usr/ var/ --exclude=sys/* sys/
|
2 制作centos livecd
2.1 安装制作环境
1
|
yum
install
livecd-tools syslinux anaconda-runtime
|
2.2 编写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
|
lang en_US.UTF-8
keyboard us
timezone US
/Eastern
auth --useshadow --enablemd5
selinux --disabled
firewall --disabled
repo --name=a-base --baseurl=http:
//mirrors
.163.com
/centos/5/os/
$basearch/
repo --name=a-addons --baseurl=http:
//mirrors
.163.com
/centos/5/addons/
$basearch/
repo --name=a-extras --baseurl=http:
//mirrors
.163.com
/centos/5/extras/
$basearch/
repo --name=a-centosplus --baseurl=http:
//mirrors
.163.com
/centos/5/centosplus/
$basearch/
repo --name=a-contrib --baseurl=http:
//mirrors
.163.com
/centos/5/contrib/
$basearch/
repo --name=a-live --baseurl=http:
//www
.nanotechnologies.qc.ca
/propos/linux/centos-live/
$basearch
/live
%packages
bash
kernel
syslinux
passwd
policycoreutils
perl
chkconfig
authconfig
rootfiles
comps-extras
xkeyboard-config
grub
coreutils
parted
|
2.3 开始制作Livecd
1
2
|
LANG=C livecd-creator --config=centos-livecd-minimal.ks --cache=
/home/livecd/cache
--tmpdir=
/home/livecd/tmp
\
--fslabel=CentOS-minimal
|
这一步完成后会在当前目录生成一个CentOS-minimal.iso文件,centos-livecd-minimal.ks是编写好的kickstart脚本,至此Livecd已经生成,接下来开始修改。
3 定制Livecd
3.1 安装工具
1
|
yum
install
squashfs-tools
|
或者使用squashfs4版本,下载源码包后,进入squashfs-tools目录,make&&make install 即可安装完成,
默认命令安装在/usr/local/bin,可以copy到/bin中。
3.2 挂载ISO镜像
1
2
|
mkdir
-p
/home/livecd
mount
-o loop -t iso9660 CentOS-minimal.iso
/home/livecd
|
3.3 copy镜像
1
2
|
mkdir
-p
/home/img
cp
-R
/home/livecd/
*
/home/img
|
3.4 解压squashfs.img
进入/home/img/LiveOS 目录,会看见squashfs.img文件,
1
|
unsquashfs squashfs.img
|
会产生squashfs-root目录,进入其子目录LiveOS中,会有一个ext3fs.img文件,挂载该文件
1
|
mount
-o loop,rw ext3fs.img
/tmp
|
在做完各种修改后,卸载该文件,重新回到/home/img/LiveOS目录,生成新的squashfs.img文件
我的需求是:修改rc.local文件,加入一系列划分分区、格式化、挂载、解压命令后,并把前面打的tar包传入/tmp的制定目录下,这样用livecd启动时会执行rc.local中的命令,这样等livecd完全启动后,宿主机的硬盘上就会有一个我们刚才打包好的系统了。
1
|
mksquashfs squashfs-root squashfs.img
|
删除squashfs-root目录,回到上级目录,生成新的ISO
1
|
mkisofs
-R -b isolinux
/isolinux
.bin -c isolinux
/boot
.
cat
-o
/tmp/test
.iso -V
"CentOS-minima"
\
|
1
|
-no-emul-boot -boot-load-size 4 -boot-info-table .
|
这样经过修改的镜像文件就会生成,刻入CD中,就可以自动装机了。
注:这只是适应我们部分小的需求,也没什么创新,google了几遍文档,糅杂在一起的。
相关参照:
更多推荐
所有评论(0)