genisoimage 将文件夹大小加倍

genisoimage 将文件夹大小加倍

我有一个包含约 22k 个子文件夹的文件夹,每个子文件夹可以包含更多子文件夹,深度最多可达约 7 个。

所以我想将其设为单个文件,而不是 rar 或类似文件,因为解压缩可能需要很长时间。我想要一个 .iso,因为我可以安装它并仅访问我需要的内容,而无需提取所有内容。

我用了这个命令genisoimage --iso-level 4 -o folder.iso "folder"

文件夹大小为 21.7 GB,但将其转为 iso 后变为 43.2 GB?这是预期的吗?

答案1

首先,由于genisoimage充满错误并创建具有结构缺陷的文件系统,因此不建议使用genisoimage.

如果您想创建ISO-9660文件系统,您应该使用维护良好的原始mkisofs.确保您确实使用原始版本,而不仅仅是genisoimage.很容易验证您是否使用的是原始软件,调用mkisofs -version并验证您使用的是最新版本。越野车genisoimage没有给出日期,原始版本使用 > 3.0 的版本,当前版本打印 2018 年 5 月的版本日期,当使用我自己的最新版本时,打印日期是 2018 年 9 月schilytools。您可以在此处下载最新的源版本:http://sourceforge.net/projects/schilytools/files/更新时间为 1-3 周。

但由于所使用的扇区大小ISO-9660为 2048 字节,因此归档许多小文件可能很容易导致归档文件的大小与文件大小总和相比增加一倍。

建议至少使用Rock RidgeISO 映像中的属性,因为它包含更多属性但不会真正增强大小。

顺便说一句:如果您有许多小文件并创建一个扩展名为 的tar存档,您将获得一个与 ISO 映像大小相似的存档。POSIX.1-2001paxtar

历史tar存档每个文件的开销为 512 字节,该POSIX.1-2001格式的开销为每个文件 1536 字节。

答案2

所以我想将其设为单个文件,而不是 rar 或类似文件,因为解压缩可能需要很长时间。我想要一个 .iso,因为我可以安装它并仅访问我需要的内容,而无需提取所有内容。

这看起来像是一份工作壁球FS:SquashFS 允许您将目录压缩为单个文件。与标准压缩文件(tar.gz 等)相反,您可以通过安装文件来访问内容,而不是将其实际提取到磁盘。

  • 读取访问非常高效:有时它比访问常规未压缩文件系统更快(特别是当目录包含许多文件和子目录时)。
  • 由于内容经过压缩,该文件比 ISO 映像小得多。

答案3

我遇到了类似的问题,但当时我正在重新生成 RHEL 7 安装介质的 iso 映像,包括 kickstart 配置和其他支持文件。我提到这一点是因为我开始超出单层 DVD 所允许的大小。我以前从未注意到这一点,但我认为 RHEL Packages 目录在后续版本中有所增长。我发现 mkisofs 工具使图像比预期更大。经过一番研究后,我发现我可以使用 xorriso 就地编辑 iso,这在某种程度上允许我将其保持在适合单层 DVD 的大小。

这是我使用的命令。

xorriso -boot_image any keep -dev rhel-server-7.8-x86_64-dvd_ks-v2r7.iso -cpr ../rhel-ks/* / --

在这种特定情况下,您可以尝试使用 xorrisofs 创建带有空 iso9660 文件系统的 iso 映像,然后使用 xorriso 将所需的文件添加到映像中。

不需要可启动的数据 CD/DVD 映像的示例。

xorrisofs -U -r -v -J -joliet-long -V "MyData" -volset "MyData" -A "MyData" -o ./mydata.iso 

xorriso -dev ./mydata.iso -cpr ./data_dir / --

相关内容