Предположим, что на компьютере с 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)