因为工作中需要经常安装系统并且会有一些定制的系统包和软件。定制ISO可以大大减轻运维的负担。本文以Centos 6.5制作为例

一、系统安装包说明

目录树结构

|-- .discinfo

|-- .treeinfo

|-- CentOS

|-- base

|-- images

|-- isolinux

|-- ks.cfg

|-- repodata

.discinfo 文件是安装价质的识别信息

.treeinfo 文件是系统版本,创建时间及文件目录树结构信息

CentOS目录存放安装软件包及信息(Centos 6版本的名称是Packages)

base 目录存放定制脚本及包信息

images 目录包括了必要的启动映像文件

isolinux 目录存放光盘启动时的安装界面信息

ks.cfg 文件是无人值守自动化安装配置文件

二、挂载光盘

1、先到官网下载所需的ISO版本。点击这里下载

2、安装制作发行版的工具$ yum -y install anaconda repodata createrepo mkisofs rsync

3、挂载光盘,同步文件$ mkdir /mnt/cdrom

$ mount -o loop CentOS-6.5-x86_64-bin-DVD1.iso /mnt/cdrom/ ##挂载iso到/mnt/cdrom文件下

$ /usr/bin/rsync -a --exclude=Packages/ --exclude=repodata/ /mnt/cdrom/ /ISO/ ##同步/mnt/cdrom/下的文件到ISO/路径下,除了Packages和repodata文件夹

$ mkdir -p /ISO/{Packages,repodata} ##在ISO/文件夹下新建Packages和repodata文件夹

4、使用脚本拷贝相关软件包到/ISO/Packages目录下

PS:脚本中的install.log文件可以从/root目录下获取,目的是可以删除不必要的rpm包#!/bin/bash

cd /root

awk '/Installing/{print $2}' install.log | sed 's/^*://g' >package.txt

DVD='/mnt/cdrom/Packages'

NEW_DVD='/ISO/Packages'

while read LINE

do

cp ${DVD}/${LINE}*.rpm /${NEW_DVD} || echo "$LINE don't cp......."

done < package.txt

rm -f package.txt

三、定制安装脚本ks.cfg文件

下载地址:ks.cfg

ks.cfg根据需求不同,配置也不一样。本ks文件只是做了简单的磁盘分区和定制一些rpm安装

四、修改isolinux.cfg文件

# vim isolinux/isolinux.cfglabel linux

menu label ^Install or upgrade an existing system

menu default

kernel vmlinuz

append ks=cdrom:/ks.cfg initrd=initrd.img ##修改成定制ks.cfg所在目录

五、生成comps.xml文件

