Вопрос или проблема
На системе Linux я использовал следующую команду для подключения к общей папке Windows:
mount.cifs -o user=xxxx,pass=xxxx '//host/folder' /mnt
Указанная команда завершилась без каких-либо ошибок или вывода. Я мог видеть файлы в /mnt, что означает, что подключение прошло успешно. Затем я выполнил команду mount
, и первая строка вывода говорит:
[mntent]: строка 14 в /etc/mtab некорректна
И общая папка, которую я только что смонтировал, не отображается в выводе.
Затем я проверил содержимое /etc/mtab и обнаружил, что для только что смонтированной общей папки указано много опций, вот так:
В то время как на другой машине с Linux, работающей под тем же ОС (SLE 11SP3), я сделал то же самое (но используя другую общую папку на другой машине с Windows), содержимое в /etc/mtab очень простое, вот так (и команда mount правильно показывает смонтированную папку и не сообщает, что mtab некорректен):
//server/folder /mnt cifs rw 0 0
Таким образом, вопрос на первой машине:
1. почему так много опций для этой общей папки Windows в /etc/mtab?
2. почему команда mount говорит “mtab некорректен”?
Кто-то добавил много опций для этой общей папки, или эта запись была создана автоматически. Сообщение “mtab некорректен” означает, что одна или несколько опций некорректны.
Например, опция unc=\\...\abc abc
содержит пробел, и это значение следует заключить в кавычки. Опции разделяются запятыми, пробел в одном из значений завершит поле “опции”.
Вы можете попробовать заменить эту строку в mtab на:
//server/folder /mnt cifs rw,user=xxxx,pass=xxxx 0 0
Ответ или решение
Проблема, с которой вы столкнулись, связана с некорректным форматом файла /etc/mtab
. Давайте разберем ваши вопросы по порядку:
1. Почему для этого общего ресурса в /etc/mtab
так много параметров?
/etc/mtab
хранит информацию о текущих смонтированных файловых системах и их параметрах. В вашем случае, поскольку вы видите много опций для общего ресурса CIFS, это может быть результатом:
- Автоматической генерации: Некоторые утилиты или сценарии могут автоматически добавлять параметры при монтировании, что приводит к запутанности в формате.
- Вручную добавленные параметры: Кто-то мог ранее открыть этот файл и вручную добавить слишком много опций, которые не соответствуют формату.
Неправильные или сложные строки могут возникать, если параметры монтирования содержат пробелы или другие специальные символы, что в результате делает строку недоступной для корректной интерпретации. Например, в случае использования опций и значений, содержащих пробелы, такие строки должны быть помещены в кавычки.
2. Почему команда mount
сообщает, что "mtab is bad"?
Сообщение "mtab is bad"
указывает на то, что один или несколько параметров в /etc/mtab
некорректны. Это может быть связано с:
- Неправильным форматом строки, как объяснялось ранее. Например, опция с пробелами или другие неправильно отформатированные параметры могут привести к тому, что система не сможет корректно разобрать строку.
- Возможно, у вас также есть недопустимые символы в параметрах.
Рекомендации по решению проблемы
Вам следует скорректировать файл /etc/mtab
, чтобы он содержал только корректные записи. Попробуйте следующие шаги:
-
Резервное копирование текущего файла:
cp /etc/mtab /etc/mtab.bak
-
Редактирование файла:
Откройте файл/etc/mtab
в текстовом редакторе с правами суперпользователя и замените строку, соответствующую вашему CIFS-ресурсу, на более простую и корректную://server/folder /mnt cifs rw,user=xxxx,pass=xxxx 0 0
-
Проверка:
Сохраните изменения и выполните командуmount
, чтобы убедиться, что строка не вызывает больше ошибок и ресурс корректно отображается.
Обратите внимание, что хранение паролей в открытом виде в /etc/mtab
небезопасно. Рекомендуется рассмотреть возможность использования credentials
файла для передачи учетных данных:
Создайте файл, например, /root/.cifscredentials
с содержимым:
username=xxxx
password=xxxx
Отредактируйте права доступа к файлу:
chmod 600 /root/.cifscredentials
И используйте его при монтировании:
mount.cifs '//host/folder' /mnt -o credentials=/root/.cifscredentials
Это позволит повысить безопасность ваших учетных данных. Вы также можете проверить, не осталось ли других некорректных записей в /etc/mtab
, и при необходимости внести изменения в них.