В сети 2 машины. Одна из них винда с папкой shared-folder доступной по сети, вторая — Debian 10. Задача: расшарить на unix указанный каталог, сделав из него сетевой диск. Рассмотрим 3 способа:
- Монтирование сетевого диска из командной строки
- Монтирование сетевого диска указанного в /etc/fstab
- Монтирование сетевого диска из systemd
Все операции выполняем под root. В первую очередь в Linix создадим каталог куда будем монтировать /mnt/shared-folder и установим необходимые пакеты
1 2 | mkdir /mnt/shared-folder apt install cifs-utils -y |
Создадим файлик с паролем и логином к сетевому ресурсу и поставим на него нужные права от чужих глаз
1 2 | echo -e "username=youusername\npassword=12345" > /etc/samba/passwd chmod 0600 /etc/samba/passwd |
Монтирование сетевого диска из командной строки
1 2 3 | mount -t cifs //192.168.56.1/share-folder /mnt/share-folder -o noexec,noperm,iocharset=utf8,credentials=/etc/samba/passwd mount && df umount /mnt/share-folder |
Смонтировали — посмотрели что смонтировали — размонтировали
Монтирование сетевого диска указанного в /etc/fstab
В данном случае после ребута наш сетевой диск будет монтирован автоматически. Открываем /etc/fstab
1 | nano /etc/fstab |
Добавляем строку
1 | //192.168.56.1/share-folder /mnt/share-folder cifs noexec,noperm,iocharset=utf8,credentials=/etc/samba/passwd 0 0 |
Монтируем — смотрим — размонтируем:
1 2 3 | mount /mnt/share-folder mount && df umount /mnt/share-folder |
Ребут сервера: reboot
Смотрим: mount && df
Смонтировано. Пока оставим смонтированным и перейдем к следующему способу.
Монтирование сетевого диска из systemd
Посмотрим на этот файлик в каталоге /run/systemd/generator/
1 | cat /run/systemd/generator/mnt-share\\x2dfolder.mount |
Этот юнит нам автоматически сгенерировал systemd-fstab-generator из указанного нами в /etc/fstab
1 2 3 4 5 6 7 8 9 10 11 12 | # Automatically generated by systemd-fstab-generator [Unit] SourcePath=/etc/fstab Documentation=man:fstab(5) man:systemd-fstab-generator(8) Before=remote-fs.target [Mount] What=//192.168.56.1/share-folder Where=/mnt/share-folder Type=cifs Options=noexec,noperm,iocharset=utf8,credentials=/etc/samba/passwd |
Копируем его:
1 | cp "/run/systemd/generator/mnt-share\x2dfolder.mount" "/lib/systemd/system/mnt-share\x2dfolder.mount" |
Обратите внимание, что переименовывать юнит файл нельзя, генератор нам добавил хренов бекслеш и закодировал дефис в имени, что вызовет неказистость в будущих командах systemctl, но ничего не поделать. Единственный выход — использовать другое имя для каталога монтирования /mnt/share-folder Поэтому в командах либо заключаем имя в кавычки, либо беслешим бекслеш как тут:
1 | cp /run/systemd/generator/mnt-share\\x2dfolder.mount /lib/systemd/system/mnt-share\\x2dfolder.mount |
Открываем юнит и редактируем:
1 | nano /lib/systemd/system/mnt-share\\x2dfolder.mount |
Это нужно добавить внизу:
1 2 | [Install] WantedBy=remote-fs.target |
А это права:
1 | chmod 0600 /lib/systemd/system/mnt-share\\x2dfolder.mount |
Не забываем размонтировать диск и отредактировать fstab убрав строку монтирования
1 2 | umount /mnt/share-folder nano /etc/fstab |
Перезагружаем конфиги systemctl
1 | systemctl daemon-reload |
Готово, управляем сетевым диском из systemd
1 2 3 4 5 6 | systemctl status mnt-share\\x2dfolder.mount systemctl is-enabled mnt-share\\x2dfolder.mount systemctl enable mnt-share\\x2dfolder.mount systemctl start mnt-share\\x2dfolder.mount systemctl stop mnt-share\\x2dfolder.mount systemctl disable mnt-share\\x2dfolder.mount |
- Посмотрели статус
- Проверили включена ли автозагрузка(монтирование при загрузке)
- Включили автозагрузку(монтирование при загрузке)
- Смонтировали сетевой диск
- Размонтировали сетевой диск
- Отключили автозагрузку(монтирование при загрузке)