无法创建 CentOS 7.2 Kickstart DVD

无法创建 CentOS 7.2 Kickstart DVD

我对 kickstart 概念还很陌生,过去几天我一直在阅读和测试它,但我遇到了一个问题,似乎在网上任何地方都找不到它……

起初我想创建 PXE 启动 kickstart 安装,但此选项需要 DHCP 服务器,出于安全原因,我当前的网络不允许我安装该服务器。因此,我想创建 DVD kickstart。

因此,我一直遵循多个不同的指南,它们看起来非常相似,最终得到了相同的结果。

以下是我一直在做的事情:

1)挂载当前 ISO

[root@olexporch01 ISO]# mount -o loop /ISO/CentOS-7-x86_64-DVD-1511.iso /media/
mount: /dev/loop0 is write-protected, mounting read-only
[root@olexporch01 ISO]# cd /media/
[root@olexporch01 media]# ls -l
total 636
-r--r--r--. 1 root root     14 Dec  9 17:35 CentOS_BuildTag
dr-xr-xr-x. 3 root root   2048 Dec  9 17:33 EFI
-r--r--r--. 1 root root    215 Dec  9 17:35 EULA
-r--r--r--. 1 root root  18009 Dec  9 17:35 GPL
dr-xr-xr-x. 3 root root   2048 Dec  9 17:33 images
dr-xr-xr-x. 2 root root   2048 Dec  9 17:33 isolinux
dr-xr-xr-x. 2 root root   2048 Dec  9 17:33 LiveOS
dr-xr-xr-x. 2 root root 612352 Dec  9 18:13 Packages
dr-xr-xr-x. 2 root root   4096 Dec  9 18:14 repodata
-r--r--r--. 1 root root   1690 Dec  9 17:35 RPM-GPG-KEY-CentOS-7
-r--r--r--. 1 root root   1690 Dec  9 17:35 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root   2883 Dec  9 18:14 TRANS.TBL

2)将当前 ISO 解压到工作文件夹中为此,我使用了 2 个不同的命令,要么是简单的 cp -pr * 从 ISO 目录到工作目录,要么是

[root@olexporch01 /]# tar -cvf - media | (cd /bootiso/centos/ && tar -xvf - )

命令。我尝试了两种方法,以确保 ISO 的完整性(我们永远不知道)

通常,我会在这里插入 kickstart 文件并重建 ISO,但只是为了测试,我使用与原始 ISO 完全相同的文件重新创建了 ISO

[root@olexporch01 /]# cd /bootiso/centos/media/
[root@olexporch01 media]# ls -l
total 292
-r--r--r--. 1 root root     14 Dec  9 17:35 CentOS_BuildTag
dr-xr-xr-x. 3 root root     33 Dec  9 17:33 EFI
-r--r--r--. 1 root root    215 Dec  9 17:35 EULA
-r--r--r--. 1 root root  18009 Dec  9 17:35 GPL
dr-xr-xr-x. 3 root root     54 Dec  9 17:33 images
dr-xr-xr-x. 2 root root   4096 Dec  9 17:33 isolinux
dr-xr-xr-x. 2 root root     41 Dec  9 17:33 LiveOS
dr-xr-xr-x. 2 root root 200704 Dec  9 18:13 Packages
dr-xr-xr-x. 2 root root   4096 Dec  9 18:14 repodata
-r--r--r--. 1 root root   1690 Dec  9 17:35 RPM-GPG-KEY-CentOS-7
-r--r--r--. 1 root root   1690 Dec  9 17:35 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root   2883 Dec  9 18:14 TRANS.TBL
[root@olexporch01 media]# mkisofs -o ../boot.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -V boot.iso .
I: -input-charset not specified, using utf-8 (detected in locale settings)
Using RPM_G000.;1 for  /RPM-GPG-KEY-CentOS-7 (RPM-GPG-KEY-CentOS-Testing-7)
Using YUM_P000.RPM;1 for  ./Packages/yum-plugin-aliases-1.1.31-34.el7.noarch.rpm (yum-plugin-changelog-1.1.31-34.el7.noarch.rpm)
Using YUM_P001.RPM;1 for  ./Packages/yum-plugin-changelog-1.1.31-34.el7.noarch.rpm (yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm)
Using YUM_P002.RPM;1 for  ./Packages/yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm (yum-plugin-tmprepo-1.1.31-34.el7.noarch.rpm)
Using YUM_P003.RPM;1 for  ./Packages/yum-plugin-tmprepo-1.1.31-34.el7.noarch.rpm (yum-plugin-verify-1.1.31-34.el7.noarch.rpm)
...
...
...
Using ABRT_005.RPM;1 for  ./Packages/abrt-gui-2.1.11-36.el7.centos.x86_64.rpm (abrt-gui-libs-2.1.11-36.el7.centos.x86_64.rpm)
Using 389_D000.RPM;1 for  ./Packages/389-ds-base-1.3.4.0-19.el7.x86_64.rpm (389-ds-base-libs-1.3.4.0-19.el7.x86_64.rpm)
Size of boot image is 4 sectors -> No emulation
  0.23% done, estimate finish Tue Feb  9 08:15:35 2016
  0.46% done, estimate finish Tue Feb  9 08:15:35 2016
  0.70% done, estimate finish Tue Feb  9 08:15:35 2016
  0.93% done, estimate finish Tue Feb  9 08:15:35 2016
  1.16% done, estimate finish Tue Feb  9 08:15:35 2016
  1.39% done, estimate finish Tue Feb  9 08:15:35 2016
  1.62% done, estimate finish Tue Feb  9 08:16:36 2016
  1.86% done, estimate finish Tue Feb  9 08:16:28 2016
  2.09% done, estimate finish Tue Feb  9 08:16:22 2016
  2.32% done, estimate finish Tue Feb  9 08:16:18 2016
