Ситуация:Сервер с Gentoo Linux и Samba на нем. Есть около 15 ПК с Windows, один MacBook Pro и один ноутбук Samsung с Ubuntu. Домена нет, только рабочая группа, и сервер используется только для общих ресурсов Samba. В Ubuntu я использую gvfs для монтирования общих ресурсов Samba.
И проблема:Однажды пропало около половины каталогов, но только при просмотре на этом ноутбуке Ubuntu. Если я подключаюсь по ssh к серверу, я вижу пропавшие файлы/каталоги, а также я вижу пропавшие вещи с компьютеров win или mac.
Временное исправление:Когда я переименовываю некоторые из отсутствующих каталогов, даже если это один символ, отсутствующие каталоги снова появляются… даже без перезагрузки/обновления смонтированного gvfs общего ресурса. Если я немедленно переименовываю обратно в предыдущие каталоги/имена файлов, все ранее отсутствующие каталоги/файлы мгновенно снова исчезают.
Итак, поскольку эта проблема возникла снова примерно через месяц, мне бы пригодился совет, с чего начать проверку.
решение1
Я мог столкнуться с похожей проблемой, но только с отсутствием одного файла. Я подозреваю, что проблема в Linux Samba mount helper.
Можете ли вы провести следующие тесты на вашем клиенте?
cd [каталог-с-отсутствующими-подкаталогами] ls -al | grep [отсутствует имя] -> ничего не найдено (readdir сломан) ls -al [отсутствующее имя] -> выводит список элементов (stat working) -- используйте -d, когда [отсутствующее имя] является каталогом Чтобы узнать, скрывает ли ядро от вас эти файлы: размонтировать smb-share начать "tcpdump -p -i [ваша сетевая карта] -s0 -w net.dump host [ваш хост samba]" смонтировать акцию запустить тест "ls -al | grep [отсутствует имя]" остановить tcpdump Убедитесь, что имя файла есть в tcpdump, но не отображается в dirlisting. Поэтому: strings --encoding=b net.dump | grep [отсутствует имя] strings --encoding=l net.dump | grep [отсутствует имя]
Если имя указано хотя бы один раз, это будет означать, что сервер Samba отправляет весь список, но Linux отбрасывает некоторые записи.