logo头像

老陕小张学技术接地气

安装自定义CentOS7镜像工具

安装自定义镜像工具

  • 安装
yum -y install createrepo mkisofs openssl rsync syslinux

挂载镜像

  • 创建挂载点
mkdir /mnt/cdrom
  • 挂载
# 上传镜像到/home/baseISO目录下
mount -o loop /home/baseISO/CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom/
  • 同步/mnt/cdrom/下的文件到/home/ISO/
mkdir /home/ISO
/usr/bin/rsync -a /mnt/cdrom/ /home/ISO/

ks.cfg文件自定义

  • 复制ks.cfg文件
cp /root/anaconda-ks.cfg /root/ks.cfg
  • 密码生成
# -1: md5加密
# -salt: 加盐
# 盐: Wkajs
# pass: password
openssl passwd -1 -salt Wkajs password
  • 编辑ks.cfg文件
#  vim /root/ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --enablemd5
# Use CDROM installation media
cdrom
# Use graphical install 图形化界面式安装
# graphical
# Use text install  文本式安装
text
# Run the Setup Agent on first boot
firstboot --enable
# 启用会忽略其他硬盘
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=eth0  --ipv6=auto --activate
network  --hostname=localhost.localdomain

# Root password
rootpw --iscrypted  $1$8q7ORxjl$v8yGB70WIHiLjNcaJRdCh.
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# Partition clearing information
clearpart --all --initlabel

# System bootloader configuration
bootloader --append=" crashkernel=512M " --location=mbr  --boot-drive=sda
# Clear the Master Boot Record
zerombr
%addon com_redhat_kdump --enable --reserve-mb='512M'
%end
part /boot --asprimary --fstype="ext4" --size=500 --ondisk=sda
# uefi模式需要
part /boot/efi --asprimary --fstype="efi" --size=120 --ondisk=sda
#----------------------以下是创建lvm逻辑卷---------------------
# 创建第一个物理卷PV分区,序号是01,大小为剩余所有空间
# --size=1 --grow参数是以剩余所有空间来分区
part pv.01 --size=1 --grow --ondisk=sda
# 创建一个逻辑卷组名,名字为vg_sytem,包含在物理卷PV.01
volgroup virt pv.01
# 创建一个LV逻辑卷,挂载到/  ,从vg_system组中创建,大小为10000M,LV的名字是lv_root
logvol / --fstype="ext4" --vgname=virt --size=1 --grow --name=vg-root
# 创建第二个物理卷PV分区,序号是02,大小为剩余所有空间
#part pv.02 --size=1 --grow --ondisk=sdb
#创建一个逻辑卷组名,名字为vg_mvtech,包含在物理卷PV.02
#volgroup data pv.02
#创建一个LV逻辑卷,挂载到/data  ,从vg_data组中创建,LV的名字是lv_data
#logvol /data --fstype="ext4" --vgname=vg_data --size=1 --grow --name=volume-data


# 最小化安装
%packages
@^minimal
@core
kexec-tools
%end
reboot

ISO文件目录

  • 目录
# tree /home/ISO/ -d
/home/ISO/
├── EFI
│   └── BOOT
│       └── fonts
├── images
│   └── pxeboot
├── isolinux
├── LiveOS
├── Packages
└── repodata
  • 复制ks.cfg到isolinux
cp /root/ks.cfg /home/ISO/isolinux
  • 修改isolinux.cfg文件
# vim /home/ISO/isolinux/isolinux.cfg
label linux
  menu label ^Install CentOS 7
  menu default
  kernel vmlinuz
  append initrd=initrd.img  ks=cdrom:/isolinux/ks.cfg net.ifnames=0 biosdevname=0 quiet

describe: net.ifnames=0 biosdevname=0 禁用自动设备命名规则,恢复传统的 ethx 设备名称

生成iso文件

  • 制作iso命令
# mkisofs制作
mkisofs \
-o CentOS-7-9.iso \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
-boot-info-table -R -J -v -T /home/ISO

# genisoimage 制作
genisoimage  \
-joliet-long \
-o CentOS-7-9.iso \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
-boot-info-table -R -J -v -cache-inodes -T -eltorito-alt-boot \
-e images/efiboot.img -no-emul-boot /home/ISO
  • uefi模式需修改文件
# vim EFI/BOOT/grub.cfg
# 修改内容
menuentry 'Install CentOS 7' --class fedora --class gnu-linux --class gnu --class os {
     linuxefi /images/pxeboot/vmlinuz ks=cdrom:/isolinux/ks.cfg net.ifnames=0 biosdevname=0   quiet
     initrdefi /images/pxeboot/initrd.img
 }
 #下面内容可注释,只保留当前install选项
 ...
  • uefi bios兼容
mkisofs -o /home/ISO/CentOS-7-9.iso -v -cache-inodes -joliet-long -R -J -T -V centos7  -c isolinux/boot.cat  -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -b images/efiboot.img -no-emul-boot /home/ISO
  • Hybird模式
isohybrid -v /home/ISO/CentOS-7-9.iso

notice: isohybrid command not found,需要安装syslinux.命令: yum -y install syslinux

describe: 采用“hybird模式”(混合模式),操作系统可以直接刻录成物理光盘,也可以直接做成可引导的U盘

支付宝打赏 微信打赏

赞赏是不耍流氓的鼓励

-->