Por que o Windows e o Linux veem arquivos diferentes em um DVD ROM?

80

Eu tenho um DVD ROM com alguns recursos de ensino (DVD do professor de ensino de inglês da Headway Beginner). Quando olho o DVD de uma máquina Ubuntu, vejo um conjunto de arquivos (que inclui um setup-linuxarquivo entre outras coisas, embora isso não funcione).

Quando visualizo o mesmo DVD em uma máquina Windows, vejo um conjunto diferente de arquivos, incluindo um setup-windows.exearquivo.

Nenhuma máquina vê todos os arquivos, mas há alguns comuns em ambos.

Minhas perguntas são:

  1. Como é que isso funciona?
  2. Como posso ver todos os arquivos ao usar o Ubuntu?

Editar: isso não ocorre porque os arquivos estão "ocultos" quando visualizados em um gerenciador de arquivos, coisas de nível inferior como "ls -a" não revelam os arquivos ausentes.

Edit 2: Estou usando o Ubuntu 18.04 LTS

spookylukey
fonte
Você não disse qual versão do Ubuntu está usando, mas no nautilus(ou 'Files' o gerenciador de arquivos do gnome) se você for para o modo de exibição de ícones e clicar no menu, poderá clicar em "Mostrar arquivos ocultos" e deverá ver todos os arquivos. Se no modo detalhes (ou lista) a opção estiver um pouco oculta (na minha caixa 19.04; desculpe, eu não uso o nautilus normalmente). Por padrão, o Windows usa um sinalizador fs (sistema de arquivos) para ocultar arquivos, onde * nix (Ubuntu, qualquer GNU / Linux, apple ou unix) usa um '.' como o primeiro caractere do nome do arquivo para tornar um arquivo 'oculto'.
guiverc 18/01
2
Isso não é coisa dos arquivos ocultos - o uso ls -ano Linux não mostra os arquivos ausentes. E nem "Mostrar arquivos ocultos" no Windows Explorer.
spookylukey 18/01

Respostas:

112

Não sei se essa é a resposta correta, mas talvez ela forneça detalhes que o ajudarão.

Pode ser porque o MS-Windows e o Unix usam sistemas de arquivos diferentes em DVD - mesmo no mesmo DVD. Os arquivos em um suporte óptico geralmente são organizados usando um protocolo de sistema de arquivos especificado na norma ISO 9660 (consulte também as notas no final).

Mas o padrão permite extensões e a Microsoft projetou sua própria extensão ao padrão chamado " Joliet ", que permite que sistemas operacionais compatíveis com Microsoft Windows leiam nomes de arquivos diferentes com mais recursos (nomes mais longos e suporte a Unicode) do que o sistema de arquivos ISO 9660 padrão permite.

Para sistemas operacionais no estilo Unix (como o Linux), outra extensão chamada " Rock Ridge " foi desenvolvida, para permitir nomes de arquivos ainda mais longos, permissões no estilo Unix e algumas outras coisas.

É muito comum ter extensões Rock Ridge e Joliet no mesmo meio óptico, mas pode ser que o criador desse DVD tenha usado essas extensões de maneira inteligente para que apenas os arquivos relacionados ao MS-Windows sejam exibidos na parte Joliet de o sistema e apenas os arquivos específicos do Linux são exibidos na parte Rock Ridge do sistema. O isoinfoprograma discutido nesta resposta stackexchange pode fornecer mais informações.

Notas:

Conforme mencionado na discussão nos comentários, enquanto muitas mídias ainda são criadas na ISO 9660 e suas extensões onde os tipos de truques discutidos no OP podem acontecer, a ISO 9660 é obsoleta e a mídia moderna deve ser criada usando UDF (ISO 13346 ), que é um formato universal de disco e permite apenas uma visualização de todo o sistema de arquivos. Portanto, esses truques provavelmente não serão possíveis em um disco criado por UDF.

Guss
fonte
27
Obrigado, isso foi o suficiente - isoinfo dev=/dev/dvd -J -lsmostra os arquivos ausentes no Linux.
spookylukey 18/01
25
Resposta bastante boa, mas um detalhe importante que vejo faltando são as opções de montagem --norocke --nojolietvocê pode usar no Linux para decidir qual dos três layouts de árvore você deseja ver.
kasperd 18/01
8
Uau, isso é realmente surpreendentemente elegante.
Lightness Races em órbita
4
Algumas ferramentas, como mkisofsrealmente permitem que você especifique como gerá-las. A seção "Exemplos" na página de manual vinculada mostra como você pode criar uma ISO que tenha um arquivo nomeado README, mas aparecerá com conteúdos diferentes, dependendo do sistema que você está usando para exibir o CD. Para citar a página do manual: "Provavelmente existem todos os tipos de resultados estranhos possíveis com combinações das opções de ocultação ..."
Herohtar 18/01
3
Fico feliz que haja menção ao UDF nos comentários, mas não tenho certeza de que seja relevante para a discussão - se o sistema de arquivos no DVD do OP fosse um formato universal, você não poderá obter visualizações diferentes em Windows e Linux, tanto quanto eu entendo.
Guss
0

Muito provavelmente, as tabelas "rockridge" (unix) e "joliet" (microsoft) mapeiam os nomes de arquivo iso9660 simples de maneira diferente. Ambos envolvem um "mapeamento" em cada diretório que basicamente diz quais arquivos iso reais (8 + pontos + 3 caracteres) devem ser vistos como nome mais longo. Portanto, cada arquivo tem 2 nomes, um limitado a 8 + 3 caracteres e outro que não é.

No rockridge, esse mapeamento é um arquivo real que é adicionado a cada diretório, chamado "TRANS.TBL" ou algo assim. No joliet, é um hack extremamente feio e estúpido, onde uma "entrada de diretório" não é um arquivo real, mas é reservada para esse fim.

delt
fonte
Ah, esqueci de acrescentar: o Windows suporta apenas joliet (nenhuma surpresa lá), enquanto o linux suporta ambos (também não há surpresa lá), embora no linux e na maioria dos outros sistemas unix, o rockridge tem precedência por padrão. No entanto, existem opções de montagem para desativar um ou outro, ou ambos. Se você desabilitar os dois, verá apenas os pequenos nomes de arquivos 8.3, como faria para ex. no DOS ou no Windows 3.xe anterior. Dependendo de qual gerenciador de arquivos e ambiente de desktop que você usa, pode haver uma forma "user friendly" de fazer isso sem ter que digitar comandos :)
Delt