gpt4 book ai didi

linux - genisoimage 乱码文件名

转载 作者:IT王子 更新时间:2023-10-29 01:00:34 26 4
gpt4 key购买 nike

我正在尝试为离线 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 存储库正常工作至关重要。

最佳答案

正如 David Bugg 的回答所暗示的那样,您启用的标志实际上不允许您的文件名是它们的全长。

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

Joliet 允许最多 64 个 unicode 字符名称,并且可以更长 (103),并带有 David Bugg 建议的标志。然而,这只适用于 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

关于linux - genisoimage 乱码文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29497462/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com