Как узнать, какие драйверы файловой системы скомпилированы в ядре linux?

В бегущей системе Linux, что такое переносимый (среди дистрибутивов Linux) способ узнать, какие файловые системы используют текущее ядро ​​для компиляции (не через модули)?

Рассмотрим, например, мое текущее ядро ​​Ubuntu x86_64: 3.11.0-24-generic #41-Ubuntu . Это, например, нет /proc/config.gz , что было бы моей первой мыслью иначе.

Причина, по которой мне интересно, это то, что я хочу (программно) построить среду спасения с текущим ядром и исходным ramdisk, который ядро ​​сможет загрузить / смонтировать.

Это так же просто, как сравнение /proc/filesystems с lsmod ?

Если да: У модулей всегда есть одно и то же имя (первый столбец из вывода lsmod ) в качестве имени файловой системы (последний столбец в /proc/filesystems )?

Возможно ли более современный способ, например /sys вместо /proc искать информацию?

Мой нынешний подход заключается в следующем. Может кто-то подтвердить, что это правильно, или посоветовать, как это сделать?

 for fscand in $(awk '{print $NF}' /proc/filesystems) do if test $(lsmod | grep -c -e '^'${fscand}'[^a-z0-9_-]') -eq 0 then candlist="${fscand} ${candlist}" fi done for fscand in $candlist do echo $fscand is compiled-in done 

  • Общий доступ к sysfs
  • Доступ к GPIO после загрузки ядра
  • В чем разница между / sys / block / sda1 / stat и / sys / block / xvda1 / stat?
  • Когда именно (и самое раннее) все блок-устройства были перечислены во время загрузки Linux?
  • Что такое securityfs?
  • Как узнать, какие алгоритмы декомпрессии скомпилированы в ядро ​​linux?
  • Можно ли получить индекс сетевого интерфейса не через / sys?
  • Как сопоставить / sys / bus / usb / devices с / dev / video *?
  • One Solution collect form web for “Как узнать, какие драйверы файловой системы скомпилированы в ядре linux?”

    Это так же просто, как сравнение /proc/filesystems с lsmod ?

    Нет:

     $ comm -31 <(lsmod | awk 'NR!=1 {print $1}' |sort) \ <(</proc/filesystems awk '{print $NF}' |sort) | fmt anon_inodefs autofs bdev cgroup cpuset debugfs devpts devtmpfs ext2 ext3 fuseblk fusectl hugetlbfs mqueue nfs4 pipefs proc pstore ramfs rootfs rpc_pipefs securityfs sockfs sysfs tmpfs 

    Многие из них не встроены в ядро ​​этой системы. autofs обеспечивается модулями, называемыми autofs4 а nfs4 – модулем nfs . Модуль ext4 предоставляет ext2 и ext3 а также ext4 ; fuse обеспечивает как fuse так и fusectl . rpc_pipefs (не путать с pipefs ) предоставляется sunrpc .

    Однако ваша система может загружать модуль для файловой системы по требованию: при запуске mount -t foo … , если foo не поддерживается тип файловой системы, Linux пытается загрузить модуль, который предоставляет эту файловую систему. Как это работает, ядро ​​обнаруживает, что foo не поддерживается файловой системой, и вызывает modprobe для загрузки модуля fs-foo . Механизм похож на pci:… aliases для загрузки драйвера для периферийного оборудования PCI по его идентификатору PCI и usb:… который похож на USB – см. Как назначить драйвер USB для устройства, а Debian не обнаруживает последовательную PCI-карту после перезагрузки для более подробных объяснений. fs-… module записываются в /lib/$(uname -r)/modules.alias . Этот файл создается при сборке ядра.

    В нормальных условиях вы можете использовать это, чтобы определить, какие файловые системы предоставляются модулями. Исключением файловые системы, которые не предоставляются модулями, встроены в ядро. Существуют редкие случаи, когда такой подход не работает, например, если вы изменили или modules.alias файл modules.alias или если файловая система предоставляется как модулем, так и в форме скомпилированного. Я не знаю, как справиться с этими случаями, не написав код ядра и загрузив его как модуль.

     for fs in $(</proc/filesystems awk '{print "fs-" $NF}' |sort); do /sbin/modprobe -n $fs 2>/dev/null || echo "$fs is built in" done 
    Interesting Posts

    Найти последние версии нескольких файлов в нескольких каталогах

    Почему cp / mv не может быть прервано до конца текущего файла

    Загрузка модуля ядра speedstep_centrino

    Выберите экран в сеансе отдельного экрана

    как сделать подсказку bash более читаемой в .bashrc – это делать с датой, но даже в целом

    Проблема с ssh && apt-get, нужна консультация

    В чем преимущество локальных архивов над файлами локалей, распространенными в каталогах?

    Прямой рекурсивный вывод сценария оболочки для каждого подкаталога, а не родительского каталога

    Включение или в шаблон grep

    Почему есть две записи на устройство на / dev / input / by-path

    Возможно ли переустановить Debian заново и сохранить всю разрез и данные из существующей установки?

    редактирование /etc/init.d/rc.local для запуска после процессов login tty

    Адвокатская кружка Firefox на Linux Mint 13

    Рекомендации по замене кластера GFS?

    Удаленный сервер ssh на каком-либо порту, кроме 22 без пароля

    Linux и Unix - лучшая ОС в мире.