Вопрос или проблема
Я пытался подключить мой WD MyBook следующим образом:
sudo mount.cifs //192.168.x.x /mnt -o guest
Но я получаю ошибку:
mount error(22): Invalid argument
Я пробовал обычные команды монтирования, но в конце концов это сработало для меня.
С именем пользователя и паролем:
sudo mount.cifs //192.168.x.x/Public /mount_location -o username=<name>,password=<pass>,vers=1.0,rw
Без имени пользователя и пароля:
sudo mount.cifs //192.168.x.x/Public /mount_location -o guest,vers=1.0,rw
Единственное объяснение, которое у меня есть, состоит в том, что версию необходимо указывать, если у вас старый WD MyBook, а также запрашивается доступ на чтение и запись.
Вы спрашиваете, почему требуется передача опции vers=1.0?
mount.cifs контролируется ядром Linux, и оно будет договариваться с сервером о наилучшем smb диалекте (vers) для использования между максимальным и минимальным значениями.
Начиная с версии 4.13.5 ядра Linux, максимум равен 3.xx, а минимум — 2.1.
Если сервер очень старый и не поддерживает SMBv2.1 или выше, вы получите ошибку неверного аргумента.
Единственный выход из этой ситуации — явно указать более низкий уровень диалекта, например, vers=1.0 или vers=2.0.
Я купил 4 WD 16TB MyBook [внешние диски] и как-то умудрился заставить один из них действительно подключиться и быть полезным.
Я не могу точно вспомнить, что именно сработало для того диска, чтобы подключить любой из других трех внешних дисков.
Я использую последнюю версию Ubuntu 24.03, принимая все обновления и улучшения. Я перестал использовать MS Windows 10 лет [или больше] назад, потому что каждый раз, когда происходило отключение питания, мне приходилось заново устанавливать Windows, что означало звонок на дальнюю дистанцию в Сиэтл из Филиппин. Ubuntu никогда не приходилось переустанавливать после отключения питания… моя текущая проблема раздражает, но не ‘смертельна’.
Ответ или решение
Конечно, давайте рассмотрим подробный процесс исправления ошибки монтирования сетевого диска Western Digital MyBook, появляющейся как «mount error(22): invalid argument». Эта ошибка может возникать по ряду причин, и мы разберем их более детально, чтобы вы могли справиться с этой проблемой.
Теория
Когда вы пытаетесь смонтировать сетевой диск с использованием команды mount.cifs
, необходимо учитывать несколько параметров, таких как версия используемого протокола SMB и другие опции монтирования. CIFS (Common Internet File System) — это протокол на базе SMB, используемый для доступа и обмена файлами с серверами.
Основная причина ошибки «invalid argument» заключается в несовместимости между версией протокола CIFS, используемой вашим клиентом на Ubuntu, и версией, поддерживаемой вашим устройством WD MyBook. Начиная с версии ядра Linux 4.13.5, по умолчанию используются старшие версии SMB (2.1 и выше). Если ваше устройство не поддерживает эти версии, то потребуется явно указать, какую именно версию использовать.
Пример
В вашем случае изначальная команда:
sudo mount.cifs //192.168.x.x /mnt -o guest
возвращала ошибку, так как клиентская сторона на Ubuntu пыталась установить соединение с использованием неподдерживаемой версии протокола SMB. В результате, проблема решена путем явного указания версии протокола в следующих командах:
sudo mount.cifs //192.168.x.x/Public /mount_location -o username=<name>,password=<pass>,vers=1.0,rw
или
sudo mount.cifs //192.168.x.x/Public /mount_location -o guest,vers=1.0,rw
Обе команды указывают, что необходимо использовать версию протокола SMB 1.0, которая поддерживается более старыми моделями WD MyBook.
Применение
Теперь рассмотрим, как можно применить эти знания на практике, чтобы надежно монтировать сетевые диски и избежать ошибок в будущем.
-
Проверка и настройка периферийных устройств: Убедитесь, что ваше устройство WD MyBook настроено для работы с CIFS/SMB, и убедитесь, что в настройках устройства включен общий доступ через SMB.
-
Установка нужной версии SMB: Если вы используете современные версии ОС Linux и столкнулись с проблемой совместимости, явно укажите нужную версию протокола во время монтирования. Для этого добавьте параметр
vers=1.0
или другую подходящую версию в команду. -
Создание скриптов автоматизации: Чтобы автоматизировать процесс монтирования, создайте скрипт, который будет выполняться при загрузке системы или при необходимости. Это можно сделать, добавив команду монтирования в файл
fstab
или создав cron-задание. -
Настройка безопасности: Убедитесь, что используемые учетные данные надежны. Если вы используете опцию
guest
, то доступ будет анонимным и без пароля, что может быть менее безопасно. Рассмотрите возможность использования учетных записей пользователей с паролями для повышения уровня безопасности. -
Использование диагностических инструментов: Для более детальной диагностики используйте утилиты
dmesg
иjournalctl
, чтобы получить дополнительную информацию о проблемах, возникающих во время монтирования.
Таким образом, решая вопросы совместимости и настроив автоматизацию процесса монтирования, вы сможете гораздо эффективнее использовать ваши сетевые устройства. Внимательно следите за изменениями в параметрах ядра и используемых протоколах, поскольку это поможет избежать аналогичных проблем в будущем.
Используя вышеуказанные рекомендации и подход, вы сможете эффективно управлять доступом к вашим сетевым дискам, обеспечивая при этом сохранность и безопасность данных.