The NoteBook of EricKong

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

在centos中可以用kickstart进行装机自动化,也可以定制一些软件包,公司的需要的基础系统里面很多软件参数、选项、内核都经过优化,所以用kickstart装起来虽然方便但是后期调整很麻烦,所以打算换种方法,思路如下:

    把经过优化的系统整体打包,做成一个原始的tar包,由于linux是文件系统,所以只要在新硬盘上划好分区好以后,解压打好的tar系统包就可以了,然后安装grub,这样一个系统就完成了,但是本人有点懒,分区,grub都不想自己动手,所以可以写个脚本自动执行。

    1 打包系统

1tar czvfp Centos5_x86_64.tgz bin/ boot/ dev/ etc/ home/ lib/ lib64/ lost+found/ media/ mnt/ opt/ \
2--exclude=proc/* proc/ root/ sbin/ selinux/ srv/ --exclude=tmp/* tmp/ usr/ var/ --exclude=sys/* sys/

   2 制作centos livecd

     2.1 安装制作环境

1yum install livecd-tools syslinux anaconda-runtime

     2.2 编写kickstart脚本      

01lang en_US.UTF-8
02keyboard us
03timezone US/Eastern
04auth --useshadow --enablemd5
05selinux --disabled
06firewall --disabled
07 
08repo --name=a-base  --baseurl=http://mirrors.163.com/centos/5/os/$basearch/
09repo --name=a-addons   --baseurl=http://mirrors.163.com/centos/5/addons/$basearch/
10repo --name=a-extras   --baseurl=http://mirrors.163.com/centos/5/extras/$basearch/
11repo --name=a-centosplus --baseurl=http://mirrors.163.com/centos/5/centosplus/$basearch/
12repo --name=a-contrib  --baseurl=http://mirrors.163.com/centos/5/contrib/$basearch/
13repo --name=a-live    --baseurl=http://www.nanotechnologies.qc.ca/propos/linux/centos-live/$basearch/live
14 
15%packages
16bash
17kernel
18syslinux
19passwd
20policycoreutils
21perl
22chkconfig
23authconfig
24rootfiles
25comps-extras
26xkeyboard-config
27grub
28coreutils
29parted

     2.3 开始制作Livecd

1LANG=C livecd-creator --config=centos-livecd-minimal.ks --cache=/home/livecd/cache --tmpdir=/home/livecd/tmp \
2--fslabel=CentOS-minimal

  这一步完成后会在当前目录生成一个CentOS-minimal.iso文件,centos-livecd-minimal.ks是编写好的kickstart脚本,至此Livecd已经生成,接下来开始修改。

   3 定制Livecd

     3.1 安装工具

1yum install squashfs-tools

    或者使用squashfs4版本,下载源码包后,进入squashfs-tools目录,make&&make install 即可安装完成,

默认命令安装在/usr/local/bin,可以copy到/bin中。

3.2 挂载ISO镜像

1mkdir -p /home/livecd
2mount -o loop -t iso9660 CentOS-minimal.iso /home/livecd

        3.3  copy镜像

1mkdir -p /home/img
2cp -R /home/livecd/* /home/img

       3.4  解压squashfs.img 

              进入/home/img/LiveOS 目录,会看见squashfs.img文件,

1unsquashfs squashfs.img

             会产生squashfs-root目录,进入其子目录LiveOS中,会有一个ext3fs.img文件,挂载该文件

1mount -o loop,rw ext3fs.img /tmp

            在做完各种修改后,卸载该文件,重新回到/home/img/LiveOS目录,生成新的squashfs.img文件

           我的需求是:修改rc.local文件,加入一系列划分分区、格式化、挂载、解压命令后,并把前面打的tar包传入/tmp的制定目录下,这样用livecd启动时会执行rc.local中的命令,这样等livecd完全启动后,宿主机的硬盘上就会有一个我们刚才打包好的系统了。

1mksquashfs squashfs-root squashfs.img

           删除squashfs-root目录,回到上级目录,生成新的ISO

1mkisofs -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了几遍文档,糅杂在一起的。

     相关参照:

     https://projects.centos.org/trac/livecd/

posted on 2013-06-23 20:57 Eric_jiang 阅读(380) 评论(0)  编辑  收藏 所属分类: CentOS

只有注册用户登录后才能发表评论。


网站导航: