В сети 2 машины. Одна из них винда с папкой shared-folder доступной по сети, вторая — Debian 10. Задача: расшарить на unix указанный каталог, сделав из него сетевой диск. Рассмотрим 3 способа:
- Монтирование сетевого диска из командной строки
- Монтирование сетевого диска указанного в /etc/fstab
- Монтирование сетевого диска из systemd
Все операции выполняем под root. В первую очередь в Linix создадим каталог куда будем монтировать /mnt/shared-folder и установим необходимые пакеты
mkdir /mnt/shared-folder apt install cifs-utils -y
Создадим файлик с паролем и логином к сетевому ресурсу и поставим на него нужные права от чужих глаз
echo -e "username=youusername\npassword=12345" > /etc/samba/passwd chmod 0600 /etc/samba/passwd
Монтирование сетевого диска из командной строки
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
nano /etc/fstab
Добавляем строку
//192.168.56.1/share-folder /mnt/share-folder cifs noexec,noperm,iocharset=utf8,credentials=/etc/samba/passwd 0 0
Монтируем — смотрим — размонтируем:
mount /mnt/share-folder mount && df umount /mnt/share-folder
Ребут сервера: reboot
Смотрим: mount && df
Смонтировано. Пока оставим смонтированным и перейдем к следующему способу.
Монтирование сетевого диска из systemd
Посмотрим на этот файлик в каталоге /run/systemd/generator/
cat /run/systemd/generator/mnt-share\\x2dfolder.mount
Этот юнит нам автоматически сгенерировал systemd-fstab-generator из указанного нами в /etc/fstab
# 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
Копируем его:
cp "/run/systemd/generator/mnt-share\x2dfolder.mount" "/lib/systemd/system/mnt-share\x2dfolder.mount"
Обратите внимание, что переименовывать юнит файл нельзя, генератор нам добавил хренов бекслеш и закодировал дефис в имени, что вызовет неказистость в будущих командах systemctl, но ничего не поделать. Единственный выход — использовать другое имя для каталога монтирования /mnt/share-folder Поэтому в командах либо заключаем имя в кавычки, либо беслешим бекслеш как тут:
cp /run/systemd/generator/mnt-share\\x2dfolder.mount /lib/systemd/system/mnt-share\\x2dfolder.mount
Открываем юнит и редактируем:
nano /lib/systemd/system/mnt-share\\x2dfolder.mount
Это нужно добавить внизу:
[Install] WantedBy=remote-fs.target
А это права:
chmod 0600 /lib/systemd/system/mnt-share\\x2dfolder.mount
Не забываем размонтировать диск и отредактировать fstab убрав строку монтирования
umount /mnt/share-folder nano /etc/fstab
Перезагружаем конфиги systemctl
systemctl daemon-reload
Готово, управляем сетевым диском из systemd
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
- Посмотрели статус
- Проверили включена ли автозагрузка(монтирование при загрузке)
- Включили автозагрузку(монтирование при загрузке)
- Смонтировали сетевой диск
- Размонтировали сетевой диск
- Отключили автозагрузку(монтирование при загрузке)