Монтирование сетевого диска в Linux из сетевых каталогов на примере shared папки Windows

В сети 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
  • Посмотрели статус
  • Проверили включена ли автозагрузка(монтирование при загрузке)
  • Включили автозагрузку(монтирование при загрузке)
  • Смонтировали сетевой диск
  • Размонтировали сетевой диск
  • Отключили автозагрузку(монтирование при загрузке)

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *