Ubuntu монтирование сетевого диска

Ubuntu монтирование сетевого диска

Файловая система CIFS, встроенная в ядро Linux обычно предпочтительный метод для монтирования расшаренных сетевых ресурсов SMB/CIFS. CIFS VFS является виртуальной файловой системой для Linux, обеспечивающей доступ к серверам и устройствам хранения, совместимым с версией 1.0 спецификации CIFS SNIA или поздней. Популярные серверы, такие как Самба, Windows 2000, Windows XP и многие другие поддерживают CIFS по умолчанию.

VFS CIFS оказывает некоторую поддержку для более старых серверов, основанных на более примитивном SMB (Server Message Block) протоколе (Вы также можете использовать файловую систему Linux smbfs в качестве альтернативы для доступа к ним). CIFS VFS была разработана, чтобы использовать продвинутые сетевые особенности файловой системы, такие как захват, Unicode (передовая интернационализация), hardlinks, dfs (иерархическое, реплицируемое пространство имени), распределенное кэширование и использует родные имена TCP (а не RFC1001, названия Netbios). В отличие от некоторых других сетевых файловых систем, вся ключевая сетевая функция включая идентификацию обеспечена в ядре, начиная с версии 2.5.42.

Файловая система CIFS поддерживается набором утилит пространства пользователя. Тот пакет инструментов называют CIFS-utils. Эти инструменты были первоначально частью пакета Samba, но по некоторым причинам их выделили в отдельный проект.

Для работы (монтирования) с расшаренными сетевыми дисками SMB/CIFS (Windows или Samba) необходимо установить пакет cifs-utils, который присутствует в репозиториях практически всех дистрибутивов Linux. Далее будем рассматривать только Ubuntu.

Теперь можно монтировать расшаренные сетевые ресурсы:

  • //192.168.1.107/share1/ – IP адрес или сетевое имя и имя расшаренного ресурса (папки)
  • /mnt/shares/share1/ – точка монтирования
  • -o users=user1,password=user1 – имя пользователя и пароль для доступа к общему ресурсу
  • iocharset=utf8 — кодировка по умолчанию
  • file_mod и dir_mod — права доступа к файлам и папкам в расшаренном ресурсе

Для монтирования публичных сетевых ресурсов имя пользователя и пароль не задаются:

Для того, чтобы расшаренный сетевой ресурс (папка) монтировался при загрузке системы, необходимо в конфигурационный файл /etc/fstab добавить строчку:

Иногда нужно быстро подмонтировать к Linux сетевую шару Windows. Делается это очень просто одной командой в консоли с помощью mount -t cifs.

10.1.5.43 адрес шары
/mnt/documents точка монтирования
user1 пользователь с доступом к шаре
pass123 пароль пользователя

Если получаете ошибку примерно такого содержания:

Установите пакет cifs-utils:

Debian/Ubuntu # apt-get install -y cifs-utils
Centos/RHEL # yum install -y cifs-utils

После этого должно монтироваться нормально, если нет других ошибок.

Чтобы подмонтировать виндовую шару навечно, надо отредактировать fstab:

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

Онлайн курс по Linux

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

11 комментариев

Спасибо тебе большое , добрый человек, за правильную команду mount -t cifs //10.1.5.43/documents /mnt/documents -o user=user1,password=pass123 .

Читайте также:  В соответствии со списком

При попытке использовать опции -t и -o получаем отлуп — только рут может использовать данные ключи.
Как обойти это при монтировании смб-шары пользователем с обычными правами?

Внесу, пожалуй, свои 5 копеек:

1) Монтирование шары через fstab — не по феншую, ввиду наличия проблем с загрузкой, в случае недоступности шары. Давно уже придуманы systemd mount-unit’ы — они позволяют монтироваться автоматически, при обращении к шаре или, если это требуется, монтироваться после инициализации сети (aka network-online.target).

