Autofs вместо fstab

Существует неэффективный способ смонтировать внешнее хранилище (локальное или удаленное). Привычка, от которой трудно избавиться: fstab. Давайте попробуем autofs.

Проблема с fstab

Возможно, fstab — это простой и самый быстрый способ монтировать ресурсы при загрузке. И мы к этому привыкли. Но если это внешнее хранилище (например, общий ресурс CIFS / SAMBA, файловая система sshfs) недоступно во время загрузки или если соединение потеряно во время монтирования, это может привести к нежелательному поведению.

Использование autofs

Установка autofs
Если он еще не установлен
dnf install autofs -y

Подключим USB-диск

Использование метки диска вместо /dev/sdX
Предположим, у вас есть файловая система BTRFS на USB-диске. Обозначим его (таким образом мы не будем использовать классический /dev/sdX, поскольку он непредсказуем, и нам не нужно иметь дело с эзотерическими UUID).
sudo btrfs filesystem label /dev/sda1 btrfs300
Для ext4 есть команды e2label и tune2fs.

Настройка autofs
Создайте файл типа /etc/auto.master.d/trecento.autofs
/media/ /etc/auto.ext-usb --timeout=300,defaults,user,exec
Таймаут должен отключить диск через 5 минут, теоретически переводя его в спящий режим.

Создайте файл /etc/auto.ext-usb, содержащий
trecento -fstype=auto  :/dev/disk/by-label/btrfs300
Как видите, мы используем метку диска, чтобы указать раздел BTRFS.

Включим и запустим службу autofs
sudo systemctl enable autofs --now
Используем команду монтирования
/etc/auto.ext-usb on /media type autofs (rw,relatime,fd=24,pgrp=320148,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=2153302)
Вы видите, что USB-диск не смонтирован. Вывод или доступ к определенному каталогу автоматически монтирует его.
ll /media/trecento
mount /etc/auto.ext-usb on /media type autofs (rw,relatime,fd=24,pgrp=320148,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=2153302)
/dev/sdd1 on /media/trecento type btrfs (rw,nosuid,nodev,relatime,seclabel,space_cache,subvolid=5,subvol=/,user)
Установка sshfs
Установите пакет sshfs.

Создайте файл /etc/auto.master.d/conta.autofs.
/sshfs /etc/auto.sshfs uid=1000,gid=1000,--timeout=30,--ghost
Создайте файл /etc/auto.sshfs.
remote -fstype=fuse,rw,nodev,noatime,allow_other,max_read=65536 :sshfs\#user@remote.host\:
Конечно, вам нужно настроить ключи ssh, чтобы войти в систему без пароля.

CIFS/SAMBA
Те же шаги. Создайте файл /etc/auto.master.d/cifs.autofs
/samba /etc/auto.samba
Затем /etc/auto.samba
remote -fstype=cifs,rw,credentials=/etc/.credentials/windows,uid=1000,sec=ntlm,noserverino ://windows.lan/share
Вы можете создать каталог /etc/.credentials/, а затем файл, содержащий учетные данные, /etc/.credentials/windows
username=shareuser
password=sharepassword
Обновите изменения
sudo systemctl restart autofs