我有一个 ISO,我试图用它来通过 Wine 安装软件。我将 ISO 安装为环回设备。 Windows 安装程序不断抱怨它无法找到特定的 CAB 文件,并要求我找到它们。安装程序软件要求我找到的文件名混合了大小写,但是当我在 Linux 下安装 ISO 时,所有目录列表都将文件显示为全小写。如果我-o check=relaxed
在挂载 iso 时进行设置,那么我可以请求混合大小写的文件,Linux 会“找到”它们。但如果我列出目录,我仍然会得到全部小写。
我猜想 Windows 安装程序包要么正在执行目录列表,要么出于某种原因它正在获取它所期望的文件名的全小写版本。
我认为有几条前进的道路:
- 让 Linux 显示在 Joliet 扩展中编码的混合大小写文件名
- 以保留原始大小写的方式将 ISO 提取到本机 Linux 文件系统中
- 找到 Windows 的副本,并使用它将文件复制到 Linux 也可以读取且区分大小写的 Windows 本机文件系统 (NTFS)。
- 涉及葡萄酒的东西。
一些示例命令:
% isoinfo -d -i example.iso
...
Joliet with UCS level 3 found
NO Rock Ridge present
% # When using isoinfo, filenames are all caps
% isoinfo -f -i example.iso
DIRNAME/DIRNAME/LONG_FILE_NAME.CAB
% # When using ls, filenames are all lowercase
% ls /mnt/iso/dirname/dirname
long_file_name.cab
答案1
您可以首先isoinfo -Jls -i cdrom.iso
列出Joliet
名称而不是默认ISO-9660
名称,但这会导致输出的可读性很差。
使用 可获得更好的可读结果isoinfo -Jfls -i cdrom.iso
,因为它以更常用的方式呈现目录树。
当然,您也可以使用以下命令从 ISO 映像中提取所有文件:isoinfo -J -X
如果您想提取选定数量的文件,则可以使用isoinfo -J -X -find -path <glob-pattern>
。请参阅find
手册页以获取更多信息。
可以提取单个文件以stdout
使用isoinfo -J -x pathname
.但请注意,您需要正确匹配文件系统映像中的路径名。
请注意,该-find
选项是在 2010 年添加的,因此您需要最新版本的isoinfo
.