Posso elencare i filesystem che un kernel in esecuzione può supportare?


27

Sto cercando di rilevare quali filesystem può supportare un kernel. Idealmente in un piccolo elenco dei loro nomi, ma prenderò tutto quello che hai.

Nota che non intendo gli attuali filesystem in uso , ma solo quelli che l'attuale kernel potrebbe, teoricamente supportare direttamente (ovviamente, miccia potrebbe supportare un numero infinito di più).

Risposte:


12

Posso elencare i filesystem che un kernel in esecuzione può supportare?

Bene, la risposta /proc/filesystems è semplicemente sbagliata: riflette solo quelle FS che sono già state messe in uso, ma di solito c'è un modo in più:

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

Un'altra fonte è /proc/config.gzche potrebbe essere assente nella tua distribuzione (e mi chiedo sempre «perché ?!» nel caso).


2
La configurazione del kernel di Ubuntu è inclusa, in un posto diverso:/boot/config-$(uname -r)
Oli,

2
/proc/filesystemsnon è sbagliato , è solo incompleto .
scai,

3
@poige Secondo questa logica la tua risposta è terribilmente incompleta e anche sbagliata. /lib/modules/$(uname -r)/kernel/fsaiuterà solo con i filesystem che sono stati abilitati come moduli, non quelli che sono integrati nel kernel. Inoltre, il nome di un modulo potrebbe non corrispondere al nome del file system fornito e un singolo modulo può fornire più file system.
Patrick,

4
Questa risposta è fuorviante, se un modulo non è caricato, il kernel semplicemente non può caricare quel tipo di filesystem fino a quando non lo è. Affermare che il kernel può caricarlo non è corretto - non si sa se è possibile fino a quando non si carica correttamente il modulo. Non c'è nemmeno la garanzia che tu possa caricare quel modulo.
Chris Down,

3
@poige in realtà non sto trascurando /proc/config.gzaffatto. 1) non è garantito che esista, 2) Un nome di modulo potrebbe non corrispondere al nome del file system fornito e un singolo modulo può fornire più file system.
Patrick,

11

/proc/filesystemselenca tutti i tipi di filesystem supportati dal kernel in esecuzione, insieme agli attributi del filesystem, nodevper indicare che questo filesystem non è supportato da un dispositivo a blocchi, per esempio.

man 5 filesystems fornisce alcune informazioni più approfondite.


1
Cosa nodevsignifica l'output quando tu cat /proc/filesystems?
slm

Sul mio laptop Arch Linux, cat /proc/filesystemselenca un sacco di "nodev", ovviamente filesystem per scopi speciali, oltre a ext2, ext3, ext4. Quando guardo /lib/modules/3.11.6-1-ARCH/kernel/fs, vedo un numero di altri, come "grassi", "btrfs", "reiserfs" che sono anche normali filesystem su disco, ma non compaiono /proc/filesystemnell'elenco. Cosa succede con quello?
Bruce Ediger,

1
nodevindica che il filesystem in questione non è un filesystem fisico su cui ha bisogno un dispositivo a blocchi per vivere, ma piuttosto un filesystem virtuale supportato da qualcosa di diverso da un dispositivo a blocchi.
Jonathan Callen,

5
@BruceEdiger: /proc/filesystemsmostra solo i filesystem caricati dal kernel - fino a quando non si inseriscono quei moduli nel kernel (che di solito accade automaticamente quando ne hai bisogno), il kernel non può supportare quei filesystem.
Jonathan Callen,

0

Credo che questo ti darà quello che vuoi:

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

Spiegazione

Sulla base della mia migliore comprensione:

  • cat /proc/filesystems | awk '{print $NF}' | sed '/^$/d' ti dà tutti i filesystem che sono nativamente supportati dal kernel (come sysfs) insieme a quelli che hanno i loro moduli del kernel attualmente caricati
  • ls -1 /lib/modules/$(uname -r)/kernel/fs ti dà la lista dei moduli di filesystem disponibili disponibili per il tuo kernel
  • sort -u ordina i risultati combinati dei primi due comandi con i duplicati rimossi (mostra solo risultati unici -u)

Sto ancora imparando Linux, questo funziona su Arch Linux, ma credo che per almeno Ubuntu potresti aver bisogno di cambiare il percorso /lib/modules/$(uname -r)/kernel/fsin una directory diversa appropriata per la tua distribuzione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.