/etc/mtab имеет проблемы при монтировании CIFS-ресурса.

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

На системе 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, чтобы он содержал только корректные записи. Попробуйте следующие шаги:

  1. Резервное копирование текущего файла:

    cp /etc/mtab /etc/mtab.bak
  2. Редактирование файла:
    Откройте файл /etc/mtab в текстовом редакторе с правами суперпользователя и замените строку, соответствующую вашему CIFS-ресурсу, на более простую и корректную:

    //server/folder /mnt cifs rw,user=xxxx,pass=xxxx 0 0
  3. Проверка:
    Сохраните изменения и выполните команду 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, и при необходимости внести изменения в них.

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

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