设为首页 收藏本站
查看: 329|回复: 0

[经验分享] CentOS 7.0全自动安装光盘制作详解

[复制链接]

尚未签到

发表于 2015-12-12 15:22:05 | 显示全部楼层 |阅读模式
CentOS 7.0全自动安装光盘制作详解
[日期:2015-03-05]来源:Linux社区  作者:xiaoli110[字体:大 中 小]



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 命令兼容。
  更多CentOS相关信息见CentOS 专题页面 http://www.iyunv.com/topicnews.aspx?tid=14
  本文永久更新链接地址:http://www.iyunv.com/Linux/2015-03/114509.htm
DSC0000.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-150159-1-1.html 上篇帖子: Linux学习之CentOS--SELinux安全系统基础 下篇帖子: centos终端^C显示问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表