Размонтирование происходит не только при вызове двоичного файла umount, многие программы могут это сделать.См. Страницу руководства (man syscalls
) и выполните поиск umount.При этом вам нужно подключить соответствующий syscall
и посмотреть, кто его вызывает.Я не уверен, но, скорее всего, возможно отключить внутри ядра, вызвав соответствующий метод напрямую, поэтому функциональность может обойти интерфейс syscall, который в основном требуется для взаимодействия с пользователем.В этом случае вам придется использовать некоторую технику отладки на самом ядре, что, возможно, немного для обнаружения вашей проблемы!
Возможно, вам удастся использовать strace в уже запущенном процессе (man strace
),например, smbd, и посмотрите, вызывает ли этот процесс umount, что вполне возможно.
В любом случае, если вы можете перекомпилировать ядро из исходного кода, вы можете добавить некоторое сообщение printk
в функцию, которая используется для размонтированияустройство, чтобы увидеть, какой процесс это сделал (это мой подход для случаев, когда ничто иное, включая strace
, не помогает).