Предположим, что на компьютере с 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
- Если подключения диска не происходит, то можно посмотреть коды возвращаемых ошибок с помощью команды
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
\Parameters\IRPStackSize (для XP, 2000, NT) или .../LanmanServer\Parameters\Size и ...\Session Manager\Memory Management\LargeSystemCache (для 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, то ресурс доступен и на чтение, и на запись.
Скорее всего проблема в несовпаденииuidиgidна клиенте и на сервере. Исправляется добавлением в параметры запуска командыmountзначенийnounix, а такжеuidиgid, которые соответствуют вашему пользователю на сервере — "mount //server /client -o username=someone,gid=1000,uid=1000,nounix,file_mode=0777,dir_mode=0777". (http://ubuntuforums.org/showthread.php?t=1310273)