...
...
...
 99.23% done, estimate finish Tue Feb  9 08:15:57 2016
 99.46% done, estimate finish Tue Feb  9 08:15:57 2016
 99.69% done, estimate finish Tue Feb  9 08:15:57 2016
 99.92% done, estimate finish Tue Feb  9 08:15:57 2016
Total translation table size: 2048
Total rockridge attributes bytes: 416616
Total directory bytes: 632832
Path table size(bytes): 140
Max brk space used 3ad000
2156686 extents written (4212 MB)
[root@olexporch01 media]# cd ..
[root@olexporch01 centos]# ls -l
total 4313376
-rw-r--r--. 1 root root 4416892928 Feb  9 08:15 boot.iso
dr-xr-xr-x. 8 root root       4096 Dec  9 18:14 media

最后的 ls 是为了确保 ISO 已正确创建,但是现在,当我将原始 ISO 与新 ISO 进行比较时,新 ISO 更大,即使我使用了相同的文件……

[root@olexporch01 centos]# diff boot.iso /ISO/CentOS-7-x86_64-DVD-1511.iso
Binary files boot.iso and /ISO/CentOS-7-x86_64-DVD-1511.iso differ
[root@olexporch01 centos]# ls -l boot.iso ; ls -l /ISO/CentOS-7-x86_64-DVD-1511.iso
-rw-r--r--. 1 root root 4416892928 Feb  9 08:15 boot.iso
-rw-------. 1 root root 4329570304 Feb  9 08:04 /ISO/CentOS-7-x86_64-DVD-1511.iso

当我尝试从新的 ISO 启动时,该 ISO 包含与原始 ISO 相同的文件,我收到此错误

错误信息

除了新内核会发生的问题之外,我似乎无法在网上找到任何有关此问题的信息,但我没有编译新内核......

有谁能给我一个主意吗?

谢谢!

马克

答案1

所以我已经找到问题所在了,如果其他人也遇到这个问题的话。基本上,我所遵循的所有指南都缺少 mkisofs 命令中的一个参数。

以下是实际的命令:

[root@olexporch01 media]# cd /bootiso/centos/media/
[root@olexporch01 media]# mkisofs -o CentOS7.2-Base-Image.iso -b isolinux/isolinux.bin 
\-c isolinux/boot.cat -no-emul-boot -V 'CentOS 7 x86_64' 
\-boot-load-size 4 -untranslated-filenames -boot-info-table -R -J -v -T -hfs .

需要“-hfs”参数来使 ISO 文件系统成为 hfs。如果没有 hfs,ISO 将无法启动。

总而言之,下面是我创建 ISO 的方法,完整指南:

[root@olexporch01 /]# mkdir -p /bootiso/centos/media
[root@olexporch01 /]# mount /dev/cdrom /media
[root@olexporch01 /]# cd /media
[root@olexporch01 /media]# cp -pr * /bootiso/centos/media/
[root@olexporch01 /media]# cp -p /root/anaconda-ks.cfg /bootiso/centos/media/ks.cfg
[root@olexporch01 /media]# cd /bootiso/centos/media
[root@olexporch01 /media]# mkisofs -o CentOS7.2-Base-Image.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -V 'CentOS 7 x86_64' -boot-load-size 4 -untranslated-filenames -boot-info-table -R -J -v -T -hfs .

希望有一天这可以帮助到别人!:)

答案2

很棒的说明,但不适用于 UEFI BIOS。来自http://fedoraproject.org/wiki/User:Pjones/BootableCDsForBIOSAndUEFI

我补充道

-eltorito-alt-boot -e images/efiboot.img -no-emul-boot

在 mkisofs 命令上最后创建 UEFI 可启动 CD 之前。

相关内容