CentOS6.5定制系统iso制作

前端之家收集整理的这篇文章主要介绍了CentOS6.5定制系统iso制作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、安装软件

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

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

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

二、创建定制系统

1、仅修改RPM包定制系统

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

若想仅修改RPM包数来制作光盘可以按照以下步骤(需修改更多内容则可跳过该节)。

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

#mount -o loop centos6.5.iso /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)(因anaconda版本不同,buildinstall参数应根据脚本调整,旧的版本没有--buildarch参数,具体查看usage函数

#/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调整参数,该命令生成了部分没用的内容,可手动删除,同时自己也会调整参数防止生成多余的文件。)
删除多余文件:#rm -f awk grub-0.97-93.el6.x86_64.rpm
三、生成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包的文件夹)外的所有文件(一般会通过buildinstall建立目录树)

#mount -t iso9660 -o loopcentos6.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工具制作而得。

注意此部分内容(无zerombr会弹出Storage Device Warning对话框):

[html] view plain copy
  1. #Kickstartfileautomaticallygeneratedbyanaconda.
  2. #version=DEVEL
  3. install
  4. cdrom
  5. langzh_CN.UTF-8
  6. keyboardus
  7. network--onbootno--deviceeth0--bootprotodhcp--noipv6
  8. rootpw--iscrypted$6$PwksHHjSHb7YBQGw$nxkaZNVEl8vgBcleuvgVyFzqhBIn3.3w7w8/4321mLGqV4yPUge3ExClHzOU/mRqZKVcCjWkY1zQf8tJ.22l9/
  9. firewall--service=ssh
  10. authconfig--enableshadow--passalgo=sha512
  11. graphical
  12. firstboot--disable
  13. selinux--enforcing
  14. timezone--utcAsia/Shanghai
  15. bootloader--location=mbr--driveorder=sda--append="crashkernel=autorhgbquiet"
  16. zerombr
  17. clearpart--all--initlabel
  18. part/boot--fstype=ext4--size=200
  19. partswap--size=1000
  20. part/--fstype=ext4--grow--size=200
  21. #repo--name="CentOS6.5"--baseurl=cdrom:sr0--cost=100
