您无需了解这些内容即可下载 Debian ISO,但这可能有助于揭开 jigdo 工作原理的神秘面纱。如果您对细节不感兴趣,只需快进到第 4 节,“如何使用 Jigdo”。
CD 镜像是一种名为 iso9660 的文件系统,但对于本文讨论,我们可以安全地将 CD 镜像称为一个名为“ISO 镜像”(约 650MB)的大文件,其中包含位于不同偏移量的文件。例如,如果 CD 包含一个名为 README 的 567 字节文件,则 ISO 镜像可能包含偏移量 20480000 到 20480567 之间的 README 文件内容。您可以将 CD 镜像可视化为
-------------------------------------------------------- ISO Image: |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx| -------------------------------------------------------- |
镜像的“x”区域包含目录信息、零填充、磁盘名称、引导块等内容。
jigdo-file 接受两个输入:完整的 CD 镜像(因此 ISO 需要已制作完成)和一组可能在镜像中也可能不在镜像中的文件。以下是 jigdo-file 输入的可视化
-------------------------------------------------------- ISO Image: |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx| -------------------------------------------------------- ---------- ---------- ---------- ---------- Loose Files: | file-0 | | file-1 | | file-3 | | file-4 | ---------- ---------- ---------- ---------- |
通过某种机制,jigdo-file 找出哪些松散文件包含在 ISO 镜像中以及它们在 ISO 文件中的偏移量。它输出两个文件:一个“.template”文件和一个“.jigdo”文件。
给定 ISO 镜像的输入和一组可能在 ISO 镜像中也可能不在其中的文件,jigdo-file 为该 ISO 镜像输出一个 .template 文件。以下是.template文件的样子
-------------------------------------------------------- .template: |xxxx| md5-0 |xx| md5-1 |xxx|cccccccc|x| md5-3 |xxxx| -------------------------------------------------------- |
jigdo-file 发现文件file-0, file-1和file-3包含在 ISO 镜像中。它删除了这些文件的内容,并用每个文件的 md5 校验和(md5-0, md5-1等)替换它们。
ISO 镜像中的“x”数据(目录信息、零填充等)被压缩并写入 .template 文件。最后,ISO 镜像中未作为松散文件提供的任何文件(如file-2)也被压缩并写入 .template 文件。这在 .template 文件可视化中显示为“c”.template 文件可视化中的数据。
提供给 jigdo-file 但在 ISO 镜像中未找到的松散文件(如file-4)将被忽略。
给定 ISO 镜像的输入和一组可能在 ISO 镜像中也可能不在其中的松散文件,jigdo-file 为该 ISO 镜像输出一个 .jigdo 文件。Debian .jigdo 文件是 gzipped 格式,因此您需要使用 zcat 或 zless 来查看它们。以下是 .jigdo 文件在 gunzip 解压缩后的样子
md5-0=http://somemirror.org/file-0 md5-1=http://somemirror.org/file-1 md5-2=http://somemirror.org/file-2 md5-3=http://somemirror.org/file-3 |
.jigdo 文件只是提供了 ISO 镜像中文件的 md5sum 与该文件的下载 URL 之间的映射。在.jigdo文件中还有其他内容,如果您仔细查看,您会看到.jigdo文件具有与“.ini”文件相同的格式。它应该是自解释的,但如果您想要了解详细信息,请参阅 jigdo 文档。
上面显示的格式与您在典型的 .jigdo 文件中看到的格式不太一样,但非常相似。如果您查看 .jigdo 文件底部的 [Servers] 部分,您将确切地看到我上面显示的格式与实际.jigdo文件之间的区别。