Вопрос или проблема
У меня проблема с автоматическим монтированием внешнего HDD на моем сервере Ubuntu, который запускает Jellyfin.
Информация о системе:
Операционная система: Ubuntu 24.04.1 LTS
Формат внешнего HDD: exFAT
Внешний HDD подключен через USB переключатель, и я хочу, чтобы он автоматически монтировался, когда я повторно подключаю его после отключения.
Я создал правило UDEV для обработки автоматического монтирования, но, похоже, оно работает только при перезагрузке сервера, а не когда я просто отключаю и повторно подключаю HDD.
Правило UDEV:
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sdb2", ATTRS{serial}=="00000000NT17B957", RUN+="/usr/local/bin/mount-external-hdd.sh"
Скрипт mount-external-hdd.sh:
#!/bin/bash
mount /mnt/external-hdd
Ответ или решение
Проблемы с Автоматическим Монтированием Внешнего HDD на Ubuntu Server
Введение
Автоматическое монтирование внешнего жесткого диска на сервере Ubuntu, особенно для приложений, таких как Jellyfin, может быть сложной задачей. В данной статье мы обсудим, как правильно настроить автоматическое монтирование вашего внешнего HDD, используя UDEV правила и bash-скрипты.
Подробности О Проблеме
Пользователь сталкивается с проблемой, в которой внешний HDD, подключаемый через USB-переключатель, не монтируется автоматически при повторном подключении. Несмотря на наличие UDEV правила и bash-скрипта для монтирования, автоматизация работает только при перезагрузке системы, что является недостатком.
Системная Информация
- Операционная Система: Ubuntu 24.04.1 LTS
- Формат Внешнего HDD: exFAT
- Устройство: Подключено через USB-переключатель
Подход к Решению Проблемы
-
Проверка UDEV Правила
UDEV правила предоставляют возможность управлять действиями при добавлении или удалении устройств. В вашем случае правило:
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sdb2", ATTRS{serial}=="00000000NT17B957", RUN+="/usr/local/bin/mount-external-hdd.sh"
проверяет, что устройство с определенным серийным номером добавляется в систему. Убедитесь, что:
KERNEL=="sdb2"
действительно относится к вашему внешнему HDD. Используйте командуlsblk
после подключения диска, чтобы проверить правильность имени устройства.- Убедитесь, что серийный номер устройства правильно указан.
-
Создание Bash Скрипта
Ваш скрипт
mount-external-hdd.sh
выглядит следующим образом:#!/bin/bash mount /mnt/external-hdd
Убедитесь, что:
-
Директория
/mnt/external-hdd
существует. Если нет, создайте её командой:mkdir -p /mnt/external-hdd
-
Убедитесь, что у вашего скрипта есть права на выполнение:
chmod +x /usr/local/bin/mount-external-hdd.sh
-
-
Настройка Файла fstab
Чтобы обеспечить возможность монтирования exFAT отформатированного HDD с помощью
udev
, вам может потребоваться добавить запись в файл/etc/fstab
. Пример записи:UUID=ваш-uuid /mnt/external-hdd exfat defaults,nofail 0 0
- Определите UUID вашего диска командой:
blkid
- Определите UUID вашего диска командой:
-
Отладка UDEV Правил
Если правило не срабатывает, вам следует использовать
udevadm
для отладки. Выполните:udevadm monitor --environment --udev
Это позволит вам видеть, какие события запускаются при подключении устройства. Убедитесь, что ваше правило действительно активируется.
-
Использование
systemd
В некоторых случаях, если UDEV не работает должным образом, вы можете рассмотреть возможность создания
systemd
сервиса для управления монтированием. Пример конфигурации:Создайте файл сервиса:
sudo nano /etc/systemd/system/mount-external-hdd.service
И добавьте следующее содержимое:
[Unit] Description=Mount External HDD [Service] Type=oneshot ExecStart=/usr/local/bin/mount-external-hdd.sh [Install] WantedBy=multi-user.target
-
Автоматизация при Постоянных Подключениях
Если ваша цель заключается в автоматизации при каждом подключении, рассмотрите возможность использования
cron
или системного таймера для проверки подключения устройства через определенные интервалы времени.
Заключение
Настройка автоматического монтирования внешнего HDD на сервере Ubuntu может включать несколько этапов: проверить корректность UDEV правил, права скриптов, добавить запись в fstab
, а также использовать systemd
для управления. Тщательно следуя этим шагам, вы сможете убедиться, что ваше устройство монтируется автоматически при каждом подключении. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью в сообщество Ubuntu.