- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试为离线 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/
我有一个脚本可以做几件事。其中之一是使用 genisoimage 为蓝光创建 iso。它会给出烦人的状态消息,如下所示: 26.13% done, estimate finish Mon Dec 2
所以我有以下目录: /共享/媒体/电影/共享/媒体/系列 我如何递归地遍历每个目录,每当它找到一个名为 VIDEO_TS 的文件夹时,让 Genisoimage 将该文件夹转换为 iso 图像,iso
所以我有以下目录: /分享/媒体/电影/共享/媒体/系列 如何递归地循环遍历每个目录,并且每当找到名为 VIDEO_TS 的文件夹时,让 Genisoimage 将该文件夹转换为 iso 镜像,iso
我正在尝试为离线 RPM 存储库构建 ISO 镜像。我有我需要的文件和结构,但是当我创建 ISO 镜像时,文件名是乱码: ConsoleKit-32bit-0.2.10-64.65.1.x86_64.
如何在 Debian Jessie 机器上创建 UEFI ISO 镜像? 当我在 Kubuntu 上使用 follow 命令时,一切正常 genisoimage -quiet -V "my-amd64
运行以下脚本文件后发现很奇怪。 #! /bin/sh # krhowto_4 # Path to partition you will work on PFAD="/media/sda1" START
我是一名优秀的程序员,十分优秀!