CentOS 7.0全自动安装光盘制作详解

1 复制光盘文件

1 )挂载 iso 镜像

创建目录用于挂载光盘:
mkdir /root/centos7

挂载 iso 镜像 
mount -o loop CentOS-7.0-1406-x86_64-DVD.iso/root/centos7

2 )复制光盘文件到编辑目录进行编辑

因为挂载上 iso 镜像是只读的,如果要编辑,需要将文件复制出来,再编辑。

首先创建编辑目录:
mkdir /root/centos7_iso

复制光盘文件:
cp -rf /root/centos7/* /root/centos7_iso/

diskinfo 文件需求单独拷贝下: 
cp /root/centos7/.discinfo /root/iso

2 编辑 ks.cfg 文件

系统安装的时候,按照 ks.cfg 文件的内容进行安装,我们把 ks.cfg 文件放到 isolinux 目录下: 
cd /root/centos7_iso/isolinux
vim ks.cfg

我的 ks.cfg 文件内容如下: 
#version=RHEL/CentOS7 by xiaoli110
install
# Keyboard layouts
keyboard 'us'
# Reboot after installation
reboot
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='cn'
# System language
lang zh_CN.UTF-8
# Network information
#network --bootproto=dhcp --device=enp2s0 --onboot=off --ipv6=auto
#network --bootproto=dhcp --device=enp3s0 --onboot=off --ipv6=auto
#network --hostname=localhost.localdomain
# Root password
rootpw --iscrypted 111111111111111111111111111
# System timezone
timezone Asia/Shanghai
# System language
lang zh_CN
# Firewall configuration
firewall --enabled --ssh
 
# System authorization information
auth --useshadow  --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype="xfs"--size=500
part /boot/efi --fstype="xfs"--size=500
part swap --fstype="swap"--size=16000
part / --fstype="xfs" --grow--size=1
 
%packages
@base
@core
@development
@hardware-monitoring
@performance
@remote-system-management
%end

注意:

1 )因为 CentOS7 系统网卡规则更复杂,为了 ks.cfg 更通用,最好 ks.cfg 不用制定网卡配置。

2 )为了兼容 mbr 方式和 EFI 方式,同时创建了 /boot 和 /boot/efi 分区。

3 配置 mbr 引导方式

编辑 isoliuux 目录下的 isolinux.cfg 文件,添加自己的内容,在 isolinux.cfg 文件中 label linux 下面添加自己的 label : 
label linux
 menu label ^Install CentOS 7
 kernel vmlinuz
 append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS7 quiet
 
label custom
 menu label ^Custom CentOS 7 by xiaoli110
 kernel vmlinuz
 append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS7 inst.ks=cdrom:/isolinux/ks.cfg

注意点:

1 ) memu label 后面的内容是在光盘引导起来菜单的内容, ^ 后面的字母是菜单的快捷键;

2 )通过 inst.ks 关键字指明 ks.cfg 文件位置;

3 ) inst.stages2 标识的是系统按照介质位置,这里使用 hd:LABEL 表明寻找的是 label 为 CENTOS7 的安装介质,使用 LABEL 关键字的好处是可以精确指定安装介质,为什么 label 是 CENTOS7 ,是因为我在制作光盘镜像的时候指定的,方法在后面有介绍。

4 配置 EFI 引导方式

1 ) EFI 简介

EFI 可扩展固件接口( ExtensibleFirmware Interface 的缩写),是英特尔主导推出的一种替代 BIOS 的升级方案。最早由英特尔开发,于 2005 年将此规范格式交由 UEFI 论坛来推广与发展,后来并更改名称为 Unified EFI(UEFI) 。 UEFI 论坛于 2007 年 1 月 7 日释出并发放 2.1 版本的规格,其中增加与改进了加密编码( cryptography )、网络认证( network authentication )与用户接口架构( User Interface Architecture )。

EFI 是用模块化, C 语言风格的参数堆栈传递方式,动态链接的形式构建的系统,较 BIOS 而言更易于实现,容错和纠错特性更强,缩短了系统研发的时间。

EFI 在概念上非常类似于一个低阶的操作系统,并且具有操控所有硬件资源的能力。

2 )配置 EFI 引导

进入光盘目录 EFI/BOOT/ ,编辑 grub.cfg 文件,添加自己的菜单: 
menuentry 'Install CentOS 7' --class Fedora--class gnu-linux --class gnu --class os {
  linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CENTOS7 quiet
  initrdefi /images/pxeboot/initrd.img
}
menuentry 'Install CentOS 7 custom byxiaoli110' --class fedora --class gnu-linux --class gnu --class os {
  linuxefi /images/pxeboot/vmlinuz inst.ks=cdrom:/isolinux/ks.cfginst.stage2=hd:LABEL=CENTOS7 quiet
  initrdefi /images/pxeboot/initrd.img
}

和 mbr 方式类似,指明 ks.cfg 文件位置和安装源位置。

5 生成 iso 镜像

经过我踩过多个坑,成功的生成镜像,并且能在 EFI 和 mbr 环境安装的镜像生成命令如下: 
genisoimage -v -cache-inodes -joliet-long -R -J -T -V CENTOS7 -o /root/centos7.iso    \
-c isolinux/boot.cat    -bisolinux/isolinux.bin      \
-no-emul-boot -boot-load-size 4-boot-info-table    \
-eltorito-alt-boot    -b images/efiboot.img      -no-emul-boot .

( 1 )中间踩过的几个坑:

1 )制作镜像要使用 CentOS7 的系统,不要使用 CentOS6 的系统,因为两者系统的 genisoimage 命令的版本不一样, 6 的系统制作出来的 iso 不能在 efi 环境启动;

2 )如果要在 efi 启动,需要添加如下参数: 
 -eltorito-alt-boot    -bimages/efiboot.img      -no-emul-boot

3 )通过 -V 参数指定光盘 label

( 2 ) genisoimage 命令参数简介

-o 指定映像文件的名称。

-b 指定在制作可开机光盘时所需的开机映像文件。

-c 制作可开机光盘时,会将开机映像文件中的 no-eltorito-catalog 全部内容作成一个文件。

-no-emul-boot 非模拟模式启动。

-boot-load-size 4 设置载入部分的数量。

-boot-info-table 在启动的图像中现实信息。

-joliet-long 使用 joliet 格式的目录与文件名称,长文件名支持。

-R 或 -rock    使用 Rock RidgeExtensions 。

-J 或 -joliet    使用 Joliet 格式的目录与文件名称。

-v 或 -verbose    执行时显示详细的信息。

-T 或 -translation-table    建立文件名的转换表,适用于不支持 Rock Ridge Extensions 的系统上。

( 3 ) genisoimage 、 mkisofs 、 xorrios 几个命令的区别

说起 genisoimage 和 mkisofs ,其实里面是有点故事的。

最早的时候, Linux 系统使用 cdrtools 工具来管理 iso 及光盘, mkisofs 是 cdrtools 里面的一个工具,后来 cdrtools 更好了了授权许可,从 GPL 修改为 CDDL 许可,开源社区又推出了一套基于 GPL 的工具, cdrkit , mkisofs 也被 genisoimage 去掉,现在系统中的 mkisofs 实际是 genisoimage 的软连接: 
ls -l /usr/bin/mkisofs
/usr/bin/mkisofs ->/etc/alternatives/mkisofs
ls -l /etc/alternatives/mkisofs
/etc/alternatives/mkisofs ->/usr/bin/genisoimage

xorrios 是另外一个比较流行的制作 iso 镜像的工具,并且有一个参数 -asmkisofs 可以和 mkiso 命令兼容。

转载至https://www.linuxidc.com/Linux/2015-03/114509.htm

CentOS 7.0全自动安装光盘制作详解相关推荐

  1. 制作光盘安装linux系统教程,CentOS 7.0全自动安装光盘制作详解

    1,复制光盘文件 1 )挂载 iso 镜像 创建目录用于挂载光盘: mkdir /root/centos7 挂载 iso 镜像 mount -o loop CentOS-7.0-1406-x86_64 ...

  2. 全自动安装 linux光盘,CentOS 7.1全自动安装光盘制作详解

    安装系统的话,常用方式就是通过U盘,光盘,kickstart网络自动化安装,网络自动化安装固然好,但是有时候在现场做项目的话根本就没有kickstart环境,甚至连基本的网络建设都没有弄好,此时该如何 ...

  3. linux全自动安装光盘,CentOS7全自动安装光盘制做详解

    CentOS7全自动安装光盘制做详解node 1 复制光盘文件linux 1)挂载iso镜像ios 建立目录用于挂载光盘:redis mkdir /root/centos7 挂载iso镜像vim mo ...

  4. mysql安装教程8.0.21安装_mysql8.0.21安装教程图文详解

    1.下载 下载链接 点击download,这里可能需要登录甲骨文的账号,登录一下即可 2.解压 下载好会得到一个安装包 把它解压到一个能找到的目录下即可,我的是这样(my.ini文件你们应该没有) 3 ...

  5. MySQL Installer 8.0.21安装教程图文详解 转载

    MySQL Installer 8.0.21安装教程图文详解 原地址 1. 缘由 刚好需要在新系统上重新安装MySQL,便写了一份的下载安装教程,供查阅,以防日后细节有所遗忘. 2. 版本说明 MyS ...

  6. mysql8.0.20 64位安装教程_windows 64位下MySQL 8.0.15安装教程图文详解

    先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置系统环境变量 复制解压后的mysql到C盘或者其他磁盘下 我们去系统的环境变量的path里添加一个mysql的配置  指向my ...

  7. mysql 8.064位安装_windows64位下MySQL8.0.15安装教程图文详解

    先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置系统环境变量 复制解压后的mysql到C盘或者其他磁盘下 我们去系统的环境变量的path里添加一个mysql的配置  指向my ...

  8. mysql installer安装_MySQL Installer 8.0.21安装教程图文详解

    1. 缘由 刚好需要在新系统上重新安装MySQL,便写了一份的下载安装教程,供查阅,以防日后细节有所遗忘. 2. 版本说明 MySQL Installer 8.0.21 3. 下载安装包 方式一:官网 ...

  9. mysql安装教程8.0.21安装,Windows系统下MySQL8.0.21安装教程(图文详解)

    安装建议:尽量不要用.exe进行安装,用压缩包安装,对日后的卸载/版本升级更为方便 下载地址:https://dev.mysql.com/downloads/mysql/ 1.点击上面的下载地址得到z ...

最新文章

  1. 小米开源FALSR算法:快速精确轻量级的超分辨率模型
  2. python 修改字符串中的某个单词_python Pandas替换字符串中的单词
  3. poj 1011 Sticks 搜索
  4. 后端解决跨域问题---SpringBoot
  5. leetcode1282. 用户分组(贪心算法)
  6. Bash常用快捷键及其作用
  7. html点线面制作,利用HTML5绘制点线面组成的3D图形的示例_html5教程技巧
  8. Softmax Derivation
  9. ffmpeg 如何音视频同步
  10. Hibernate完全自学手册
  11. 如何切换水经注地图下载器中的小数度和度分秒显示
  12. 最新Discuz模板二次元动漫C风格+C风格门户版1.1 UTF8+GBK
  13. 炫酷渐变色背景粒子线条折线连接canvas动画
  14. 华为畅享20为什么没有计算机,华为畅享20有没有红外线?华为畅享20有NFC功能吗...
  15. Nodejs之路(四)—— MongoDBMySQL
  16. Python-七段数码管的绘制实例
  17. 基于区块链的数据透明化:问题与挑战 Blockchain-Based Data Transparency: Issues and Challenges
  18. md语法语法_PHP –语法概述
  19. 使用MobaXterm tunneling访问集群(服务器)jupyter notebook
  20. kafka 修改分区_kafka的分区数设置

热门文章

  1. ubuntu16.04不能访问新加卷
  2. Ubuntu16.04更改新加卷名称
  3. ArcGIS Server Rest 认证过程分析
  4. 最受IT公司欢迎的 30 款开源软件
  5. leetcode初级———旋转数组的多种算法总结
  6. linux驱动程序设计21 Linux设备驱动的调试
  7. Mac JER10.7.3安装
  8. CCD CMOS传感器基本工作原理
  9. 蓝懿学习之 遇到卡壳的地方了
  10. OpenGL超级宝典的例子Triangle