Estou tentando detectar quais sistemas de arquivos um kernel pode suportar. Idealmente, em uma pequena lista de nomes, mas eu aceito tudo o que você tem.
Note que não quero dizer os sistemas de arquivos atuais em uso , apenas aqueles que o kernel atual poderia, teoricamente, apoiar diretamente (obviamente, o fusível poderia suportar mais números infinitos).
linux
filesystems
kernel
Oli
fonte
fonte
/boot/config-$(uname -r)
/proc/filesystems
não está errado , é apenas incompleto ./lib/modules/$(uname -r)/kernel/fs
ajudará apenas com sistemas de arquivos que foram ativados como módulos, não com os que estão embutidos no kernel. Além disso, um nome de módulo pode não corresponder ao nome do sistema de arquivos que ele fornece e um único módulo pode fornecer vários sistemas de arquivos./proc/config.gz
nada. 1) não é garantido que existe, 2) Um nome de módulo pode não corresponder ao nome do sistema de arquivos que ele fornece e um único módulo pode fornecer vários sistemas de arquivos./proc/filesystems
lista todos os tipos de sistemas de arquivos suportados pelo kernel em execução, juntamente com os atributos do sistema de arquivos,nodev
para indicar que esse sistema de arquivos não é suportado por um dispositivo de bloco, por exemplo.man 5 filesystems
fornece informações mais detalhadas.fonte
nodev
significa o resultado quando vocêcat /proc/filesystems
?cat /proc/filesystems
lista um monte de "nodev", sistemas de arquivos obviamente para fins especiais, além de ext2, ext3, ext4. Quando olho para dentro/lib/modules/3.11.6-1-ARCH/kernel/fs
, vejo vários outros, como "gorduras", "btrfs", "reiserfs", que também são sistemas de arquivos regulares em disco, mas não aparecem na/proc/filesystem
lista. O que há com isso?nodev
indica que o sistema de arquivos em questão não é um sistema de arquivos físico que precisa de um dispositivo de bloco para viver, mas sim um sistema de arquivos virtual suportado por algo diferente de um dispositivo de bloco./proc/filesystems
mostra apenas os sistemas de arquivos que o kernel carregou - até você inserir esses módulos no kernel (o que geralmente acontece automaticamente quando você precisa deles), o kernel não pode suportar esses sistemas de arquivos.Acredito que isso lhe dará o que você deseja:
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 sysfs) junto com aqueles que têm seus módulos de kernel atualmente carregadosls -1 /lib/modules/$(uname -r)/kernel/fs
fornece a lista de módulos de sistema de arquivos disponíveis para o seu kernelsort -u
classifica os resultados combinados dos dois primeiros comandos com duplicatas removidas (mostra apenas resultados exclusivos -u)Ainda estou aprendendo 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.fonte