CeBepHuk писал(а): ↑04 апр 2024, 20:30
maxim писал(а): ↑04 апр 2024, 06:51
смонтировать NAS как локальный ресурс
Подскажите пожалуйста как это сделать, а то я уже замучился после перезагрузки каждый раз удалять сетевой диск и заново добавлять, чтобы хотябы скорость была нормальной.
Вот моя заметка, писал для себя, но в принципе должно быть все понятно, если что, спрашивайте.
### Cifs (Windows SMB Shares)
Systemd может монтировать файловые системы с помощью **cifs** при загрузке или по запросу, как **autofs**. При этом такой способ монтирования более функционален.
Например, если монтировать с помощью **autofs**, задав сетевые настройки в параметрах **KDE**, не будет возможности упаковывать / распаковывать файлы архиватором из меню Dolphin из-за недостаточных прав.
*Определим общий ресурс и параметры точки подключения*:
Общий ресурс : `\\192.168.10.10\docs`
Точка монтирования (место, где хотим видеть сетевые файлы): `/mnt/docs` Логин и пароль пользователя: `username` - `password`
Домен Windows : `user_domain` (опция не обязательна, используется только при доступе к общим ресурсам в домене).
*Создадим точку монтирования, если её нет*:
```
# mkdir /mnt/docs
```
В каталоге `/etc/systemd/system` создадим юнит файлы `mount_point_path.mount` и `mount_point_path.automount`.
Имя юнит файла `mount_point_path` задаётся исходя из параметра `Where` секции [Mount] в самом юнит файле (содержимое юнит файлов чуть ниже), с заменой `/` на `-` исключая первый `/`:
```
Where=/mnt/docs
```
В нашем случае будет так:
```
# touch mnt-docs.mount
# touch mnt-docs.automount
```
Если в имени есть спецсимволы, пробелы или вы сомневаетесь в правильности задания имени, то лучше воспользоваться утилитой для генерации правильного имени. Воспользуйтесь нижеследующей командой указав ваш "mount_point_path":
```
# systemd-escape -p --suffix=mount "/mnt/docs"
mnt-docs.mount
```
#### Содержание файла `mnt-docs.mount`:
```
[Unit]
Description=cifs mount script
After=network-online.service
Requires=network-online.target
[Mount]
Where=/mnt/docs
What=//192.168.10.10/docs
Type=cifs
Options=username=username,password=password,workgroup=user_domain,rw
# логин, пароль и домен можно указать в отдельном файле .creds
# и указать до него путь.
# можно указать версию smb: vers=1.0
#Options=credentials=/home/user_home_folder/.creds,dir_mode=0777,file_mode=0777,iocharset=utf8
Options=username=username,password=password,workgroup=office,dir_mode=0777,file_mode=0777,iocharset=utf8
TimeoutSec=3
[Install]
WantedBy=multi-user.target
```
#### Содержание файла `mnt-docs.automount`:
```
[Unit]
Description=cifs mount script
Requires=network-online.target
After=network-online.service
[Automount]
Where=/mnt/docs
## Время неактивности перед отключением шары
TimeoutIdleSec=300
[Install]
WantedBy=multi-user.target
```
*Меняем владельца файлов*:
```
# chown root:root mnt-docs.automount mnt-docs.mount
# chmod 644 mnt-docs.automount mnt-docs.mount
```
*Включаем и запускаем юнит файлы*:
```
# systemctl enable mnt-docs.mount && systemctl enable mnt-docs.automount
# systemctl start mnt-docs.automount
### проверяем что нет ошибок
# systemctl status mnt-docs.automount
```