热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS6.5定制系统iso制作

一、安装软件(1)系统需要安装的软件#yuminstallanacondarepodatacreaterepomkisofssystem-config-kickstart(2)系统centos6.5.iso和需要安装的rpm包,修改的图片。二、创建定制系统1、光盘文件(1)isolinux目录存放光盘启动

一、安装软件

(1)系统需要安装的软件

#yum install anaconda repodata createrepo mkisofs system-config-kickstart

(2)系统centos6.5.iso和需要安装的rpm包,修改的图片。

二、创建定制系统

1、光盘文件

(1)isolinux 目录存放光盘启动时的安装界面信息
(2)images 目录包括了必要的启动映像文件
(3)Packages 目录存放安装软件包及信息
(4).discinfo 文件是安装价质的识别信息
(5)Repodata 目录存放rpm包依赖信息

若想重新制作光盘可以按照一下步骤(采用以前光盘的内容则可跳过一下内容)。

一、复制rpm包并生成repodata文件夹

#mount -o loop centos6.5 /mnt

#cp /mnt/Packages/*.rpm /home/taiyang/work/anaconda/createCD/Packages

#createrepo -v -g /mnt/repodata/*-comps.xml /home/taiyang/work/anaconda/createCD

二、创建启动映像

#yum install anaconda-runtime(或直接#yum install anaconda)

#/usr/lib/anaconda-runtime/buildinstall --version 1.0 --buildarch x86_64 --brand "Red Hat" --product "Red Hat" --release "Red Hat" --final --output /home/taiyang/work/anaconda/createCD/ /home/taiyang/work/anaconda/createCD

注:buildinstall制作过程,会产生很多错误和警告,暂时不清楚怎么解决,但会生成了完整的目录结构。

(buildinstall为shell脚本,可自己分析。因anaconda调整参数,该命令生成了部分没用的内容,可手动删除,同时自己也会调整参数防止生成多余的文件。)

三、生成iso文件

#mkisofs -o centos6.5Release.iso -V centos6.5Release -b isolinux/isolinux.bin -c isolinux/boot.cat  -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /home/taiyang/work/anaconda/createCD/

(#mkisofs -R -J -T -r -l -d -allow-multidot -allow-leading-dots -no-bak -o ./CentOS6.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot .其中参数的意思慢慢理解。)

四、植入md5验证码

#implantisomd5 centos6.5Release.iso

2、创建制作系统目录和复制文件

(1)建立放置制作系统的目录

#mkdir /home/source/

(2)复制除Packages(rpm包的文件夹)外的所有文件

#mount -t iso9660 -o loop centos6.5.iso /mnt(光盘使用mount /dev/sr0 /mnt)

#cd /mnt

#ls -A . | grep -v Packages | xargs -i cp -rp {} /home/source(也可以手动复制除Packages外的所有文件,但注意隐藏文件)

(或使用rsync -a --exclude=Packages /mnt/ /home/source ,rsync拷贝了隐藏文件)

#cp /root/anaconda-ks.cfg /root/install.log/home/source

使用anaconda-ks.cfg不用配置ks文件,使用install.log可以查看本机已经安装的包列表可减少复制多余的包)

#mkdir /home/source/Packages

#awk '/安装/{print $2}' /home/source/install.log | xargs -i cp /mnt/Packages/{}.rpm /home/source/Packages/

(英文系统下:安装换为Installing)

(3)定制安装控制文件anaconda-ks.cfg

ks文件由系统安装所得anaconda-ks.cfg进行修改,也可以用system-config-kickstart工具制作而得。

注意此部分内容:

[html] view plaincopy
 
  1. clearpart --all --initlabel  
  2. part /boot --fstype=ext4 --size=2000  
  3. part swap --size=5000  
  4. part / --fstype=ext4 --grow --size=200  
  5.    
  6. reboot  
  7. repo --name="CentOS6.5" --baseurl=cdrom:sr0 --cost=100   
