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