У меня в одной сети с сервером есть в распоряжении NAS, разделы которого я хотел смонтировать на сервере. Сам того не ожидая столкнулся с трудностью, а именно тем, что во время загрузки сервера в случае ребута или простого включения разделы не могли быть примонтированы из-за того, что на этом этапе сеть еще не подключена. Нашел в сети некие танцы с бубном с переименованием файлов в rc6.d, но мне это не понравилось и я решил пойти по другому пути, на мой взгляд, более универсальному и простому.
Идея заключалась в том, чтобы создать скрипт и поместить его в init.d. Вот, что я сделал…
Исходные данные:
- Ось на сервере — Debian 6
- IP NAS-а — 192.168.0.113
- Расшаренные нужные папки: Files, Downloads и Public
1. Создадим папку и подпапки для монтирования. Наперед скажу, что согласен с мнением, что достаточно создать одну папку и примонтировать к ней весь нас не углубляясь в подпапки, но мне нужны быть только три папки из всех.
# mkdir /wd/ # mkdir /wd/Downloads/ # mkdir /wd/Files/ # mkdir /wd/Public/
2. Теперь разберемся как надо подключать сетевые диски. Поскольку разделы в сети расшарены, то входить будем под гостем (вход по логину и паролю так же возможен).
# mount -t cifs -o username=Guest //192.168.0.113/Downloads /wd/Downloads/ # mount -t cifs -o username=Guest //192.168.0.113/Files /wd/Files/ # mount -t cifs -o username=Guest //192.168.0.113/Public /wd/Public/
С подключением дисков понятно и во время теста разделы подключились успешно. Это был только тест, перейдем же к написанию скрипта.
3. Написание скрипта для монтирования разделов довольно прост. К сожалению, я не смогу подробно объяснить почему именно так написано, да и не буду настаивать в 100%-ой правильности этого скрипта. Я только начинающий и за баш еще не приступал. Сделал по аналогии с другими скриптами.
Скрипт будет называться, как папка, но его можно поменять на свое.
# nano /etc/init.d/wd
В созданный файл вставим следующий код:
#! /bin/sh ### BEGIN INIT INFO # Provides: wd # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Map network drives # Description: Map network drives ### END INIT INFO mount -t cifs -o username=Guest //192.168.0.113/Files /wd/Files/ mount -t cifs -o username=Guest //192.168.0.113/Download /wd/Download/ mount -t cifs -o username=Guest //192.168.0.113/Public /wd/Public/
Как видно, скрипт состоит со специальных тегов и команд, потому и получилось легко разобраться.
Сохраняем и закрываем.
4. Теперь нужно этот скрипт добавить в автозапуск. Тут тоже ничего сложного.
# update-rc.d wd defaults
5. И теперь последний и самый важный пункт. Перезагружаем сервер:
# reboot
И смотрим всё ли у нас получилось:
# mount
Если всё прошло хорошо, то в ответе консоли вы увидите приблизительно следующее, где внизу будет указано, что наши сетевые папки примонтированы:
/dev/sda1 on / type ext3 (rw,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) /dev/sda9 on /home type ext3 (rw) /dev/sda8 on /tmp type ext3 (rw) /dev/sda5 on /usr type ext3 (rw) /dev/sda6 on /var type ext3 (rw) /dev/sdb1 on /disk(3tb)/Backup type ext4 (rw,noexec,nosuid,nodev) /dev/sdb5 on /disk(3tb)/Torrents type ext4 (rw,noexec,nosuid,nodev) //192.168.0.113/Files on /wd/Files type cifs (rw,username=Guest) //192.168.0.113/Download on /wd/Download type cifs (rw,username=Guest) //192.168.0.113/Public on /wd/Public type cifs (rw,username=Guest)
Небольшими, но все же плюсами этого метода является:
- простое и легкое для новичков добавление новых команд в этот файл
- меньше танцев с бубном и легкое включение/выключение скрипта в автозапуске
- если нужно вручную примонтировать снова, то достаточно написать в терминале /etc/init.d/wd и скрипт сделает всё сам
Вот и всё. Удачи! 🙂