Причина, по которой вы не можете его найти, заключается в том, что по большей части его нет в ядре - он находится в служебной программе mount
пользователя, которая находится в пакете util-linux
.Если вы не зададите ему тип файловой системы или если вы дадите ему тип «any», mount
просто просматривает список всех файловых систем, о которых знает ядро, и пробует каждую из них по порядку, пока одна изони успешно монтируются (или возвращают ошибку, если ни один из них не делает).
Как узнать, о каких типах файловых систем знает ядро?Он читает файл /proc/filesystems
, который просматривает связанный список file_systems
в fs/filesystems.c
.Когда драйвер файловой системы загружен, он вызывает register_filesystem
в том же файле, чтобы добавить себя в этот список.Например, есть вызов register_filesystem
в init_ext2_fs
в fs/ext2/super.c
- init_ext2_fs
- это функция module-init для модуля ext2.
Некоторые файловые системы шумят и выдают ошибки при отладке ядраЖурнал, когда кто-то пытается смонтировать устройство с неверной файловой системой, поэтому, например, вы можете увидеть ошибки о «недопустимой файловой системе XFS», когда успешно монтирует файловую систему ext4, если mount
попыталсяСначала xfs.