创建PV-VG-LV(可选,使用上述的分区方式即可):
  • clearpart--all--drives=sda
  • part/boot--fstype=ext4--size=500
  • partpv.008002--grow--size=1
  • volgroupVolGroup--pesize=4096pv.008002
  • logvol/--fstype=ext4--name=lv_root--vgname=VolGroup--grow--size=1024--maxsize=51200
  • logvolswap--name=lv_swap--vgname=VolGroup--grow--size=512--maxsize=1024
  • 增加安装完成后的启动脚本(在%packages前即可):
  • #增加安装后运行脚本
  • %post
  • #bootecho定制系统启动信息
  • echo"CentOSRelease6.5">/etc/centos-release
  • sed-i's/CentOSLinuxrelease6.0(Final)/CentOSRelease6.5/g'/etc/issue
  • sed-i's/CentOSLinuxrelease6.0(Final)/CentOSRelease6.5/g'/etc/issue.net
  • sed-i's/localhost.localdomain/CentOSRelease/g'/etc/sysconfig/network
  • sed-i's/CentOS/CentOSRelease/g'/etc/rc.d/rc.sysinit
  • sed-i's/rhgb//g'/boot/grub/grub.conf
  • #closecdrom安装完成弹出光碟
  • eject
  • #reboot一切执行完毕后重启
  • reboot-f
  • %end
  • 一个完整的参考例子:
  • #platform=x86,AMD64,或IntelEM64T
  • #version=DEVEL
  • #Firewallconfiguration关闭防火墙
  • firewall--disabled
  • #InstallOSinsteadofupgrade覆盖安装
  • install
  • #UseCDROMinstallationmedia从光驱安装
  • cdrom
  • repo--name="CentOS"--baseurl=file:///mnt/source--cost=100
  • #Rootpassword
  • rootpw--iscrypted$1$Ro9DjGl8$6bU7DsgPlc9YSAjs1Jj4s1
  • #Systemauthorizationinformation
  • auth--useshadow--passalgo=sha512--enablefingerprint
  • #Usegraphicalmodeinstall//图形化安装
  • graphical
  • firstboot--disable
  • #Systemkeyboard//美式键盘
  • keyboardus
  • #Systemlanguage//美式英语
  • langen_US
  • #SELinuxconfiguration//关闭SELinux
  • selinux--disabled
  • #Installationlogginglevel
  • logging--level=info
  • #Rebootafterinstallation//安装完成后重启
  • reboot
  • #Systemtimezone//时区
  • timezoneAmerica/New_York
  • #Networkinformation设置静态ip
  • network--bootproto=static--device=eth0--gateway=192.168.1.1--ip=192.168.1.2--netmask=255.255.255.0--onboot=on
  • #Systembootloaderconfiguration
  • bootloader--location=mbr--append="crashkernel=autorhgbquiet"
  • #CleartheMasterBootRecord清除mbr
  • zerombr
  • #Partitionclearinginformation//删除所有分区初始化卷标
  • clearpart--all--initlabel
  • #Diskpartitioninginformation系统分区
  • part/boot--asprimary--fstype="ext4"--ondisk=sda--size=100
  • partswap--asprimary--fstype="swap"--ondisk=sda--size=2048
  • part/--asprimary--fstype="ext4"--grow--ondisk=sda--size=1
  • part/var--fstype="ext4"--ondisk=sda--size=20480
  • #安装后运行脚本
  • %post
  • #RecData格式化硬盘并挂载到/RecData目录下
  • disk_num=`parted-l|grep"Disk/dev/"|wc-l`
  • disk1=`parted-l|awk'/Disk\/dev/{print$2}'|sed's/://g'|sed-n'1p'`
  • disk2=`parted-l|awk'/Disk\/dev/{print$2}'|sed's/://g'|sed-n'2p'`
  • sda_num=`parted$disk1-sprint|awk'/^/{print$1}'|wc-l`
  • sdb_num=`parted$disk2-sprint|awk'/^/{print$1}'|wc-l`
  • if["$disk_num"-gt1];then
  • if["$sda_num"-eq0];then
  • parted$disk1-smklabelgpt
  • parted$disk1-s--mkpartprimary0-1
  • mkfs.ext4${disk1}1
  • sda_num=1
  • fi
  • if["$sdb_num"-eq0];then
  • parted$disk2-smklabelgpt
  • parted$disk2-s--mkpartprimary0-1
  • mkfs.ext4${disk2}1
  • sdb_num=1
  • fi
  • if["$sda_num"-eq1];then
  • uuid=`blkid${disk1}1|awk'/dev/{print$2}'|sed's/"//g'`
  • if[-z"$uuid"];then
  • uuid=${disk1}1
  • fsck.ext4-y${disk1}1&
  • sleep60
  • killall-9fsck.ext4
  • fi
  • mkdir-p/RecData
  • mount${disk1}1/RecData
  • mkdir-p/RecData/{Rec,RecN}
  • echo"$uuid/RecDataext4defaults00">>/etc/fstab
  • fi
  • if["$sdb_num"-eq1];then
  • uuid=`blkid${disk2}1|awk'/dev/{print$2}'|sed's/"//g'`
  • if[-z"$uuid"];then
  • uuid=${disk2}1
  • fsck.ext4-y${disk2}1&
  • sleep60
  • killall-9fsck.ext4
  • fi
  • mkdir-p/RecData
  • mount${disk2}1/RecData
  • mkdir-p/RecData/{Rec,RecN}
  • echo"$uuid/RecDataext4defaults00">/etc/fstab
  • fi
  • fi
  • #mountcdrom挂载光驱
  • mkdir-p/media/cdrom
  • mount-oloop/dev/cdrom/media/cdrom
  • #installmediacenter从光碟拷贝媒体中心安装包并进行安装
  • cp-rf/media/cdrom/MediaCentOS/MediaCenterInstall*.tar.gz/opt/.
  • cd/opt
  • chmod755-R*
  • tarxfvMediaCenterInstall*.tar.gz
  • cd/opt/MediaCenterInstall*/MediaCenter
  • shinstall.sh
  • cd/opt/MediaCenterInstall*/LiveNode
  • shinstall.sh
  • rm-rf/opt/MediaCenterInstall*
  • #bootecho定制系统启动信息(将CentOS字样替换成MediaCentOS)
  • echo"MediaCentOSLinuxrelease6.0(BasedonCentOS6.0)">/etc/centos-release
  • sed-i's/CentOSLinuxrelease6.0(Final)/MediaCentOSLinuxrelease6.0(BasedonCentOS6.0)/g'/etc/issue
  • sed-i's/CentOSLinuxrelease6.0(Final)/MediaCentOSLinuxrelease6.0(BasedonCentOS6.0)/g'/etc/issue.net
  • sed-i's/localhost.localdomain/MediaCentOS/g'/etc/sysconfig/network
  • sed-i's/CentOS/MediaCentOS/g'/etc/rc.d/rc.sysinit
  • sed-i's/rhgb//g'/boot/grub/grub.conf
  • #closecdrom安装完成弹出光碟
  • eject
  • #reboot一切执行完毕后重启
  • reboot-f
  • %end
  • #安装包信息
  • %packages
  • @base
  • @console-internet
  • @core
  • @debugging
  • @directory-client
  • @hardware-monitoring
  • @java-platform
  • @large-systems
  • @network-file-system-client
  • @performance
  • @perl-runtime
  • @server-platform
  • @server-policy
  • certmonger
  • krb5-workstation
  • nscd
  • nss-pam-ldapd
  • oddjob
  • pam_krb5
  • pam_ldap
  • pax
  • perl-DBD-sqlite
  • sgpio
  • (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

  • 201112091719.x86_64
  • centos6.5Release
  • 1.0
  • 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,减小压缩强度等级。也可以忽略不管,对结果没有影响。

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

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

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

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

    #fileinitrd.img查看时gzip压缩

    解压:

    #cd/home/source/isolinux

    #mkdir tmp

    #cpinitrd.imgtmp/initrd.img.gz

    #cd tmp

    #gunzipinitrd.img.gz

    #cpio -ivmd < initrd.img

    #vim .buildstamp

    压缩:

    #cd/home/source/isolinux/tmp

    #rminitrd.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

  • defaultvesamenu.c32
  • #prompt1
  • timeout600
  • displayboot.msg
  • menubackgroundsplash.jpg
  • menutitleWelcometoCentOS6.<spanstyle="font-family:Arial;">5</span>!
  • menucolorborder0#ffffffff#00000000
  • menucolorsel7#ffffffff#ff000000
  • menucolortitle0#ffffffff#00000000
  • menucolortabmsg0#ffffffff#00000000
  • menucolorunsel0#ffffffff#00000000
  • menucolorhotsel0#ff000000#ffffffff
  • menucolorhotkey7#ffffffff#ff000000
  • menucolorscrollbar0#ffffffff#00000000
  • labellinux
  • menulabel^Install>>system
  • menudefault
  • kernelvmlinuz
  • appendinitrd=initrd.imgks=cdrom:/anaconda-ks.cfg
  • 只保留默认安装,ks=cdrom:/anaconda-ks.cfg是增加上去的,实现自动化安装(不加上需要手动下一步式安装)。

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

    图片在/home/source/images/install.img镜像文件中(不能mount后直接修改,是只读的)

    #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/
    #cprepodata/*comps.xml./comps.xml
    #rm -rfrepodata
    #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)向安装程序添加自定义软件包(无需求可省略)

    repodata/xxx-comps.xml文件的写法:
  • <?xmlversion='1.0'encoding='UTF-8'?>
  • <!DOCTYPEcompsPUBLIC"-//CentOS//DTDCompsinfo//EN""comps.dtd">
  • comps>
  • group id>组1的ID,非数字name>组1的名字description>组1的描述default>是否预安装,true或者falseuservisible>是否可见,true或者falselangonly>zh>#仅在某个语系的安装界面中显示,可选项
  • packagelistpackagereqrequires="依赖包"type="conditional">软件包1packagereqpackagereqtype="default">软件包2>软件包3>组2的ID,非数字>组2的名字>组2的描述 ……
  • category>分类1的名字,非数字>显示在左侧列表里>显示在下面的描述栏里grouplistgroupid>组1的ID>组2的ID>组3的ID>分类2的名字,非数字>组4的ID>组5的ID>组6的ID>
  • 其中一个package指一个软件包,一个group里包含了若干个package,一个category里则包含了若干个group。在使用Linux安装光盘安装系统的时候,有一个自定义软件包的步骤。在此步骤中,左侧显示的是category,右则显示的是group。
    向CentOS 6.4的安装光盘中添加一个category及group:
  • >inspur-security-group>InspurSecurityGroup>SomesecuritypackagesprovidedbyInspurcompany.>true>httpd>MysqL>inspur-optimization-tools>InspurOptimizationTools>SomeoptimizationpackagesprovidedbyInspurcompany.>PHP>PHP-MysqL
  • 在最后一行的>之前,添加以下内容
  • >inspur-extra>InspurExtra>InspurextraPackages添加完成后需要重新生成repodata文件夹:
  • [root@centos]#declare-xdiscinfo=`head-1.discinfo`
  • [root@centos]#createrepo-u"media://$discinfo"-gcomps.xml./
  • [root@centos]#rmcomps.xml
  • 定制Linux发行版的一个重要步骤,是向安装程序添加自定义的软件包


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

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

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

    >base>Basenamexml:lang='en_GB'namexml:lang='zh_CN'>基本>ThebasicinstallationofCentOSLinux.descriptionxml:lang='zh_CN'>红帽企业版Linux基本安装。descriptionxml:lang='zh_TW'>CentOSLinux的基本安裝。>zippackagereqtype="mandatory">traceroutepackagereqtype="optional">zsh>...>
  • ...
  • >development>Development>开发namexml:lang='zh_TW'>程式開發>Developmenttoolsandlibraries.>开发工具和程序库。>開發工具與函式庫。>additional-devel>desktop-platform-devel>eclipse>server-platform-devel ...
  • >
  • 向CentOS 6.4的安装光盘中添加一个自定义的category及group:

    #cd /home/source/
    #cprepodata/*comps.xml./comps.xml

    #vimcomps.xml

    增加inspur-security-group和inspur-optimization-tools组group,其下有默认安装的软件包。

    >自定义>SomesecuritypackagesprovidedbyInspurcompany>自定义安装1>自定义安装2增加inspur-extra类别category,显示在安装左侧

    >自定义开发>自定义开发工具和程序库>

    然后重新生成comps.xml文件

    #declare -x discinfo=`head -1 .discinfo`

    #cd /home/aoyang/source

    #createrepo -u "media://$discinfo" -g comps.xml ./

    (编辑了comps.xml,要重新生成新的,因为comps.xml的sha值会改变,这样就会导致跟repomd.xml中所记录的不同,安装的时候会报错An error occurred umounting the CD. Please make sure you’are not accessing /mnt/source from the shell on tty2 an the click OK retry)

    2、修改系统默认选项及其相应选项的默认包

    系统安装的两个阶段:
    第一阶段:加载isolinux目录下的内核映像vmlinuz和初始RAM磁盘initrd.img,建立安装环境。initrd.img中的/sbin/init程序调用/sbin/loader程序,loader加载kickstart文件,最后运行install.img中的/usr/bin/anaconda主Python程序,进入第二阶段。
    第二阶段:anaconda程序加载各python和bash模块,执行各个安装步骤。
    文件调用顺序为isolinux/vmlinuz—>isolinux/initrd.img—>/init—>/sbin/loader—>imagaes/install.img—>/usr/bin/anaconda。

    Anaconda是RedHat、CentOS、Fedora等linux的安装管理程序,使用Python编写。可以提供文本、图形等安装管理方式,并支持Kickstart等脚本提供自动安装的功能

    Anaconda程序存在于光盘的images/install.img镜像中,因此修改上面的安装图形化界面需要解压install.img文件

    usr/bin/anaconda 安装程序的主执行文件
    usr/lib/anaconda/iw/ 图形安装模式的模块
    usr/lib/anaconda/textw/ 文本安装模式的模块。
    usr/share/anaconda/pixmaps/ 图形安装过程的图片
    usr/share/anaconda/ui/ 安装过程中显示文字
    usr/lib/anaconda/dispatch.py 来控制整个安装的流程,当一个Next或Back按钮被单击时的跳转
    usr/lib/anaconda/vnc.py 用于控制对VNC进行设置(当在安装过程中请求了VNC时)

    进入解压的install.img目录修改:#vim usr/lib/anaconda/dispatch.py

  • ……
  • installSteps=[
  • ("welcome",),
  • ("betanag",betaNagScreen,
  • ("language",248)"> ("keyboard",
  • ("regkey",regKeyScreen,248)"> ("findrootparts",findRootParts,
  • ("findinstall",248)"> ("partitionobjinit",partitionObjectsInitialize,
  • ("parttype",248)"> ("autopartitionexecute",doAutoPartition,
  • ("partition",248)"> ("upgrademount",upgradeMountFilesystems,
  • ("upgradecontinue",queryUpgradeContinue,248)"> ("upgradeswapsuggestion",upgradeSwapSuggestion,
  • ("addswap",248)"> ("partitiondone",partitioningComplete,
  • ("upgrademigfind",upgradeMigrateFind,248)"> ("upgrademigratefs",
  • ("upgbootloader",248)"> ("bootloadersetup",bootloaderSetupChoices,
  • ("bootloader",248)"> ("bootloaderadvanced",
  • ("reipl",doReIPL,248)"> ("networkdevicecheck",networkDeviceCheck,
  • ("network",248)"> ("timezone",
  • ("accounts",248)"> ("reposetup",doRepoSetup,
  • ("basepkgsel",doBasePackageSelect,248)"> ("tasksel",
  • ("group-selection",248)"> ("postselection",doPostSelection,
  • ("confirminstall",248)"> ("confirmupgrade",
  • ("install",248)"> ("enablefilesystems",turnOnFilesystems,
  • ("migratefilesystems",doMigrateFilesystems,248)"> ("setuptime",setupTimezone,
  • ("preinstallconfig",doPreInstall,248)"> ("installpackages",doInstall,
  • ("postinstallconfig",doPostInstall,248)"> ("writeconfig",writeConfiguration,
  • ("firstboot",firstbootConfiguration,248)"> ("instbootloader",writeBootloader,
  • ("writexconfig",writeXConfiguration,248)"> ("writeksconfig",writeKSConfiguration,
  • ("writeregkey",writeRegKey,248)"> ("setfilecon",setFileCons,
  • ("copylogs",copyAnacondaLogs,248)"> ("methodcomplete",doMethodComplete,
  • ("dopostaction",doPostAction,248)"> ("complete",
  • ]
  • ……
  • (8)制作ISO

    (可以先删除所有TRANS.TBL文件,也可以不删除#ls -ld `find .` | grep "TRANS.TBL" | awk '{print $9}' |xargs -i rm -f {}

    或#find . -name TRANS.TBL -exec rm -f {} ";")

    #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/source

    #/usr/bin/implantisomd5 centos6.5Release.iso

    (将md5值嵌入ISO中,防止复制过程中数据损坏;效验checkisomd5centos6.5Release.iso。)

    卷表为:centos6.5Release,开机映像文件:isolinux/isolinux.bin,开机文件名称:/isolinux/boot.cat。

    (注:不加长参数使用iso时会出现:boot Failed could not read from cdrom)

    可能产生的错误

    1、执行mkisofs命令时,提示:boot image ‘./isolinux/isolinux.bin’ has not an allowable size。
    解决办法:因为默认用的是软驱,加入: -hard-disk-boot 或者 -no-emul-boot 即可。

    2、制作以后的Linux镜像在引导的时候提示:ISOLINUX 3.86 2010-04-01 ETCDisolinux: Image checksum error。
    解决办法:在执行mkisofs命令时,加入 -boot-info-table 参数。

    三、参考mkisofs参数:

    http://linux.about.com/library/cmd/blcmdl8_mkisofs.htm 重新创建光盘:http://vega.sra-tohoku.co.jp/~kabe/vsd/c5-i586/dvd.html

    制作iso和dvd脚本:http://scientificlinux.mirror.ac.za/59/x86_64/build/scripts/buildisoimages/archives/make-dvd.sh

    原文链接:https://www.f2er.com/centos/376260.html

    猜你在找的CentOS相关文章