`mkisofs` 会修改启动映像和/或启动目录吗?

`mkisofs` 会修改启动映像和/或启动目录吗?

我一直在 RHEL 6.2 上使用 Kickstart,这涉及重新制作安装 ISO。不过,我注意到一些奇怪的事情。如果我发出以下命令一次(diskFiles我保存 DVD 文件的目录在哪里)...

mkisofs -o file.iso -b isolinux/isolinux.img -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T diskFiles/

...除非我使用 DVD 文件的新副本,否则我无法再次创建可用的 ISO。错误范围从 isolinux 无法启动到 Anaconda 找不到 RHEL 安装映像。因此,我的问题如下:

  1. 当我创建 ISO 时,目录isolinux中的文件是否会被修改?diskFiles
  2. 如果是,每次我尝试创建另一个 ISO 时,我应该替换哪些文件?我知道重新复制整个 DVD 是可行的,但似乎没有必要。
  3. 如果不是,那么我是否可能遗漏了某些可以解释这一情况的过程?

本质上,我的问题是:mkisofs它的魔力是如何发挥的,以及它在这个过程中对启动映像做了什么?

答案1

1)如果磁盘文件目录正在被修改,那么这将显示简单的工具,如ls. 如果你有许多文件和子目录,那么寻找是你的朋友。

2) 从 DVD 备份进行 Rsync 会快得多。我不推荐这样做,因为这是一种解决方法。找到问题的原因几乎总是更好的选择。然而,我认识到有时需要一种解决方法才能完成任务现在。我的经验是,这些解决方法会永远存在,所以最好尽可能避免使用它们。

(跳过第 3 项,因为我对此没有答案)。

答案2

除了我接受的答案之外,还有一个简单的方法可以解决这个问题 - 生成 MD5 校验和!(呃。)

md5sum diskFiles/isolinux/isolinux.bin

如果您在调用之前和之后运行该命令mkisofs,您会看到文件确实发生了变化,原因如下(感谢@Hennes):

-boot-info-table 指定将在启动文件的偏移量 8 处修补一个包含 CD-ROM 布局信息的 56 字节表。如果给出此选项,则启动文件将在源文件系统中被修改,因此如果此文件无法轻松重新生成,请确保进行复制!

为了解决这个问题,我使用以下命令:

rsync -rv /home/derp/diskBackup/isolinux diskFiles/isolinux

rsync命令与 非常相似cp,只是它更智能、更灵活。使用此命令将“清理”源文件系统中的启动映像文件,以便mkisofs可以再次修补 56 字节表而不会损坏 isolinux 文件。

我可能可以对整个 DVD 内容执行此操作,但我懒得再次从光盘上复制所有内容,并且isolinux这是唯一受影响的目录mkisofs。:-)

相关内容