Вопрос или проблема
Я пытаюсь смонтировать две подпапки с одинаковым именем общего доступа, но не могу сделать это работающим.
# Смонтировать два разных подпапки:
# $server и $share одинаковые - подпапки разные:
$ subfolderA=a/b/c
$ subfolderB=x/y/z
$ mount -t cifs //$server/$share/$subfolderA /mnt/dirA
$ mount -t cifs //$server/$share/$subfolderB /mnt/dirB
# Перейдите по директориям - я вижу один и тот же файл в обеих директориях (должен быть только в dirA)
$ find /mnt/dir[AB] -name fda.txt -ls
707409139 1024 -rwxr-xr-x 1 root root 15 May 28 08:50 /mnt/dirA/fda.txt
707409139 1024 -rwxr-xr-x 1 root root 15 May 28 08:50 /mnt/dirB/fda.txt
# Смонтируйте в обратном порядке:
$ umount /mnt/dirA
$ umount /mnt/dirB
$ mount -t cifs //$server/$share/$subfolderB /mnt/dirB
$ mount -t cifs //$server/$share/$subfolderA /mnt/dirA
# Перейдите по директориям - я вообще не вижу файл fda.txt
$ find /mnt/dir[AB] -name fda.txt -ls
<nothing>
Я проверил свой доступ к разным подпапкам, используя smbclient, и он дает мне ожидаемые результаты.
Причина для создания двух отдельных монтирований вместо одного в том, что я не имею доступа к самому общему ресурсу, а только к подпапкам.
Чтобы глубже понять проблему, попробуйте смонтировать с опцией --verbose
, т.е.
mount -t cifs //$server/$share/$subfolderB /mnt/dirB --verbose
Возможные причины проблемы могут быть неправильные номера индексных узлов или кэширование. В качестве обходного пути для проблемы с номерами индексных узлов попробуйте эти опции (одну из них):
--serverino
--noserverino
Также попробуйте разные методы кэширования (один из них):
--cache=none
--cache=strict
--cache=loose
Дополнительно читайте mount.cifs(8).
Ответ или решение
Понятие и решение проблемы монтирования подкаталогов CIFS из Linux
Монтирование подкаталогов CIFS (Common Internet File System) в Linux может показаться простой задачей, однако, как вы уже заметили, это может привести к неожиданным последствиям. Рассмотрим проблему подробнее и предложим возможные решения.
Описание проблемы
Вы пытаетесь смонтировать два различных подкаталога, находящихся на одном общем ресурсе, но при этом наблюдаете, что содержимое обоих каталогов идентично. Кроме того, при замене порядка монтирования каталагов вы не можете найти файлы в смонтированных директориях. Эта проблема может быть связана с ошибками в номерах индексов inode или кэшированием.
Шаги по монтированию подкаталогов
-
Проверка доступа: Первое, что вы сделали правильно – это проверили доступ к подкаталогам с помощью
smbclient
. Это подтверждает, что вы имеете доступ к необходимым ресурсам, и ошибка не в правах. -
Опции монтирования: Попробуйте использовать следующие опции при монтировании:
mount -t cifs //$server/$share/$subfolderA /mnt/dirA --verbose mount -t cifs //$server/$share/$subfolderB /mnt/dirB --verbose
Опция
--verbose
поможет вам определить, где может возникать ошибка. -
Работа с inode: Если проблема вызвана неправильными номерами inode, вы можете попробовать одну из следующих опций:
mount -t cifs //$server/$share/$subfolderA /mnt/dirA --serverino mount -t cifs //$server/$share/$subfolderB /mnt/dirB --noserverino
Эти опции помогут избежать проблем с индификацией файлов в различных монтируемых директориях.
-
Настройки кэширования: Попробуйте поэкспериментировать с методами кэширования:
mount -t cifs //$server/$share/$subfolderA /mnt/dirA --cache=none mount -t cifs //$server/$share/$subfolderB /mnt/dirB --cache=strict
Использование разных опций кэширования поможет выявить, не является ли проблема следствием кэширования данных.
-
Документация: Не забывайте о документации. Полная информация о настройках и параметрах монтирования доступна в man-странице mount.cifs, что может дать вам дополнительные идеи о возможных причинах и решениях вашей проблемы.
Заключение
Если приведенные выше шаги не приводят к решению, рекомендуется оценить структуру файлов и каталогов на сервере, а также проверить возможные ограничения на его стороне. Каждый вариант монтирования может требовать индивидуального подхода в зависимости от конфигурации серверов и используемых протоколов.
Помните, что правильная настройка и понимание монтирования подкаталогов CIFS является ключевым аспектом работы с сетевыми ресурсами в Linux. Надеюсь, эти рекомендации помогут вам успешно решить проблему.