2) Замечу так же, что для получения нормальной скорости, при переходе на 4-ю версию самбы, требуется фиксить версии используемых протоколов. В противном случае получим значительный просад по скорости. Конфиги при этом требуется править как на сервере, так и на клиенте указывая минимальную версию протокола — SMB2. Примерно так:

server min protocol = SMB2
server max protocol = SMB3
client min protocol = SMB2
client max protocol = SMB3
min protocol = SMB2
max protocol = SMB3
client ipc min protocol = SMB2

В случае монтирования из консоли, так же лучше указать это в опциях, пример:

sudo mount
-t cifs //10.1.5.43/documents /mnt/documents
-o u >

где `vers=3.0` — версия протокола

Спасибо за содержательное и полезное дополнение. Сразу ответили на вопрос, который давно у меня зрел в голове, но никак не доходили руки уточнить. Как явно указать использовать определенную версию протокола smb.

Вы уверены что надо так: \10.1.5.43documents ….
а не так: //10.1.5.43/documents

Пробовал у себя как у Вас в примере написано, не заработало, повернул слеши и шара подцепилась.
Правда у меня не CentOS, а Mageia, но fstab думаю и в Африке fstab :))

Спасибо за замечание. Вы правы, слеши должны быть в другую сторону, как и в команде на ручное монтирование. Это была ошибка.

Добрый день! Подскажите пож-та, может сталкивались с такой проблемой и решили её: Есть Ubuntu 18.04 Gui gnome, введена в домен AD, логинятся доменные пользователи. Доступ залогиненных доменных пользователей к обменной папке на win2008r2 производится следующим образом: через nautilus-> другие места-> smb://server/obmen. В Nautilus появляется примонтированный obmen. Нажимаю ПКМ и добавляю в закладки(закладка останется в списке постоянно). Но при интенсивной работе c файлами в обменнике, он периодически отваливается с одной из двух ошибок: 1. Не удалось показать «server-11(smb)». Неизвестный тип файла 2. Ой, что-то пошло не так. Недостаточно прав для получения доступа к запрошенному адресу. Если выполнить smbclient -L server, то папку obmen видно. К папкам на других серверах доступ остаётся. В smb.conf вписал client max protocol = NT1. Есть подозрение, что проблема кроется в libreoffice, который не совсем корректно работает с файлами по сети. Как можно примонтировать сетевую папку скриптом в автозагрузке доменного пользователя, чтобы была сквозная доменная авторизация(пароли доменных пользователей меняются раз два месяца) т.к. нет возможности явно указать пароли в fstab?

Читайте также:  Gal rs 1010l t t2 прошивка

Думаю, что тут стоит копать проблему и разбираться, почему сетевой диск отваливается. По автозагрузке ничего не скажу, я такой кейс не эксплуатировал ни разу.

Команда для автоматического монтирования не сработала. Добавил в /etc/fstab. Подскажите в чем может быть проблема. Может какие-то логи можно посмотреть?

В логах должна отразиться ошибка. Если через fstab совсем не получается и не понятно почему, а через консоль монтирует, то можно команду для монтирования через консоль просто добавить в /etc/rc.local Эффект будет тот же самый.

слеши в начале строчки разверни в другую сторону, по линуксовому =)

30 октября 2009 г.

Подключение сетевого диска в Ubuntu

Предположим, что на компьютере с IP адресом 192.168.0.1 открыта на доступ папка linux и нам нужно подключить ее в Ubuntu, чтобы получить к ней доступ, как к любой другой папке на диске.

    Подключение сетевого диска вручную
    После выполнения следующих команд содержимое сетевой папки //192.168.0.1/linux будет доступно пользователю в директории /media/sharename на локальном компьютере:

    sudo mkdir /media/sharename
    sudo mount //192.168.0.1/linux /media/sharename/ -o username=myusername,password=mypassword

Почему-то у меня при попытке подключиться к расшаренным windows-папкам пришлось указывать и username и password, даже для дисков, которые расшарены для всех. Если их вообще не писать, то попытка монтировки происходила под пользователем root, и mount возвращал ошибку -13 (permission denied), а если указать только имя пользователя — высвечивал приглашение ввести пароль доступа к папке.

