我有一张DVD ROM,上面有一些教学资源(Headway Beginner's English Teaching Teacher's DVD)。当我从 Ubuntu 机器上查看 DVD 时,我看到一组文件(其中包括一个setup-linux
文件,尽管这不起作用)。
当我从 Windows 机器查看同一张 DVD 时,我看到一组不同的文件,包括一个setup-windows.exe
文件。
两台机器都看不到所有文件,但两者都有一些共同点。
我的问题是:
- 这是如何运作的?
- 使用 Ubuntu 时如何查看所有文件?
编辑:这不是因为在文件管理器中查看文件时文件被“隐藏”,像“ls -a”这样的较低级别的东西不会显示丢失的文件。
编辑 2:我使用的是 Ubuntu 18.04 LTS
我不确定这是正确的答案,但也许它会为您提供对您有所帮助的详细信息。
这可能是因为 MS-Windows 和 Unix 在 DVD 上使用不同的文件系统——即使是在同一张 DVD 上。光学介质上的文件通常使用ISO 9660标准中指定的文件系统协议进行排列(另请参见末尾的注释)。
但是该标准允许扩展,微软已经设计了他们自己的扩展名为“ Joliet ”的标准,它允许与微软 Windows 兼容的操作系统读取具有比标准 ISO 9660 文件系统更多功能(更长的名称和支持 Unicode)的不同文件名允许。
对于 Unix 风格的操作系统(例如 Linux),开发了另一个名为“ Rock Ridge ”的扩展,以允许更长的文件名、Unix 风格的权限和其他一些东西。
在同一个光学介质上同时拥有 Rock Ridge 和 Joliet 扩展是很常见的,但可能是该 DVD 的创建者巧妙地使用了这些扩展,只在 Joliet 部分显示 MS-Windows 相关文件系统,并且只有 Linux 特定文件显示在系统的 Rock Ridge 部分。此 stackexchange 答案
isoinfo
中讨论的程序可能会提供更多信息。笔记:
正如评论中的讨论中所提到的,虽然许多媒体仍然是在 ISO 9660 及其扩展中创作的,在 OP 中讨论的各种技巧可能会发生,但 ISO 9660 已经过时,现代媒体应该使用UDF (ISO 13346 ),这是一种通用磁盘格式,只允许查看整个文件系统的单一视图 - 因此在 UDF 创作的磁盘上可能无法使用此类技巧。
“rockridge”(unix)和“joliet”(microsoft)表很可能以不同的方式映射裸 iso9660 文件名。它们都涉及每个目录中的“映射”,基本上说明哪些实际的 iso 文件(8+dot+3 个字符)应该被视为哪个更长的名称。所以每个文件实际上有 2 个名称,一个限制为 8+3 个字符,一个不限制。
在rockridge上,这个映射是一个实际的文件,它被添加到每个目录中,iirc名为“TRANS.TBL”之类的。在 joliet 上,这是一个极其丑陋和愚蠢的 hack,其中“目录条目”不是实际文件,而是为此目的而保留的。