genisoimageencryption文件名

我正在尝试为脱机RPM存储库构buildISO映像。 我有我需要的文件和结构,但是当我创buildISO映像时,文件名是乱码的:

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仓库正常工作至关重要。

正如David Bugg的回答所建议的那样,您启用的标志实际上并不允许您的文件名称成为其全部长度。

纯ISO 9660仅支持31个字符的文件名,包括一个3个字符的扩展名(genisoimage将其限制为8.3格式,但是使用-l禁用该限制并允许全部31) 。 您提到的截断名称的文件被截断为29个字符,包括扩展名中的一个字符,因此31包括扩展名中的两个空白字符。

乔利埃特允许多达64个Unicode字符名称,并且可以使用David Bugg建议的标志更长(103)。 然而,这只适用于Windows,在某种程度上也适用于Linux。 genisoimage手册页建议使用-R(或-r,它拥有更好的所有权默认值),另外,由于Rock Ridge标准支持255个字节的文件名和大于8个目录的文件夹深度,并且与joliet不同,它是一个真正的标准。

没有提到Windows是否支持Rock Ridge,但是我怀疑它确实如此,所以我建议使用这两种方法,以便Windows用户不要在驱动器中挂载ISO来检查它,并查看损坏的文件名。

添加-J -joliet-long -r到你的命令,你应该没有问题。

最后的命令从nakedhitman的评论更新:

 genisoimage -f -J -joliet-long -r -allow-lowercase -allow-multidot -o update.iso /data/iso 

你失踪了 – -joliet-long

再加上-U -r ,它应该是好的。