Подключение сетевого диска вручную на чтение/запись для всех пользователей

sudo mkdir /media/sharename
sudo mount //192.168.0.1/linux /media/sharename/ -o username=myusername,password=mypassword,dmask=777,fmask=777

Подключение сетевого диска на этапе загрузки через fstab

sudo mkdir /media/sharename
sudo cp /etc/fstab /etc/fstab_backup

Создать файл /root/.smbcredentials и добавить следующие строки:
username=myusername
password=mypassword

Сделать файл /root/.smbcredentials недоступным для пользователей, а для root — только на чтение:
sudo chmod 400 /root/.smbcredentials

Читайте также:  Винамп не воспроизводит видео

В файл /etc/fstab добавить следующие строки:
//192.168.0.1/linux /media/sharename smbfs credentials=/root/.smbcredentials 0 0

Для доступа на чтение/запись для всех:
//192.168.0.1/linux /media/sharename smbfs credentials=/root/.smbcredentials,dmask=777,fmask=777 0 0

На данный момент (в Ubuntu 9.10) тип smbfs устарел, поэтому нужно использовать тип cifs . Для типа cifs вместо dmask и fmask нужно указывать параметры dir_mode и file_mode , причем числовые значения этих параметров должны начинаться с нуля — " dir_mode=0777,file_mode=0777 ".

Подключение дисков из fstab без перезагрузки операционой системы
sudo mount -a

  • Синтаксис:
    Для smbfs — //192.168.1.1/foldername
    Для nfs — 192.168.1.1:/foldername
  • Дополнения:

    1. Если подключения диска не происходит, то можно посмотреть коды возвращаемых ошибок с помощью команды dmesg , а еще лучше запустить mount с помощью утилиты strace — sudo strace mount . .

    Если mount возвращает ошибку (или вообще происходит нечно непонятное), то в первую очередь убедитесь, что у вас установлен mount , соответствующий типу файловой системы, которую вы хотите подключить. Например, для nfs в системе должен быть установлен mount.nfs , для smbfs — mount.smbfs , для cifs — mount.cifs и т.д. В качестве иллюстрации проблемы можно привести пример с cifs : при отсутствующем mount.cifs можно вполне успешно примонтировать cifs-диск используя параметры " username=. password=. ", но при этом попытка использования credential-файлов, будет заканчиваться ошибкой (http://ubuntuforums.org/archive/index.php/t-79612.html).

    Ошибка монтирования " mount error 12 = Cannot allocate memory " при попытке подключения к расшаренной папке Windows.

    Возможная причина — не хватает памяти на сервере (то есть, в Windows), а не на клиенте. В этом случае, могут помочь изменения в реестре Windows: . LanmanServer
    ParametersIRPStackSize (для XP, 2000, NT) или . /LanmanServerParametersSize и . Session ManagerMemory ManagementLargeSystemCache (для Windows 7).

    Ошибка монтирования " mount error 5 = Input/output error ". В логах dmesg сообщается об ошибке "CIFS VFS: cifs_read_super: get root inode failed".

    Если при этом упоминается "Malformed FILE_UNIX_BASIC_INFO response", то возможно поможет добавление nounix в параметры вызова команды mount .

    Еще одна возможная причина — проблемы с правами доступа к расшаренной папке. У меня такая ошибка возникла, когда на папку, которую, я хотел примонтировать, в числе прочих были установлены права "Everyone — Access denied". После корректировки прав доступа всё успешно примонтировалось.

    Проблема монтирования CIFS диска на Ubuntu 9.10 — ресурс расшарен на другой unix-системе и успешно монтируется, но доступен только на чтение, хотя, если подключиться к этому ресурсу с помощью smbclient , то ресурс доступен и на чтение, и на запись.

    Ссылка на основную публикацию
    Adblock
    detector