Автоматическое монтирование сетевой папки в Ubuntu, AltLinux

Добавление скрипта в автозагрузку Linux

Сегодня оставлю заметку о том как монтировать локальные диски компьютера под управлением ОС Linux (будь то Ubuntu, AltLinux или другая). Так же научим тех кто не знал и напомним для тех кто это знает, как подключаются сетевые диски и как подключать их автоматически при старте системы.

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

В Windows данная функция доступна просто при перетаскивании сетевой папки на ярлык Мой компьютер, после этого вас попросят задать букву диска и на этом все. А как же это сделать в Linux ?

Монтирование сетевой папки из терминала

Предлагаю для начала попробовать смонтировать сетевой диск через терминал Linux. В качестве «подопытного» у меня Windows Server 2012 с расшаренным диском D, будем его монтировать.

Для монтирования запускаем терминал выполняем следующие команды:

Регистрируемся пользователем Root.

# sudo -i

Создаем каталог в который будем монтировать сетевой диск.

# mkdir /mnt/server2012_d

После того как каталог создан, поключаем диск.

# mount //192.168.1.167/d /mnt/server2012_d -o username=user,password=1,dir_mode=0777,file_mode=0777,iocharset=utf8

После этого содержимое диска D Вы увидите в папке /mnt/server2012_d

Теперь разберемся с параметрами данной команды…

    • //192.168.0.139/d – правильно расшаренная папка на сервере.
    • /mnt/server2003_d – локальная директория, куда примонтируется содержимое сетевой папки.
    • file_mode=0777,dir_mode=0777   (еще можно задать и как fmask=777,dmask=777  ) –  это разрешения на файлы и папки внутри примонтированной директории – в данном случае (0777) полные права на все.
    • username=user,password=1 соответсвенно имя пользователя и пароль для подключения к Windows server 2012. (Надеюсь Вы предварительно создали пользователя в Windows и дали ему права на диск D)
    • iocharset=utf8 — поддержка кодировки. Без этого параметра все папки и файлы название которых было написано кирилицей были нечитаемы.

      Автоматическое монтирование сетевой папки при загрузке Linux

Итак мы немного разобрались с ручным монтированием сетевой папки, давайте теперь займемся монтированием при загрузке компьютера. Вы конечно помните, что ОС Linux, при загрузке,  в качестве файла конфигурации для монтирования дисков использует файл /etc/fstab. То есть, чтобы научить ОС Linux автоматически монтировать сетевые диски, нужно добавить кое какие строчки в этот файл.

Аналогично регистрируемся в терминале пользователем Root.

# sudo -i

Открываем fstab в редакторе (предлагаю 2 варианта).

# nano /etc/fstab

или

# gedit /etc/fstab

Теперь добавляем в fstab следующую строку:

//192.168.1.167/d  /mnt/server2012_d  cifs _netdev,username=user,password=1,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0

(Вместо пробелов ставьте табуляцию)

Здесь:

    • _netdev — опция, указывающая, что данный ресурс является сетевым. Полезно, если при запуске системы будет отсутствовать сеть, тогда система не будет выдавать ошибку о невозможности примонтирования ресурсов.
    • cifs — признак сетевой папки Windows.

После перезагрузки содержимое сетевой папки появится в примонтированной директории (/mnt/server2003_d).


Возможные проблемы

1. Не монтируется сетевой диск при загрузке системы. (Проверено, актуально для AltLinux 7)

Если такое произошло, выполним команду …

# su dmesg  — (выводит сообщения о загрузке ядра ОС в память компьютера. А также сообщения о загрузке драйверов для соответствующего оборудования). Ищем сообщение про — CIFS и если видим сообщение типа:

CIFS VFS: Error connecting to socket. Aborting operation

CIFS VFS: cifs_mount failed w/return code = -101       
, то обычно это значит, что fstab отработал до подлючения сетевого интерфейса. Проверить можно так, запустить из под root команду:
# su mount -a

если сетевая папка смонтируется, то fstab в порядке и нужно проделать следующее...

1. Проверяем в настройках сетевого адаптера режим работы. Если установлен - NetworkManager, то меняем на ctcontrol
Пока нашел способ такой: создаем скрипт запуска команды
# su mount -a
даем пользователю права на запуск скрипта без логина и пароля и добавляем скрипт в автозагрузку при входе пользователя.

1. Создаем скрипт в любой папке, например /home:
# su gedit /home/mount.sh
с текстом:
#!/bin/sh
mount -a 
exit 0   

2. Добавляем пользователю возможность запускать созданный скрипт без ввода логина и пароля root. Для этого редактируем файл /etc/sudoers (дополнительно можно почитать man sudo)
# su nano /etc/sudoers
Добавляем строку, разрешающую пользователю выполнять без ввода пароля команду mount -a:
user ALL=NOPASSWD: /bin/mount -a

где, user = текущий пользователь
Теперь можно проверить и запустить скрипт просто мышкой, если сетевой диск монтируется мы на правильном пути.

3. После этого можно добавить наш скрипт в меню программ автозагрузки.

Перегружаемся и проверяем результат…


На этом пока все…Надеюсь этот пост будет полезен. Удачи!

Вы можете оставить комментарий, или ссылку на Ваш сайт.
бесплатно Black Mesa скачать торрент без регистрации

Оставить комментарий