J'essaie de détecter les systèmes de fichiers qu'un noyau peut prendre en charge. Idéalement dans une petite liste de leurs noms mais je prendrai tout ce que vous avez.
Notez que je ne veux pas dire les systèmes de fichiers actuels utilisés , juste ceux que le noyau actuel pourrait, en théorie, supporter directement (évidemment, les fusibles pourraient supporter plus de nombres infinis).
/boot/config-$(uname -r)
/proc/filesystems
ce n'est pas faux , c'est juste incomplet ./lib/modules/$(uname -r)/kernel/fs
n'aidera que les systèmes de fichiers qui ont été activés en tant que modules, pas ceux qui sont intégrés dans le noyau. De plus, un nom de module peut ne pas correspondre au nom de système de fichiers qu'il fournit et un seul module peut fournir plusieurs systèmes de fichiers./proc/config.gz
du tout. 1) il n'est pas garanti d'exister, 2) Un nom de module peut ne pas correspondre au nom de système de fichiers qu'il fournit et un seul module peut fournir plusieurs systèmes de fichiers./proc/filesystems
répertorie tous les types de système de fichiers pris en charge par le noyau en cours d'exécution, ainsi que les attributs du système de fichiers,nodev
pour indiquer que ce système de fichiers n'est pas soutenu par un périphérique de bloc, par exemple.man 5 filesystems
donne des informations plus approfondies.la source
nodev
signifie la sortie lorsque vouscat /proc/filesystems
?cat /proc/filesystems
répertorie un tas de "nodev", évidemment des systèmes de fichiers spéciaux, plus ext2, ext3, ext4. Quand je regarde/lib/modules/3.11.6-1-ARCH/kernel/fs
dedans, j'en vois un certain nombre d'autres, comme "fats", "btrfs", "reiserfs" qui sont également des systèmes de fichiers sur disque réguliers, mais n'apparaissent pas dans la/proc/filesystem
liste. Qu'est-ce qui se passe avec ça?nodev
indique que le système de fichiers en question n'est pas un système de fichiers physique qui a besoin d'un périphérique de bloc pour vivre, mais plutôt un système de fichiers virtuel qui est soutenu par autre chose qu'un périphérique de bloc./proc/filesystems
affiche uniquement les systèmes de fichiers que le noyau a chargés - jusqu'à ce que vous insériez ces modules dans le noyau (ce qui se produit généralement automatiquement lorsque vous en avez besoin), le noyau ne peut pas prendre en charge ces systèmes de fichiers.Je crois que cela vous donnera ce que vous voulez:
Explication
Sur la base de ma meilleure compréhension:
cat /proc/filesystems | awk '{print $NF}' | sed '/^$/d'
vous donne tous les systèmes de fichiers pris en charge nativement par le noyau (comme sysfs) ainsi que ceux dont les modules du noyau sont actuellement chargésls -1 /lib/modules/$(uname -r)/kernel/fs
vous donne la liste des modules de système de fichiers disponibles pour votre noyausort -u
trie les résultats combinés des deux premières commandes avec les doublons supprimés (affiche uniquement les résultats uniques -u)J'apprends toujours linux, cela fonctionne sur Arch linux mais je pense qu'au moins ubuntu vous devrez peut-être changer le chemin
/lib/modules/$(uname -r)/kernel/fs
vers un répertoire différent approprié pour votre distribution.la source