Bisakah saya daftar filesystem yang dapat didukung oleh kernel yang berjalan?


27

Saya mencoba mendeteksi filesystem apa yang dapat didukung oleh kernel. Idealnya dalam daftar kecil nama mereka tetapi saya akan mengambil apa pun yang Anda punya.

Perhatikan bahwa saya tidak bermaksud filesystem saat ini digunakan , hanya yang kernel saat ini dapat, secara teoritis mendukung secara langsung (jelas, sekering dapat mendukung angka tak terbatas lebih banyak).

Jawaban:


12

Bisakah saya daftar filesystem yang dapat didukung oleh kernel yang berjalan?

Yah, jawabannya /proc/filesystems salah - itu hanya mencerminkan FS yang sudah digunakan, tetapi biasanya ada cara lain:

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

Sumber lain adalah /proc/config.gzyang mungkin tidak ada di distro Anda (dan saya selalu bertanya-tanya «mengapa ?!» dalam kasus).


2
Konfigurasi kernel Ubuntu disertakan, hanya di tempat yang berbeda:/boot/config-$(uname -r)
Oli

2
/proc/filesystemstidak salah , hanya saja tidak lengkap .
scai

3
@ poige Dengan logika itu jawaban Anda sangat tidak lengkap dan salah juga. /lib/modules/$(uname -r)/kernel/fshanya akan membantu dengan filesystem yang telah diaktifkan sebagai modul, bukan yang dibangun ke dalam kernel. Selain itu nama modul mungkin tidak cocok dengan nama sistem file yang disediakannya, dan satu modul dapat menyediakan beberapa sistem file.
Patrick

4
Jawaban ini menyesatkan, jika modul tidak dimuat, kernel tidak bisa memuat tipe sistem file itu sampai itu. Menyatakan bahwa kernel dapat memuatnya tidak benar - Anda tidak tahu apakah bisa sampai Anda berhasil memuat modul. Bahkan tidak ada jaminan bahwa Anda dapat memuat modul itu.
Chris Down

3
@poige sebenarnya saya tidak mengabaikan /proc/config.gzsama sekali. 1) tidak dijamin ada, 2) Nama modul mungkin tidak cocok dengan nama sistem berkas yang disediakannya, dan satu modul dapat menyediakan banyak sistem berkas.
Patrick

11

/proc/filesystemsmencantumkan semua tipe sistem file yang didukung oleh kernel yang berjalan, bersama dengan atribut sistem file, nodevuntuk menunjukkan bahwa sistem file ini tidak didukung oleh perangkat blok, misalnya.

man 5 filesystems memberikan beberapa informasi yang lebih mendalam.


1
Apa nodevartinya dalam output saat Anda cat /proc/filesystems?
slm

Pada laptop Arch linux saya, cat /proc/filesystemsdaftar sekelompok "nodev", sistem file yang jelas-jelas bertujuan khusus, plus ext2, ext3, ext4. Ketika saya melihat ke dalam /lib/modules/3.11.6-1-ARCH/kernel/fs, saya melihat sejumlah orang lain, seperti "lemak", "btrfs", "reiserfs" yang juga merupakan sistem file pada disk biasa, tetapi tidak muncul dalam /proc/filesystemdaftar. Ada apa dengan itu?
Bruce Ediger

1
nodevmenunjukkan bahwa sistem file yang dimaksud bukan sistem file fisik yang memerlukan perangkat blok untuk hidup, melainkan sistem file virtual yang didukung oleh sesuatu selain perangkat blok.
Jonathan Callen

5
@BruceEdiger: /proc/filesystemshanya menampilkan filesystem yang telah dimuat oleh kernel - sampai Anda memasukkan modul-modul tersebut ke dalam kernel (yang biasanya terjadi secara otomatis saat Anda membutuhkannya), kernel tidak dapat mendukung filesystem tersebut.
Jonathan Callen

0

Saya percaya ini akan memberi Anda apa yang Anda inginkan:

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

Penjelasan

Berdasarkan pemahaman terbaik saya:

  • cat /proc/filesystems | awk '{print $NF}' | sed '/^$/d' memberi Anda semua sistem file yang secara asli didukung oleh kernel (seperti sysfs) bersama dengan yang memiliki modul kernel saat ini dimuat
  • ls -1 /lib/modules/$(uname -r)/kernel/fs memberi Anda daftar modul sistem file yang tersedia untuk kernel Anda
  • sort -u mengurutkan hasil gabungan dari dua perintah pertama dengan duplikat dihapus (hanya tampilkan hasil unik -u)

Saya masih belajar linux, ini bekerja di Arch linux tetapi saya percaya untuk setidaknya ubuntu Anda mungkin perlu mengubah jalur /lib/modules/$(uname -r)/kernel/fske direktori berbeda yang sesuai untuk distribusi Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.