1、进入/mnt/cdrom/repodata 目录,将“*-x86_64-comps.xml”文件拷贝到/ISO/repodata路径下,并重命名成comps.xml。由于centos6.5下的comps.xml文件名很长,这里“*”为省略符,实际操作时输入完整文件名。$ cp /mnt/cdrom/repodata/*-x86_64.xml  /ISO/repodata/comps.xml

2、切换到ISO/路径下,生成comps.xml文件$ createrepo -g repodata/comps.xml ./

PS:如果有新增或删除了Packages目录的RPM包,请重新生成comps.xml文件

六、生成ISO文件

到这步实际定制配置系统的工作已经完成了。下面就是生成一个ISO镜像文件,便于刻录到光盘中进行安装。$ mkisofs -o CentOS-6.5_x86_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /ISO/

PS:/ISO/目录下产生的CentOS-6.5_x86_64.iso就是生成的ISO文件,路径和ISO名称都可以自定义。

七、生成ISO文件MD5值$ /usr/bin/implantisomd5 /ISO/CentOS-6.5_x86_64.iso

Q&A

1、安装提示找不到disc

原因:是因为iso目录内缺少隐藏文件.discinfo。可能是因为copy的时候没有把隐藏文件也一起copy走

解决办法:找到原有ISO的.discinfo文件,copy过去,重新生成ISO即可

制作linux安装镜像文件,制作CentOS 6.5一键自安装ISO镜像光盘 | 聂扬帆博客相关推荐

  1. Linux网卡固件,CentOS下X710网卡升级驱动和固件脚本 | 聂扬帆博客

    对于CentOS7.1和7.5版本,安装X710网卡的驱动和固件版本太低,使用会有问题.这边整理了一份脚本自动检测安装,脚本会判断是否是DELL的几款机型,因为DELL机型的驱动和固件不能使用inte ...

  2. ubuntu服务器登桌面,Ubuntu Server安装桌面环境实现图形化访问 | 聂扬帆博客

    Ubuntu Server如果想要使用图形界面常用的有3种桌面环境(Ubunut-desktop/Kubunut-desktop/ Xubuntu-desktop),登陆管理器也有对应的3种(gdm/ ...

  3. linux下mongdb绑定ip,Linux下MongoDB安装及副本集配置 | 聂扬帆博客

    最近开始接触了MongoDB的安装配置,易部署.易使用,存储数据非常方便是它的特点. 0x00  副本集原理 MongDB副本集故障转移功能得益于它的选举机制.选举机制采用了Bully算法,可以很方便 ...

  4. linux整盘封装生成iso,一键自安装ISO封装打包脚本 | 聂扬帆博客

    对于经常打包ISO的来说,每次都要运行那几行命令很没效率.于是就整理了一个自动封装打包ISO的脚本.#!/bin/sh workpath="/CentOS/7" pack_dir= ...

  5. linux+parted+4k对齐,Centos 磁盘4K对齐脚本 | 聂扬帆博客

    4K对齐对磁盘性能有什么影响这边不单独讲解,有权威网站已经给出测试结果.感兴趣的可以去看->传送门.#!/bin/bash # Format all FOUND datadisks. decla ...

  6. linux mode4的双网卡绑定,Linux实现双网卡绑定自动化脚本 | 聂扬帆博客

    在上一篇写了双网卡绑定和卸载:Linux实现双网卡绑定和卸载 其实认真观察上面的步骤,都是固定的.于是我们就可以写个脚本实现自动化配置#!/bin/bash if [ $# -lt 6 ];then ...

  7. linux软raid 修复,Linux下软RAID维护 | 聂扬帆博客

    上一篇文章配置软RAID中配置好Raid之后,还需要进行日常的维护操作,比如其中一块物理硬盘损坏,我们需要进行更换故障磁盘的操作,下面我们将模拟raid1中磁盘损坏来讲解软RAID的维护操作. 一.硬 ...

  8. 最小镜像文件制作【树莓派镜像】,简单有效,已经制作多次。使用Linux系统,只有Win系统的不适合。及再次烧录后启动可能出现的问题解决办法。

    目录 一.前言 二.平台选择 1.Win系统:优缺点 2.Linux系统:优缺点 三.制作(只要两步[加上安装gparted,算三步]) 1.安装gparted 2.使用gparted (1)运行gp ...

  9. 使用UOS镜像文件制作系统安装U盘,并进入livecd模式

    第一步:下载镜像并制作启动盘 1 所需工具 1个容量>8GB的U盘(最好16GB以上),制作过程将格式化该U盘,请务必提前备份. 镜像文件,单击官网链接下载到电脑中. 2 UOS操作系统 获得镜 ...

最新文章

  1. SQL For Xml
  2. 成功的产品 = 做得好 + 卖得好
  3. Webpack 源码学习系列(一)
  4. ASP.NET MVC随想录——漫谈OWIN
  5. 刷新SqlServer所有视图【存储过程】
  6. go语言和java比_闲话Python, Go, Java
  7. 第 16 章 模板方法模式
  8. struts2中的值栈对象ValueStack
  9. 作为JavaScript的“超集”,感受一下TypeScript 的那些黑魔法
  10. 关于Spring Cloud Eureka
  11. wpf 聊天软件 wpf 聊天
  12. 冰河竟然被腾讯邀请去做技术分享了,这是要起飞的节奏吗?
  13. DirectX11 计时和动画
  14. 【架构】1366- 如何画出一张优秀的架构图
  15. 2021-03-22
  16. 任务调度 的常用的基本方式
  17. duet连win10_duet display windows
  18. 解决:Hbuilder工具点击发行打包,一直报尚未完成社区身份验证,请点击链接xxxxx,项目xxx发布H5失败的错误。
  19. 最近摸索ros以及orbslam2的一些错误
  20. Mysql5.5Mysql5.6Mysql5.7区别

热门文章

  1. Nginx-常见服务器的对比
  2. HandlerAdapters
  3. ClassPathBeanDefinitionScanner 扫描给定的包及其子包
  4. 基于Xml 的IOC 容器-获得配置路径
  5. RocketMQ入门
  6. 缓存-分布式锁-分布式锁原理与使用
  7. 新版本springboot-整合多数据源拆分思路
  8. goland设置goroot_go环境搭建-goland使用、gopath、go命令
  9. Nginx教程-location配置
  10. c语言指针心得6,c语言指针的学习心得