Como posso listar os sistemas de arquivos suportados? Mais precisamente, como posso determinar se sistemas de arquivos como o NTFS são suportados?

1

Eu preciso de uma maneira de permitir que um usuário formate um disco para o sistema de arquivos de sua escolha da maneira que o GParted faz. Temos dispositivos que usam NTFS, EXT4, XFS e JFS, então estou interessado principalmente neles.

Eu só preciso de uma lista do que é suportado.

O GParted fornece a seguinte lista do que está disponível:

Estou tendo problemas para descobrir como obter uma lista semelhante.

O comando cat /proc/filesystems fornece a seguinte saída:

nodev   sysfs
nodev   rootfs
nodev   ramfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cpuset
nodev   tmpfs
nodev   devtmpfs
nodev   debugfs
nodev   securityfs
nodev   sockfs
nodev   pipefs
nodev   anon_inodefs
nodev   configfs
nodev   devpts
nodev   hugetlbfs
nodev   autofs
nodev   pstore
nodev   mqueue
nodev   selinuxfs
        xfs
nodev   rpc_pipefs
nodev   nfsd
nodev   binfmt_misc
        fuseblk
nodev   fuse
nodev   fusectl
        btrfs
        jfs
        ext3
        ext2
        ext4

Esta lista não me torna óbvio que o NTFS seja suportado. Está incluído em um módulo com um nome diferente? Eu também li que este comando não fornece uma lista abrangente.

Eu então tentei o comando ls -l /lib/modules/$(uname -r)/kernel/fs que forneceu a seguinte saída:

total 52
drwxr-xr-x. 2 root root    18 Mar  7  2017 9p
-rw-r--r--. 1 root root 21853 Mar  2  2017 binfmt_misc.ko
drwxr-xr-x. 2 root root    21 Mar  7  2017 btrfs
drwxr-xr-x. 2 root root    26 Mar  7  2017 cachefiles
drwxr-xr-x. 2 root root    20 Mar  7  2017 ceph
drwxr-xr-x. 2 root root    20 Mar  7  2017 cifs
drwxr-xr-x. 2 root root    22 Mar  7  2017 cramfs
drwxr-xr-x. 2 root root    19 Mar  7  2017 dlm
drwxr-xr-x. 2 root root    24 Mar  7  2017 ecryptfs
drwxr-xr-x. 2 root root    22 Mar  7  2017 exofs
drwxr-xr-x. 2 root root    20 Mar  7  2017 ext4
drwxr-xr-x. 2 root root    48 Mar  7  2017 fat
drwxr-xr-x. 2 root root    23 Mar  7  2017 fscache
drwxr-xr-x. 2 root root    34 Mar  7  2017 fuse
drwxr-xr-x. 2 root root    20 Mar  7  2017 gfs2
drwxr-xr-x. 2 root root    21 Mar  7  2017 isofs
drwxr-xr-x. 2 root root    20 Mar  7  2017 jbd2
drwxr-xr-x. 2 root root    19 Mar  7  2017 jfs
drwxr-xr-x. 2 root root    21 Mar  7  2017 lockd
-rw-r--r--. 1 root root 19629 Mar  2  2017 mbcache.ko
drwxr-xr-x. 6 root root  4096 Mar  7  2017 nfs
drwxr-xr-x. 2 root root    38 Mar  7  2017 nfs_common
drwxr-xr-x. 2 root root    20 Mar  7  2017 nfsd
drwxr-xr-x. 2 root root  4096 Mar  7  2017 nls
drwxr-xr-x. 2 root root    23 Mar  7  2017 overlayfs
drwxr-xr-x. 2 root root    23 Mar  7  2017 pstore
drwxr-xr-x. 2 root root    24 Mar  7  2017 reiserfs
drwxr-xr-x. 2 root root    24 Mar  7  2017 squashfs
drwxr-xr-x. 2 root root    19 Mar  7  2017 udf
drwxr-xr-x. 2 root root    19 Mar  7  2017 xfs

Mais uma vez, isso não me torna óbvio que este sistema ofereça suporte a NTFS.

Atualmente, estou trabalhando no CentOS (que não suportava NTFS por padrão, mas foi adicionado instalando ntfs-3g e ntfsprogs ), mas preciso de uma solução de plataforma cruzada para criar uma lista de sistemas de arquivos suportados. Principalmente para CentOS, Ubuntu e Raspbian.

    
por Blackwood 23.01.2018 / 16:52

1 resposta

0

Primeiro, não presumo que o GParted recupere uma lista de sistemas de arquivos do sistema subjacente. Pode ser simplesmente uma lista codificada de sistemas de arquivos comuns.

Dito isto, para detectar o suporte a ntfs, a maneira mais fácil e (provavelmente!) de plataforma cruzada é procurar o binário mount.ntfs. O pacote ntfs-3g do RedHat (e do CentOS) o colocará em / usr / sbin.

Isso não funciona para todos os tipos de sistema de arquivos; não há mount.ext4, por exemplo.

Você também pode procurar por /usr/sbin/mkfs.*, que é provavelmente mais completo (e também mais interessante para você, já que é o que você usaria para formatar partições).

A localização desses arquivos pode variar de uma distribuição para outra, embora alguns possam colocá-lo em / sbin e, potencialmente, você também pode encontrá-lo em / usr / local / sbin, especialmente se o suporte a NTFS foi compilado fonte. Você pode até encontrá-lo nos diretórios / bin correspondentes.

    
por 23.01.2018 / 17:58