Получите доступ к символическим ссылкам Windows из Linux CIFS.

Вопрос или проблема

Я создал символическую ссылку на смонтированном диске (DOS-расшаривание) на компьютере с Windows 7 с IP-адресом 200.90.12.25. Символическая ссылка была создана с помощью команды mklink. Когда я пытаюсь получить доступ к ней из Linux (Raspberry PI) с помощью команды CIFS, я получаю ошибка монтирования(5): ошибка ввода/вывода. Команда CIFS и вывод dmesg приведены ниже.

Я не могу получить доступ к DOS-расшариванию из Linux из-за NETBEUI. Схема подключения показана ниже для справки.

введите описание изображения здесь

Команда CIFS

sudo mount -t cifs -o user=username,guest,vers=2.0 //200.90.12.25/DOSA /home/pi/myNAS/myShare

dmesg (также на клиенте Linux)

[1027098.510573] FS-Cache: Обнаружены дублирующие куки
[1027098.510583] FS-Cache: O-cookie c=c6d9fc6c [p=33027f2d fl=222 nc=2 na=1]
[1027098.510588] FS-Cache: O-cookie d=e8ce4e52 n=203d934d
[1027098.510592] FS-Cache: O-key=[8] '020001bd0a090c12'
[1027098.510606] FS-Cache: N-cookie c=435e27ec [p=33027f2d fl=2 nc=0 na=1]
[1027098.510611] FS-Cache: N-cookie d=e8ce4e52 n=9f19c9a0
[1027098.510614] FS-Cache: N-key=[8] '020001bd0a090c12'
[1027098.515854] CIFS VFS: cifs_mount не удался с кодом возврата = -5

Согласно предложенным комментариям, я попробовал следующие команды. Я получил ту же ошибка монтирования(5): ошибка ввода/вывода

sudo mount -t cifs -o username=username,guest,vers=2.1,mfsymlinks //200.90.12.25/DOSA /home/pi/myNAS/myShare

mount.cifs

sudo mount.cifs //200.90.12.25/DOSA /home/pi/myNAS/myShare -o username=username,guest,domain=domain,mfsymlinks 

Буду признателен за любое альтернативное решение.

Не могли бы вы немного уточнить ваш вопрос, вы сказали, что пытаетесь смонтировать символическую ссылку Windows? Эта ссылка была создана с помощью команды mklink на Windows? Я не уверен, возможно ли использовать файл .lnk в качестве точки монтирования, если вы это имеете в виду. Вы, возможно, должны рассмотреть что-то вроде того, что сказал вышеуказанный участник:

sudo mount -t cifs -o username=username,guest,vers=2.1,mfsymlinks //200.90.12.25/DOSA /home/pi/myNAS/myShare

Согласно справочной странице:

mfsymlinks Включить поддержку символических ссылок Minshall+French (см. http://wiki.samba.org/index.php/UNIX_Extensions#Minshall.2BFrench_symlinks). Эта опция игнорируется, если указана вместе с опцией sfu. Символические ссылки Minshall+French используются даже если сервер поддерживает UNIX-расширения CIFS.

Возможная альтернатива:
Я понимаю, что это может звучать как ужасное предложение, но если бы вы могли установить FTP-сервер на DOS-не, вы могли бы использовать это расширение fuse, чтобы смонтировать это как записываемую файловую систему. Я включил ссылку на страницу sourceforge ниже.

Curl FTP Filesystem

Посмотрите документацию Microsoft:
https://docs.microsoft.com/en-us/archive/blogs/josebda/windows-server-2012-r2-which-version-of-the-smb-protocol-smb-1-0-smb-2-0-smb-2-1-smb-3-0-or-smb-3-02-are-you-using

На Windows 7 вы должны использовать CIFS/SMB 2.1

Я предлагаю попробовать следующее:

sudo mount -t cifs -o username=username,guest,vers=2.1 //200.90.12.25/DOSA /home/pi/myNAS/myShare

Это похоже, работает для некоторых людей, как упомянуто здесь:
https://github.com/coreos/bugs/issues/2373

Ответ или решение

Для доступа к символической ссылке на общем диске Windows с операционной системы Linux (например, Raspberry Pi) через CIFS необходимо учитывать несколько важных аспектов, которые могут стать причиной возникновения ошибок, таких как mount error(5): Input/output error.

1. Проверка создания символической ссылки:
Сначала убедитесь, что символическая ссылка была создана корректно на Windows. Команда mklink должна была создать ссылку, указывающую на действительное расположение. Например:

mklink /D Ссылка Директория

Где Ссылка — это имя вашей символической ссылки, а Директория — путь к исходной директории.

2. Поддержка символических ссылок в CIFS:
При использовании CIFS для доступа к Windows-ресурсам, поддержка символических ссылок может осуществляться с учетом определенных опций. Ваша команда для монтирования переопределяет встроенные настройки через опцию mfsymlinks, что позволяет работать с символическими ссылками, созданными в Windows:

sudo mount -t cifs -o username=username,guest,vers=2.1,mfsymlinks //200.90.12.25/DOSA /home/pi/myNAS/myShare

Эта команда пытается смонтировать общий ресурс DOSA, обеспечивая поддержку символических ссылок.

3. Проверка версии протокола SMB:
Windows 7 поддерживает до версии SMB 2.1. Поэтому для подключения к ресурсам Windows необходимо установить соответствующую версию в настройках CIFS. Убедитесь, что вы используете правильную версию SMB, которая поддерживается вашей операционной системой. Если возможна модернизация до SMB 3.0, можно попробовать использовать ее, но в большинстве случаев версия 2.1 будет наиболее совместима.

4. Ошибки кэша:
Судя по вашим логам dmesg, могут возникать проблемы с кэшированием. Некоторые версии клиентских библиотек CIFS сталкиваются с частыми ошибками кэширования. Рекомендуется попробовать отключить кэширование, добавив опцию cache=none в команду монтирования:

sudo mount -t cifs -o username=username,guest,vers=2.1,mfsymlinks,cache=none //200.90.12.25/DOSA /home/pi/myNAS/myShare

5. Другие методы доступа:
Если доступ через CIFS по-прежнему вызывает ошибки, вы можете рассмотреть альтернатива, например, установку FTP-сервера на компьютере с Windows и использование модуля FUSE для монтирования FTP. Это будет немного сложнее, но может помочь обойти ограничения CIFS.

Подводя итоги:

  • Проверьте правильность создания символической ссылки на Windows.
  • Используйте опцию mfsymlinks, чтобы разрешить доступ к символическим ссылкам.
  • Убедитесь, что используете правильную версию SMB.
  • Рассмотрите возможность отключения кэширования, если возникают проблемы.
  • Как альтернативу, настройте FTP-сервер для получения доступа.

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

Оцените материал
Добавить комментарий

Капча загружается...