增加安装完成后的启动脚本:
[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. #增加安装后运行脚本  
  2. %post  
  3. #boot echo 定制系统启动信息  
  4. echo "CentOSRelease 6.5" > /etc/centos-release  
  5. sed -i 's/CentOS Linux release 6.0 (Final)/CentOSRelease 6.5/g' /etc/issue  
  6. sed -i 's/CentOS Linux release 6.0 (Final)/CentOSRelease 6.5/g' /etc/issue.net  
  7. sed -i 's/localhost.localdomain/CentOSRelease/g' /etc/sysconfig/network  
  8. sed -i 's/CentOS/CentOSRelease/g' /etc/rc.d/rc.sysinit  
  9. sed -i 's/rhgb/ /g' /boot/grub/grub.conf  
  10. #close cdrom 安装完成弹出光碟  
  11. eject  
  12. #reboot 一切执行完毕后重启  
  13. reboot -f  
  14. %end  
(4)修改安装界面文本标题

        可以去掉安装过程中的CentOS字样,在安装光盘里面有两个.buildstamp文件,一个位于stage2.img中,一个位于 initrd.img中,安装光盘运行时读取的是initrd.img中的.buildstamp文件,因此解压缩initrd.img文件。

解压修改:

#cd /home/source/isolinux

#mkdir tmp(也可以在其他目录创建临时文件)

#cd tmp/

#xz -dc /home/source/isolinux/initrd.img | cpio -id

#vim .buildstamp

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. 201112091719.x86_64  
  2. centos6.5Release  
  3. 1.0  
  4. http://wiki.centos.org/  
压缩

#find . | cpio -c -o | xz -9 --format=lzma > initrd.img

有时出现如下错误:xz: Adjusted LZMA1 dictionary size from 64 MiB to 35 MiB to not exceed the memory usage limit of 398 MiB
将xz -9 改成xz -5,减小压缩强度等级。也可以忽略不管,对结果没有影响。

#cp initrd.img/home/source/isolinux/initrd.img

#rm -rf /home/source/isolinux/tmp

-----------------------------------------------------------------

注:centos6.4前的不能按上述方法解压

#file initrd.img查看时gzip压缩

解压:

#cd /home/source/isolinux

#mkdir tmp

#cp initrd.img tmp/initrd.img.gz

#cd tmp

#gunzip initrd.img.gz

#cpio -ivmd

#vim .buildstamp

压缩:

#cd /home/source/isolinux/tmp

#rm initrd.img

#find . | cpio -c -o > initrd.img

#gzip initrd.img

#mv initrd.img.gz /home/source/isolinux/initrd.img

#rm -rf /home/source/isolinux/tmp

-----------------------------------------------------------------

(5)修改安装光盘背景图片

1、修改引导显示画面

grub背景图片在/home/source/isolinux/splash.jpg,替换文件即可。

修改界面上显示文件的配置文件:

#vim /home/source/isolinux/isolinux.cfg

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. default vesamenu.c32  
  2. #prompt 1  
  3. timeout 600  
  4.   
  5. display boot.msg  
  6.   
  7. menu background splash.jpg  
  8. menu title Welcome to CentOS 6.<span style="font-family:Arial;">5span>!  
  9. menu color border 0 #ffffffff #00000000  
  10. menu color sel 7 #ffffffff #ff000000  
  11. menu color title 0 #ffffffff #00000000  
  12. menu color tabmsg 0 #ffffffff #00000000  
  13. menu color unsel 0 #ffffffff #00000000  
  14. menu color hotsel 0 #ff000000 #ffffffff  
  15. menu color hotkey 7 #ffffffff #ff000000  
  16. menu color scrollbar 0 #ffffffff #00000000  
  17.   
  18. label linux  
  19.   menu label ^Install<span style="font-family:Arial;"> span>system  
  20.   menu default  
  21.   kernel vmlinuz  
  22.   append initrd=initrd.img ks=cdrom:/anaconda-ks.cfg  
只保留默认安装,ks=cdrom:/anaconda-ks.cfg是增加上去的,实现自动化安装(不加上需要手动下一步式安装)。

2、修改安装rpm包时的背景图片

其图片在/home/source/images/install.img镜像文件中

#mount -t squashfs -o loop /home/source/images/install.img /mnt/

复制文件,等价与cp

#mdkir /tmp/install

#rsync -av /mnt /tmp/install/

修改/tmp/install/usr/share/anaconda/pixmaps/progress_first.png背景图,也可修改其他的所有相关图片

#cd /tmp

#mksquashfsinstall/  install.img -all-root -noF

#cpinstall.img /home/source/images/install.img

(6)生成新的配置文件夹repodata

       repodata文件中comps.xml 文件中包含了安装时用户所见到的与rpm相关的所有内容,它会检查Packages下的RPM包的依赖关系,安装时如果缺少依赖包,它会提示您哪个RPM 包需要哪些依赖库。同时它的角色就是相当于图形安装时选择软件包那个环节。

        comps.xml主要由三部分组成,首先是组列表,它描述了在安装过程中需要的不同的组(或组件),包括组名、组的描述和包含的RPM包;其次是组的层次结构,它将组分成不同的类,并定义了组的一个顺序,从而可以决定哪些组需要先安装;最后为一系列RPM包以及它们之间的依赖关系。

         进入/home/source/repodata目录,将0dae8d32824acd9dbdf7ed72f628152dd00b85e4bd802e6b46e4d7b78c1042a3-comps.xml改为comps.xml,*comps.xml文件名很长。

#cd /home/source/
#cp repodata/*comps.xml ./comps.xml
#rm -rf repodata
#createrepo -g comps.xml .

也有会使用命令,暂不明白什么用途,可能记录生成文件的时间以便比对:
#declare -x discinfo=`head -1 .discinfo`
#createrepo -u "media://$discinfo" -g comps.xml .

       至此,comps.xml文件和其他相关联的文件已被重新生成到repodata目录下。注意如果
新增或删除了Packages目录的RPM包,请重新生成comps.xml文件。

(7)向安装程序添加自定义软件包(无需求可省略)

 

        定制Linux发行版的一个重要步骤,是向安装程序添加自定义的软件包。

1、选择Customize now自定义包时的界面

        首先需要明白一下概念,通常来讲,一个package指一个软件包,一个group里包含了若干个package,一个category里则包含了若干个group。在使用Linux安装光盘安装系统的时候,有一个自定义软件包的步骤。在此步骤中,左侧显示的是category,右则显示的是group。它们之间对应关系记录于repodata/xxx-comps.xml文件中。

repodata/xxx-comps.xml文件的写法:

[html] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?>  
  2. var cpro_id = "u6885494";
推荐阅读
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 在Windows10系统上使用VMware创建CentOS虚拟机的详细步骤教程
    本文详细介绍了在Windows10系统上使用VMware创建CentOS虚拟机的步骤,包括准备条件、安装VMware、下载CentOS ISO文件、创建虚拟机并进行自定义配置、设置虚拟机的ISO与网络、进行安装和配置等。通过本文的指导,读者可以轻松地创建自己的CentOS虚拟机并进行相应的配置和操作。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
author-avatar
维伦忆任冠臻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有