为什么Windows和Linux在DVD ROM上看到不同的文件?


80

我有一个DVD ROM,上面有一些教学资源(Headway Beginner的英语教学老师的DVD)。当我从Ubuntu机器查看DVD时,我看到了一组文件(其中包括一个setup-linux文件,尽管不起作用)。

当我从Windows计算机上观看同一张DVD时,会看到一组不同的文件,包括一个setup-windows.exe文件。

这两台机器都看不到所有文件,但是两者都有一些共同点。

我的问题是:

  1. 这是如何运作的?
  2. 使用Ubuntu时如何查看所有文件?

编辑:这不是由于在文件管理器中查看文件时“隐藏”文件,较低级别的诸如“ ls -a”之类的文件不会显示丢失的文件。

编辑2:我正在使用Ubuntu 18.04 LTS


您尚未说明正在使用哪个Ubuntu版本,但是nautilus如果您进入(图标或gnome的文件管理器)“图标查看”模式,然后单击菜单上的菜单,则可以单击“显示隐藏的文件”,您应该看到全部文件。如果在详细信息(或列表)模式下,该选项有些隐藏(在我的19.04框上;对不起,我通常不使用nautilus)。Windows默认情况下使用fs(文件系统)标志隐藏文件,而* nix(Ubuntu,任何GNU / Linux,Apple或Unix)使用'。'标志。作为使文件“隐藏”的文件名的第一个字符。
guiverc

2
这不是隐藏文件,ls -a在Linux中使用不会显示丢失的文件。Windows资源管理器中也不显示“显示隐藏文件”。
spookylukey

Answers:


112

我不确定这是否是正确的答案,但也许它将为您提供可以帮助您的详细信息。

可能是因为MS-Windows和Unix在DVD上使用了不同的文件系统-甚至在同一张DVD上。通常使用ISO 9660标准中指定的文件系统协议来安排光学介质上的文件(另请参见末尾的注释)。

但是该标准允许扩展,并且Microsoft设计了自己的名为“ Joliet ” 的扩展,该扩展允许Microsoft Windows兼容的操作系统读取比标准ISO 9660文件系统更多功能(更长的名称和支持Unicode)的不同文件名。允许。

对于Unix风格的操作系统(例如Linux),开发了另一个扩展名“ Rock Ridge ”,以允许更长的文件名,Unix风格的权限以及其他一些东西。

在同一光学介质上同时具有Rock Ridge和Joliet扩展名是很常见的,但可能是DVD的创建者巧妙地使用了这些扩展名,从而仅在Windows的Joliet部分中显示了与MS-Windows相关的文件。系统,并且只有Linux特定文件显示在系统的Rock Ridge部分中。该stackexchange答案中isoinfo讨论的程序可能会提供更多信息。

笔记:

正如评论中的讨论中所提到的那样,尽管在ISO 9660及其扩展中仍可以编写许多媒体,而OP中讨论的各种技巧可能会发生,但ISO 9660已过时,应使用UDF(ISO 13346)编写现代媒体。,这是通用磁盘格式,并且只允许整个文件系统的单个视图-因此,在UDF创作的磁盘上可能无法实现这些技巧。


27
谢谢,这足够了- isoinfo dev=/dev/dvd -J -ls显示Linux中丢失的文件。
spookylukey

25
很好的答案,但我发现缺少的一个重要细节是可以在Linux上使用的--norockand --nojolietmount选项来确定要查看的三棵树布局中的哪一个。
卡巴斯德

8
哇...真是出奇的优雅。
在轨道进行的轻度比赛

4
某些工具(例如mkisofs实际上)使您可以指定如何生成它们。链接的手册页上的“示例”部分显示了如何创建一个具有名为的文件的ISO README,但其内容会有所不同,具体取决于您用来查看CD的系统。引用手册页:“隐藏选项的组合可能会产生各种各样奇怪的结果……”
Herohtar

3
我很高兴在评论中提到UDF,但是我不确定它与讨论是否相关-如果OP DVD上的文件系统是通用格式,那么您将无法在其中获得不同的视图据我了解,Windows和Linux。
Guss

0

很可能“ rockridge”(unix)和“ joliet”(microsoft)表以不同的方式映射裸iso9660文件名。它们都在每个目录中都包含一个“映射”,该映射基本上表明应将哪个实际的iso文件(8+点+3个字符)视为哪个更长的名称。因此,每个文件实际上都有2个名称,一个限制为8 + 3个字符,一个不是。

在rockridge上,此映射是一个实际文件,该文件已添加到名为“ TRANS.TBL”之类的iirc目录中。在joliet上,这是一个极其丑陋且愚蠢的骇客,其中“目录项”不是实际文件,但为此保留。


哦,我忘了补充:Windows仅支持joliet(在此并不令人惊讶),而linux支持这两者(在这也并不令人惊讶),尽管在linux和大多数其他unix系统中,rockridge默认处于优先地位。但是,有挂载选项可以禁用一个或另一个。如果同时禁用这两个功能,则将只看到简短的8.3文件名,就像ex一样。在DOS或Windows 3.x及更高版本中。根据您使用的文件管理器和桌面环境,可能有一种“用户友好”的方式来执行此操作而无需键入命令:)
delt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.