我正在尝试为脱机RPM存储库构建一个ISO映像。我有我需要的文件和结构,但是当我创建ISO映像时,文件名会被混淆:
ConsoleKit-32bit-0.2.10-64.65.1.x86_64.rpm化作
ConsoleKit-32bit-0.2.10-64..r我在命令行中尝试了以下选项,并取得了相同的结果:
genisoimage -f -U -o update.iso /data/iso
genisoimage -f -l -allow-lowercase -o update.iso /data/iso
genisoimage -f -l -allow-leading-dots -relaxed-filenames -allow-lowercase -allow-multidot -no-iso-translate -o update.iso /data/iso有什么我可能遗漏的东西可以保存文件名吗?这对于ISO回购系统的正常工作至关重要。
发布于 2015-04-07 18:00:38
正如David的回答所表明的那样,您启用的标志实际上不允许您的文件名为它们的完整长度。
纯ISO 9660只支持31个字符文件名,包括3个字符扩展名(genisoimage通常将其限制为8.3格式,但您使用的是-l,它禁用该限制并允许完整的31)。您提到的具有截断名称的文件被截断为29个字符(包括扩展名中的一个字符),因此31包含扩展名中的两个空白字符。
Joliet允许最多64个unicode字符名,并且可以使用David建议的更长的(103)号。然而,这只适用于Windows,在某种程度上也适用于Linux。genisoimage手册页建议使用-R (或者-r,它有更好的默认所有权),因为Ridge标准支持255个字节文件名和大于8个目录的文件夹深度,并且与joliet不同,它是一个真正的标准。
没有提到Windows是否支持Ridge,但我怀疑它是否支持,所以我建议使用这两种方法,这样Windows用户就不会在他们的驱动器中挂载ISO来检查它并查看破损的文件名。
将-J -joliet-long -r添加到您的命令中,您应该没有问题。
根据nakedhitman的评论更新最后命令:
genisoimage -f -J -joliet-long -r -allow-lowercase -allow-multidot -o update.iso /data/iso发布于 2015-04-07 17:41:07
你想-joliet-long了。
加上-U -r,它应该是好的。
发布于 2018-09-12 07:53:23
我只能使用"-U -R“(未翻译的文件名和Ridge属性)(我相信有超过8个文件夹深)来实现这些功能:
汤:structures-2092-articles
https://stackoverflow.com/questions/29497462
复制相似问题