Próbuję wykryć, jakie systemy plików obsługuje jądro. Idealnie na małej liście ich nazw, ale wezmę wszystko, co masz.
Zauważ, że nie mam na myśli aktualnie używanych systemów plików , tylko te, które bieżące jądro mogłoby teoretycznie obsługiwać bezpośrednio (oczywiście bezpiecznik mógłby obsługiwać nieskończone liczby więcej).
linux
filesystems
kernel
Oli
źródło
źródło
/boot/config-$(uname -r)
/proc/filesystems
nie jest źle , jest po prostu niekompletny ./lib/modules/$(uname -r)/kernel/fs
pomoże tylko w systemach plików, które zostały włączone jako moduły, a nie w tych wbudowanych w jądro. Ponadto nazwa modułu może nie zgadzać się z podaną nazwą systemu plików, a pojedynczy moduł może udostępniać wiele systemów plików./proc/config.gz
. 1) nie ma gwarancji, że istnieje, 2) Nazwa modułu może nie pasować do podanej przez niego nazwy systemu plików, a pojedynczy moduł może udostępniać wiele systemów plików./proc/filesystems
wyświetla listę wszystkich typów systemów plików obsługiwanych przez działające jądro, wraz z atrybutami systemu plików,nodev
aby wskazać, że na przykład ten system plików nie jest wspierany przez urządzenie blokowe.man 5 filesystems
daje bardziej szczegółowe informacje.źródło
nodev
oznacza w danych wyjściowych, gdy tycat /proc/filesystems
?cat /proc/filesystems
wymieniono kilka „nodev”, oczywiście systemów plików specjalnego przeznaczenia, a także ext2, ext3, ext4. Kiedy zaglądam do/lib/modules/3.11.6-1-ARCH/kernel/fs
środka, widzę wiele innych, takich jak „tłuszcze”, „btrfs”, „reiserfs”, które są również zwykłymi systemami plików na dysku, ale nie pojawiają się na/proc/filesystem
liście. O co chodzi?nodev
wskazuje, że dany system plików nie jest fizycznym systemem plików, który wymaga urządzenia blokowego, ale wirtualnym systemem plików, który jest wspierany przez coś innego niż urządzenie blokowe./proc/filesystems
pokazuje tylko systemy plików załadowane przez jądro - dopóki nie wstawisz tych modułów do jądra (co zwykle dzieje się automatycznie, gdy ich potrzebujesz), jądro nie może obsługiwać tych systemów plików.Wierzę, że to da ci to, czego chcesz:
Wyjaśnienie
Na podstawie mojego najlepszego zrozumienia:
cat /proc/filesystems | awk '{print $NF}' | sed '/^$/d'
daje ci wszystkie systemy plików, które są natywnie obsługiwane przez jądro (jak sysfs) wraz z tymi, które mają aktualnie załadowane moduły jądrals -1 /lib/modules/$(uname -r)/kernel/fs
wyświetla listę dostępnych modułów systemu plików dostępnych dla twojego jądrasort -u
sortuje połączone wyniki pierwszych dwóch poleceń z usuniętymi duplikatami (pokazują tylko unikalne wyniki -u)Wciąż uczę się Linuksa, to działa na Arch Linux, ale wierzę, że przynajmniej dla Ubuntu może zajść potrzeba zmiany ścieżki
/lib/modules/$(uname -r)/kernel/fs
do innego katalogu odpowiedniego dla twojej dystrybucji.źródło