ubuntu - 安装 iso 区分大小写

ubuntu - 安装 iso 区分大小写

我得到了一个包含区分大小写的文件/目录名的 ISO。

当我使用 将它安装到我的 Ubuntu 12.04 系统上时mount -o loop,所有文件名都是小写的。有一个名为 的选项map=off,但使用该选项时,所有文件名都是大写的。我在研究中发现,ISO9660 默认不支持区分大小写的文件名。但是,有一个名为 的扩展乔利埃特确实如此。我的 iso 似乎正在使用 joliet,因为在 windows/mac os x 上安装时,它的文件名区分大小写。基尼索夫也支持 joliet。

但是,我找不到使用 joliet 安装 ISO 的方法。我该怎么做?

编辑:
Dmesg 确实会记录[ 149.293945] ISO 9660 Extensions: Microsoft Joliet Level 1。但不确定为什么不使用它。

编辑2: 您可以在这里找到 ISO:http://sourceforge.net/projects/cloverefiboot/files/Bootable_ISO/CloverISO-1914.tar.lzma/download

答案1

首先确保已为内核启用 Joliet 扩展。我猜是因为您正在使用 Ubuntu,所以已经启用了,但无论如何还是要检查一下,以确保万无一失:

grep -i joliet /boot/config-`uname -r`

应该返回此行:

CONFIG_JOLIET=y

如果文件丢失,请尝试在 中搜索 joliet /proc/config.gz。我的系统上没有这个文件,我重复了我读到的内容这里

现在,假设您启用了 joliet,我猜您有一张不是 Joliet 的 CD。我尝试通过创建包含两个区分大小写的文件的 joliet iso 来复制您的问题:

$ ls foo/
Aaaaa  Bbbbb

$ genisoimage -J -R -o foo.iso foo/
I: -input-charset not specified, using utf-8 (detected in locale settings)
Total translation table size: 0
Total rockridge attributes bytes: 323
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
181 extents written (0 MB)

$ sudo mount ./foo.iso baz/
mount: warning: baz/ seems to be mounted read-only.  <-- ignore this, not a problem
$ ls baz
Aaaaa  Bbbbb

换句话说,只要使用 Joliet 扩展创建了镜像,默认情况下它应该区分大小写。我真的不是图像文件系统方面的专家,但问题可能不是 Joliet,而是完全不同的东西。如果按照我上面所做的步骤操作,是否可以区分大小写地安装?


编辑:

我下载了你的 iso,得到了与你描述的相同的行为,我无法区分大小写地安装它。不过我确实找到了一个可能的原因。我isoinfo在你的文件和我的文件上运行了:

$ isoinfo -d -i Clover-1914-X64.iso | grep Joliet
Joliet with UCS level 1 found
$ isoinfo -d -i foo.iso | grep Joliet
Joliet with UCS level 3 found

我不知道 Joliet 1 级和 3 级之间的区别是什么,但我怀疑这就是你的 iso 无法正常工作的原因。这至少可以给你一条新的研究途径。

相关内容