[TOC]
替换ISO内核并生成自定义iso镜像文件
一些说明
initrd.img
squashfs.img
- Squashfs(.sfs)是一套供Linux核心使用的GPL开源只读压缩文件系统
rootfs.img
- 由squashfs.img解压得到
- 根文件系统,是ramfs的一种,是为安装系统准备的环境
注意事项
系统安装过程中需要用到megaraid_sas驱动,故需要替换initrd.img和squashfs.img内的驱动,并修改自动加载mod的配置。
安装iso过程中会安装kernel-4.14.rpm内核包,要在系统安装成功后也能用megaraid_sas驱动,需要修改kernel-4.14.rpm内核包中的的驱动,并新增开机自动加载mod的配置文件。
一.挂载并获取原iso镜像内容
1.需要用到的临时目录
临时目录在打包好iso后会删除
1
2
3
4
5
|
dtos_iso_mount_path=/work/mkiso/bootiso-up
dtos_iso_create_tmp_path=/work/mkiso/anaconda/createCD-up
dtos_iso_initrd_tmp_path=/work/mkiso/initrd-up
dtos_iso_squashfs_tmp_path=/work/mkiso/squashfs-up
dtos_iso_packages_tmp_path=/work/mkiso/Packages-up
|
备份目录,备份原iso镜像文件
1
2
3
4
5
6
|
#原驱动文件
/work/mkiso/backup/dtos7.4/old/megaraid_sas.ko.xz
#原initrd.img文件
/work/mkiso/backup/dtos7.4/old/initrd.img
#原squashfs.img文件
/work/mkiso/backup/dtos7.4/old/squashfs.img
|
2.新建目录&iso镜像挂载
1
2
|
mkdir -p /work/mkiso/bootiso-up
mount -o loop /work/release/dtos/dtos-7.4-x86_64-20190111.iso /work/mkiso/bootiso-up
|
3.将镜像内容复制到新目录,并取消挂载镜像
1
2
3
4
5
6
7
8
|
rm -rf /work/mkiso/anaconda/createCD-up/
mkdir -p /work/mkiso/anaconda/createCD-up
cd /work/mkiso/bootiso-up
cp -a . /work/mkiso/anaconda/createCD-up
sed -i 's/CentOS/dtos/g' /work/mkiso/anaconda/createCD-up/isolinux/isolinux.cfg
sed -i 's/CentOS/dtos/g' /work/mkiso/anaconda/createCD-up/isolinux/grub.conf
cd /work/mkiso/anaconda/createCD-up/
umount /work/mkiso/bootiso-up && rmdir /work/mkiso/bootiso-up
|
4.安装需要用到的工具
1
|
yum install -y createrepo mkisofs isomd5sum squashfs-tools rpmbuild rpmrebuild
|
二.initrd.img解压&修改&打包
initrd.img为安装iso时使用的系统,如果是装机过程中用到的驱动或工具,是必须要修改initrd.img的
1.新建目录
1
2
|
rm -rf /work/mkiso/initrd-up
mkdir -p /work/mkiso/initrd-up
|
2.解压initrd.img
1
2
3
4
5
6
7
8
9
|
[root@infi-builder initrd-up]# ll -h /work/mkiso/anaconda/createCD-up/images/pxeboot/initrd.img
-rw-r--r-- 1 root root 47M Jan 11 2019 /work/mkiso/anaconda/createCD-up/images/pxeboot/initrd.img
mkdir -p /work/mkiso/initrd-up/initrd
cd /work/mkiso/initrd-up/initrd
xz -dc / /work/mkiso/anaconda/createCD-up/images/pxeboot/initrd.img | cpio -id
[root@infi-builder initrd]# ls
bin dev etc init lib lib64 proc root run sbin shutdown sys sysroot tmp usr var
|
3.替换修改initrd.img
我这里是替换了megaraid_sas驱动
1
2
3
4
5
|
[root@infi-builder initrd-up]# ll -h /work/mkiso/initrd-up/initrd/usr/lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz
-rw-r--r-- 1 root root 61K Apr 20 17:25 /work/mkiso/initrd-up/initrd/usr/lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz
cp /work/mkiso/modules/drivers/3.10.0-693.el7x86_64/megaraid_sas.ko.xz /work/mkiso/initrd-up/initrd/usr/lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz
cp /work/mkiso/modules/drivers/3.10.0-693.el7x86_64/megaraid_sas.ko.xz /work/mkiso/initrd-up/initrd/lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz
|
4.压缩initrd
1
2
3
|
cd /work/mkiso/initrd-up/initrd
find . | cpio -c -o | xz -9 --check=crc32 > ../initrd.img
hexdump -C ../initrd.img | head -10
|
5.替换iso中的initrd.img
1
2
3
4
5
6
7
|
[root@infi-builder initrd-up]# ll -h /work/mkiso/initrd-up/initrd.img
-rw-r--r-- 1 root root 45M Apr 20 17:35 /work/mkiso/initrd-up/initrd.img
cp -rf /work/mkiso/initrd-up/initrd.img /work/mkiso/anaconda/createCD-up/images/pxeboot/initrd.img
cp -rf /work/mkiso/initrd-up/initrd.img /work/mkiso/anaconda/createCD-up/isolinux/initrd.img
rm -rf /work/mkiso/initrd-up
|
6.安装iso过程中出现的问题
改完之后直接cpio+xz打回去之后发现不能用,不识别initrd.img导致启动失败
1
2
3
4
5
6
7
|
#查看文件头,发现和原有initrd.img文件不太一样
hexdump -C ../initrd.img | head -10
hexdump -C initrd.img | head -10
#文件校验块原来是01重新压回去为啥变04了?fd 37 7a 58 5a 00 00 01 → fd 37 7a 58 5a 00 00 04
#查询xz算法和xz工具后发现新的xz工具在压缩的时候自动采用了新的校验算法crc64,虽然说这个crc64要优于原本的crc32,但是linux内核用的还是crc32而且不认识crc64。怪不得报错呢。
#在参数上指定强制使用crc32校验算法即可
xz -zk initrd.img --check=crc32
|
7.出现问题,尝试另一种处理方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#拷贝源文件到新目录
rm -rf /work/mkiso/initrd-up
mkdir -p /work/mkiso/initrd-up
cd /work/mkiso/initrd-up
cp -rf /work/mkiso/anaconda/createCD-up/isolinux/initrd.img /work/mkiso/initrd-up/initrd.img
#解压initrd.img
[root@infi-builder initrd-up]# file /work/mkiso/initrd-up/initrd.img
/work/mkiso/initrd-up/initrd.img: XZ compressed data
#是个xz压缩文件,继续解压
mv initrd.img initrd.img.xz
xz -d initrd.img.xz
[root@infi-builder initrd-up]# file initrd.img
initrd.img: ASCII cpio archive (SVR4 with no CRC)
#是个二进制镜像文件,继续解
mkdir initd
cd initd
cpio -i -F ../initrd.img
#可以看到解压完的内容
[root@infi-builder initd]# ls
bin dev etc init lib lib64 proc root run sbin shutdown sys sysroot tmp usr var
#替换修改initrd.img
cp -rf /work/mkiso/modules/drivers/3.10.0-693.el7x86_64/megaraid_sas.ko.xz /work/mkiso/initrd-up/initd/usr/lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz
cp -rf /work/mkiso/modules/drivers/3.10.0-693.el7x86_64/megaraid_sas.ko.xz /work/mkiso/initrd-up/initd/lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz
#重新打包initrd.img
find . -depth |cpio -oc -O /work/mkiso/initrd.img
cd /work/mkiso/
xz -zk initrd.img --check=crc32
mv initrd.img.xz initrd.img
[root@infi-builder release]# ll -h initrd.img
-rw-r--r-- 1 root root 46M Apr 20 15:20 initrd.img
[root@infi-builder release]# md5sum initrd.img
5440715388347f3e6c60edf0833fa831 initrd.img
#替换iso中的initrd.img
cp -rf /work/mkiso/initrd.img /work/mkiso/anaconda/createCD-up/isolinux/initrd.img
cp -rf /work/mkiso/initrd.img /work/mkiso/anaconda/createCD-up/images/pxeboot/initrd.img
rm -rf /work/mkiso/initrd.img
rm -rf /work/mkiso/initrd-up
|
三.squashfs.img解压&修改&打包
squashfs.img为需要安装的系统,如果安装完成后的系统需要用到的驱动或工具,是必须要修改squashfs.img的
1.拷贝源文件到新目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
rm -rf /work/mkiso/squashfs-up
mkdir -p /work/mkiso/squashfs-up
cp -rf /work/mkiso/anaconda/createCD-up/LiveOS/squashfs.img /work/mkiso/squashfs-up/squashfs.img
[root@infi-builder release]# ll -h /work/mkiso/squashfs-up/squashfs.img
-rw-r--r-- 1 root root 352M Apr 20 15:27 /work/mkiso/squashfs-up/squashfs.img
[root@infi-builder release]# md5sum /work/mkiso/squashfs-up/squashfs.img
9fbbe1469f75bb6d360d6da42f9b4eac /work/mkiso/squashfs-up/squashfs.img
[root@node1 /work/mkiso/squashfs-up]# hexdump -C squashfs.img | head -10
00000000 68 73 71 73 03 00 00 00 07 a8 ae 59 00 00 02 00 |hsqs.......Y....|
00000010 00 00 00 00 04 00 11 00 c0 04 01 00 04 00 00 00 |................|
00000020 58 00 60 4b 00 00 00 00 56 f8 f7 15 00 00 00 00 |X.`K....V.......|
00000030 4e f8 f7 15 00 00 00 00 ff ff ff ff ff ff ff ff |N...............|
00000040 2e ac f7 15 00 00 00 00 ec f7 f7 15 00 00 00 00 |................|
00000050 26 f8 f7 15 00 00 00 00 40 f8 f7 15 00 00 00 00 |&.......@.......|
00000060 08 80 00 00 02 00 01 00 00 00 fd 37 7a 58 5a 00 |...........7zXZ.|
00000070 00 01 69 22 de 36 03 c0 a2 16 80 80 08 21 01 0a |..i".6.......!..|
00000080 00 00 ba d0 61 a1 e1 ff ff 0b 1a 5d 00 00 6f fd |....a......]..o.|
00000090 ff ff a3 b7 82 62 39 8a 27 9a 46 6f 4c a2 1d 31 |.....b9.'.FoL..1|
|
2.安装工具
如果未安装squashfs-tools工具,请执行以下命令
1
|
yum install -y squashfs-tools
|
3.使用squashfs工具解压squashfs.img
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
cd /work/mkiso/squashfs-up
[root@node1 /work/mkiso/squashfs-up]# unsquashfs squashfs.img
Parallel unsquashfs: Using 4 processors
1 inodes (16384 blocks) to write
[==============================================================/] 16384/16384 100%
created 1 files
created 2 directories
created 0 symlinks
created 0 devices
created 0 fifos
#获取到rootfs.img镜像
[root@dy-workspace /work/mkiso/squashfs-up]# ll -h squashfs-root/LiveOS/rootfs.img
-rw-r--r--. 1 root root 2.0G 4月 24 13:48 squashfs-root/LiveOS/rootfs.img
|
4.挂载镜像rootfs.img
1
2
3
4
|
[root@node1 /work/mkiso/squashfs-up/squashfs-root/LiveOS]# mkdir /work/mkiso/squashfs-up/rootfs/
[root@node1 /work/mkiso/squashfs-up/squashfs-root/LiveOS]# mount /work/mkiso/squashfs-up/squashfs-root/LiveOS/rootfs.img /work/mkiso/squashfs-up/rootfs/
[root@dy-workspace /work/mkiso/squashfs-up]# ls /work/mkiso/squashfs-up/rootfs/
bin dev etc firmware lib lib64 lost+found mnt modules proc root run sbin sys tmp usr var
|
5.根据需要可以修改/work/mkiso/rootfs目录下文件
我这里是替换了megaraid_sas驱动
1
2
|
cp -rf /work/mkiso/modules/drivers/3.10.0-693.el7x86_64/megaraid_sas.ko.xz /work/mkiso/squashfs-up/rootfs/usr/lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz
cp -rf /work/mkiso/modules/drivers/3.10.0-693.el7x86_64/megaraid_sas.ko.xz /work/mkiso/squashfs-up/rootfs/lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz
|
6.开机自动加载模块配置
1
2
3
4
5
6
7
8
9
10
11
12
13
|
cd /work/mkiso/squashfs-up/rootfs/
#方式一,正常情况下二选一
mkdir -p etc/modules-load.d
vim etc/modules-load.d/config.conf
[添加内容]
megaraid_sas
#方式二,正常情况下二选一
mkdir -p etc/sysconfig/modules
vim etc/sysconfig/modules/megaraid_sas.modules
[添加内容]
modprobe megaraid_sas
|
7.重新打包squashfs.img
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
cd /work/mkiso/squashfs-up
umount /work/mkiso/squashfs-up/rootfs/ && rm -rf /work/mkiso/squashfs-up/rootfs/
rm -rf squashfs.img
mksquashfs squashfs-root/ squashfs.img -comp xz -Xbcj x86 -e boot
[root@node1 /work/mkiso/squashfs-up]# mksquashfs squashfs-root/ squashfs.img -comp xz -Xbcj x86 -e boot
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on squashfs.img, block size 131072.
[=============================================================-] 16384/16384 100%
Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, compressed xattrs
duplicates are removed
Filesystem size 360866.57 Kbytes (352.41 Mbytes)
17.21% of uncompressed filesystem size (2097216.33 Kbytes)
Inode table size 19390 bytes (18.94 Kbytes)
29.52% of uncompressed inode table size (65674 bytes)
Directory table size 58 bytes (0.06 Kbytes)
100.00% of uncompressed directory table size (58 bytes)
Number of duplicate files found 0
Number of inodes 3
Number of files 1
Number of fragments 0
Number of symbolic links 0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 2
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
[root@node1 /work/mkiso/squashfs-up]# ll -h squashfs-root/LiveOS/rootfs.img
-rw-r--r-- 1 root root 2.0G 4月 20 15:36 squashfs-root/LiveOS/rootfs.img
[root@node1 /work/mkiso/squashfs-up]# ll -h
总用量 353M
-rw-r--r-- 1 root root 353M 4月 20 15:43 squashfs.img
drwxr-xr-x 3 root root 20 9月 5 2017 squashfs-root
|
8.替换iso中的squashfs.img
1
2
3
|
cp -rf /work/mkiso/squashfs-up/squashfs.img /work/mkiso/anaconda/createCD-up/LiveOS/squashfs.img
rm -rf /work/mkiso/squashfs-up
|
四.修改并替换Packages中的rpm包
如果有自定义的rpm安装包,且rpm包中驱动会覆盖安装完的系统中的驱动时,需要替换rpm包中驱动
此处修改的是linux内核4.14包:kernel-4.14.37-4.el7.x86_64.rpm
1.新建文件夹,拷贝原始文件
1
2
3
|
mkdir -p /work/mkiso/Packages-up/
cp -rf /work/mkiso/anaconda/createCD-up/Packages/kernel-4.14.37-4.el7.x86_64.rpm /work/mkiso/Packages-up/kernel-4.14.37-4.el7.x86_64.rpm
cd /work/mkiso/Packages-up
|
2.提取rpm的spec文件
1
|
rpmrebuild --package --notest-install --spec-only=kernel-4.14.37-4.el7.x86_64.spec kernel-4.14.37-4.el7.x86_64.rpm
|
3.解压rpm包内容
1
2
3
|
mkdir -p /work/mkiso/Packages-up/kernel-4.14.37-4.el7.x86_64
cd /work/mkiso/Packages-up/kernel-4.14.37-4.el7.x86_64
rpm2cpio ../kernel-4.14.37-4.el7.x86_64.rpm | cpio -div
|
4.替换驱动
我这里是替换了megaraid_sas驱动
1
|
cp -rf /work/mkiso/modules/drivers/4.14.37-4.el7.x86_64/megaraid_sas.ko.xz /work/mkiso/Packages-up/kernel-4.14.37-4.el7.x86_64/lib/modules/4.14.37-4.el7.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko.xz
|
5.开机自动加载模块配置
1
2
3
4
5
6
7
8
9
10
11
12
13
|
cd /work/mkiso/Packages-up/kernel-4.14.37-4.el7.x86_64
#方式一,正常情况下二选一
mkdir -p etc/modules-load.d
vim etc/modules-load.d/config.conf
[添加内容]
megaraid_sas
#方式二,正常情况下二选一
mkdir -p etc/sysconfig/modules
vim etc/sysconfig/modules/megaraid_sas.modules
[添加内容]
modprobe megaraid_sas
|
6.修改kernel-4.14.37-4.el7.x86_64.spec文件
1
2
3
4
5
6
7
8
|
vim /work/mkiso/Packages-up/kernel-4.14.37-4.el7.x86_64.spec
跳转至:16165行,在 %files 模块新增内容
[新增内容]
%dir %attr(0755, root, root) "/etc/modules-load.d"
%attr(0644, root, root) "/etc/modules-load.d/config.conf"
%dir %attr(0755, root, root) "/etc/sysconfig"
%dir %attr(0755, root, root) "/etc/sysconfig/modules"
%attr(0755, root, root) "/etc/sysconfig/modules/megaraid_sas.modules"
|
7.重新打包rpm
1
2
3
4
5
6
|
rm -rf /root/rpmbuild
mkdir -p /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
cp -rf /work/mkiso/Packages-up/kernel-4.14.37-4.el7.x86_64 /root/rpmbuild/BUILDROOT/kernel-4.14.37-4.el7.x86_64
cp -rf /work/mkiso/Packages-up/kernel-4.14.37-4.el7.x86_64.spec /root/rpmbuild/SPECS/
cd /root/rpmbuild/SPECS
rpmbuild -ba /root/rpmbuild/SPECS/kernel-4.14.37-4.el7.x86_64.spec
|
8.替换iso中rpm包
1
2
3
|
cp -rf /root/rpmbuild/RPMS/x86_64/kernel-4.14.37-4.el7.x86_64.rpm /work/mkiso/anaconda/createCD-up/Packages/kernel-4.14.37-4.el7.x86_64.rpm
rm -rf /work/mkiso/Packages-up
|
五.打包iso镜像
1.本地yum源
1
2
|
cd /work/mkiso/anaconda/createCD-up/Packages && createrepo -dpo .. .
createrepo -g /work/mkiso/comps/comps.xml /work/mkiso/anaconda/createCD-up
|
2.生成新iso镜像
1
2
3
4
5
6
|
rm -rf /work/mkiso/dtos/dtos-7.4-x86_64-20190111-megaraid_sas.iso
cd /work/mkiso/anaconda/createCD-up
mkisofs -V "dtos 7 x86_64" -o /work/mkiso/dtos/dtos-7.4-x86_64-20190111-megaraid_sas.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -eltorito-alt-boot -bimages/efiboot.img -no-emul-boot /work/mkiso/anaconda/createCD-up
rm -rf /work/mkiso/anaconda/createCD-up
|
3.镜像md5值
1
2
|
implantisomd5 /work/mkiso/dtos/dtos-7.4-x86_64-20190111-megaraid_sas.iso
md5sum /work/mkiso/dtos/dtos-7.4-x86_64-20190111-megaraid_sas.iso
|
六.验证iso镜像
七.自定义打包iso脚本
写入如下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
#!/bin/bash
set -x
if [ -z $1 ];then
ISONAME=dtos-7.4-x86_64-$(date +%Y%m%d).iso
else
ISONAME=dtos-${1}-x86_64.iso
version=${1}
fi
centos_file=CentOS-7-x86_64-Minimal-1905-02.iso
#centos_file=CentOS-7-x86_64-Minimal-1905-01.iso
#centos_file=CentOS-7-x86_64-Minimal-1904-01.iso
#centos_file=CentOS-7-x86_64-Minimal-1802-01.iso
userdir="mkiso"
workdir=/work/${userdir}
epelconf=${workdir}/pubscripts/epelconf.txt
if [ ! -e $epelconf ]; then
echo "config file $epelconf does not exist"
exit
fi
epels=`cat $epelconf`
#epels="core_append_epel infinity_epel infinity_devel_epel"
if [ -d ${workdir}/anaconda/ ];then
rm -rf ${workdir}/anaconda/
fi
if [ ! -e ${workdir}/pubscripts/remove_rpm_list_generate.py ]; then
echo "file remove_rpm_list_generate.py does not exist!"
#exit
fi
mkdir -p ${workdir}/bootiso
mount -o loop ${workdir}/commons/centos-minimal/${centos_file} ${workdir}/bootiso
[ -e ${workdir}/anaconda/createCD/ ] && rm -fr ${workdir}/anaconda/createCD/
mkdir -p ${workdir}/anaconda/createCD/
cp -r ${workdir}/bootiso/* ${workdir}/anaconda/createCD/
cp -r ${workdir}/bootiso/.treeinfo ${workdir}/anaconda/createCD/
cp -r ${workdir}/bootiso/.discinfo ${workdir}/anaconda/createCD/
sed -i 's/CentOS/dtos/g' ${workdir}/anaconda/createCD/isolinux/isolinux.cfg
sed -i 's/CentOS/dtos/g' ${workdir}/anaconda/createCD/isolinux/grub.conf
#sed -i 's/CentOS/dtos/g' ${workdir}/anaconda/createCD/EFI/BOOT/grub.cfg
umount ${workdir}/bootiso && rmdir ${workdir}/bootiso
#If new kernel rpms exists, copy to Packages
#[ -e ${workdir}/commons/kernel_rpms ] && cp ${workdir}/commons/kernel_rpms/*.rpm ${workdir}/anaconda/createCD/Packages/
#cp ${workdir}/ks.cfg ${workdir}/anaconda/createCD/isolinux/ks.cfg
for epeldir in `echo $epels`; do
if [ -d ${workdir}/commons/${epeldir} ]; then
echo "Copy epel $epeldir"
cp ${workdir}/commons/${epeldir}/*.rpm ${workdir}/anaconda/createCD/Packages/
else
echo "epel $epeldir does not exist"
fi
done
if [ ! -z ${version} ];then
cp ${workdir}/commons/dtos-release/dtos-release-${version}-el7.x86_64.rpm ${workdir}/anaconda/createCD/Packages/
fi
#This is to remove rpm with older version from Packages
[ -e rm_rpm.sh ] && rm -f rm_rpm.sh
python ${workdir}/pubscripts/remove_rpm_list_generate.py && ${workdir}/pubscripts/rm_rpm.sh
[ -e ${workdir}/commons/kernel_714rpms ] && cp -vf ${workdir}/commons/kernel_714rpms/*.rpm ${workdir}/anaconda/createCD/Packages/
cp -vf ${workdir}/commons/kernel_714rpms/grub.cfg ${workdir}/anaconda/createCD/EFI/BOOT/grub.cfg
rm -rf ${workdir}/anaconda/createCD/Packages/polkit-0.112-12.el7_3.x86_64.rpm
rm -rf ${workdir}/anaconda/createCD/Packages/openssh-clients-7.4p1*
rm -rf ${workdir}/anaconda/createCD/Packages/openssh-7.4p1-21.el7.x86_64.rpm
rm -rf ${workdir}/anaconda/createCD/Packages/openssh-server-7.4p1-21.el7.x86_64.rpm
rm -rf ${workdir}/anaconda/createCD/Packages/iwl*
rm -rf ${workdir}/anaconda/createCD/Packages/alsa-firmware-1.0.28-2.el7.noarch
rm -rf ${workdir}/anaconda/createCD/Packages/aic94xx-firmware-30-6.el7.noarch
rm -rf ${workdir}/anaconda/createCD/Packages/ivtv-firmware-20080701-26.el7.noarch
rm -rf ${workdir}/anaconda/createCD/Packages/alsa-tools-firmware-1.1.0-1.el7.x86_64
rm -f rm_rpm.sh
rm -rf ${workdir}/anaconda/createCD/Packages/rsync-3.0.9-18.el7.x86_64.rpm
cd ${workdir}/anaconda/createCD/Packages && createrepo -dpo .. .
if [ -z $1 ];then
createrepo -g ${workdir}/comps/comps.xml ${workdir}/anaconda/createCD
else
createrepo -g ${workdir}/comps/comps_${1}.xml ${workdir}/anaconda/createCD
fi
#cp -fr ${workdir}/isolinux.cfg ${workdir}/anaconda/createCD/isolinux/isolinux.cfg
cd ${workdir}/anaconda/createCD
mkisofs -V "dtos 7 x86_64" -o ${workdir}/${ISONAME} -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -eltorito-alt-boot -bimages/efiboot.img -no-emul-boot ${workdir}/anaconda/createCD
implantisomd5 ${workdir}/${ISONAME}
set +x
|
八.一些相关资料
iso镜像替换megaraid_sas驱动
使用Centos7.3定制自定义ISO定制iso
替换CentOS ISO内核
CentOS7安装光盘修改过程中initrd.img的解包及打包排雷
使用squashfs工具解压并创建的 squashfs.img文件
使用rpmrebuild从rpm包中提取spec文件
Centos7 开机自动加载模块