Posso listar os sistemas de arquivos que um kernel em execução pode suportar?

24

Estou tentando detectar quais sistemas de arquivos um kernel pode suportar. Idealmente em uma pequena lista de seus nomes, mas vou pegar qualquer coisa que você tenha.

Note que não quero dizer os sistemas de arquivos atuais em uso , apenas aqueles que o kernel atual poderia, teoricamente, suportar diretamente (obviamente, o fusível poderia suportar números infinitos mais).

    
por Oli 03.11.2013 / 11:52

3 respostas

9

Can I list the filesystems a running kernel can support?

Bem, a resposta /proc/filesystems está simplesmente errada - reflete apenas as FSs que já estão sendo usadas , mas geralmente há muito mais:

ls /lib/modules/$(uname -r)/kernel/fs

Outra fonte é /proc/config.gz , que pode estar ausente em sua distro (e eu sempre me pergunto "por quê ?!" no caso).

    
por 03.11.2013 / 16:58
10

/proc/filesystems lista todos os tipos de sistema de arquivos suportados pelo kernel em execução, juntamente com os atributos do sistema de arquivos, nodev para indicar que este sistema de arquivos não é suportado por um dispositivo de bloco, por exemplo.

man 5 filesystems fornece mais algumas informações detalhadas.

    
por 03.11.2013 / 11:53
0

Eu acredito que isso vai te dar o que você quer:

(cat /proc/filesystems | awk '{print $NF}' | sed '/^$/d'; ls -1 /lib/modules/$(uname -r)/kernel/fs) | sort -u

Explicação

Com base no meu melhor entendimento:

  • cat /proc/filesystems | awk '{print $NF}' | sed '/^$/d' fornece todos os sistemas de arquivos que são suportados nativamente pelo kernel (como o sysfs), juntamente com aqueles que possuem seus módulos do kernel atualmente carregados
  • ls -1 /lib/modules/$(uname -r)/kernel/fs fornece a lista de módulos disponíveis do sistema de arquivos disponíveis para o seu kernel
  • sort -u classifica os resultados combinados dos dois primeiros comandos com duplicatas removidas (apenas mostra resultados exclusivos -u)

Eu ainda estou aprendendo o Linux, isso funciona no Arch Linux, mas acredito que pelo menos no Ubuntu você pode precisar alterar o caminho /lib/modules/$(uname -r)/kernel/fs para um diretório diferente apropriado para sua distribuição.

    
por 30.07.2015 / 04:47