Представьте себе такую ситуацию. Вы подключили к системе внешний USB-накопитель или SSD и используете его в качестве дополнительного носителя информации. Это распространенный вариант использования, особенно если вы установили медиа-сервер на Raspberry Pi или любой другой Linux-системе.
В Linux, чтобы начать использовать внешний диск, обычно нужно нажать на опцию mount в проводнике файлов или использовать команду mount.
Это недержание, и оно может быть проблематичным в ситуации, когда при запуске системы требуется, чтобы диск был смонтирован как внутренний диск. Представьте, что медиасервер не показывает никаких носителей, потому что они хранились на внешнем диске, а он не был смонтирован.
Хорошо, что вы можете решить эту проблему, обеспечив автоматическое монтирование внешнего диска.
В этом руководстве мы рассмотрим два популярных метода автоматического монтирования дисков в Linux:
- Настройка файла
fstab
для начального монтирования. - Использование
udev
иautofs
для более динамичных настроек
Давайте рассмотрим их по очереди.
Метод 1: автоматическое монтирование с помощью µµ0µµ при запуске
Если вы хотите, чтобы внешний диск автоматически монтировался при каждом запуске системы, вы можете настроить его с помощью fstab
(Таблица файловых систем).
Этот метод надежен для накопителей, которые остаются подключенными во время загрузки системы, и я чаще всего использую его для своей домашней лаборатории.

Шаги к автомонтированию через fstab
:
- Сначала подключите USB-накопитель и выполните следующую команду, чтобы определить имя устройства и UUID:
sudo blkid
Найдите строку, соответствующую вашему внешнему накопителю. Например:
/dev/sdb2: UUID="12ab345cd-1234-4166-8539-ff4ff3ff2ff1" TYPE="ntfs"
- Отредактируйте файл
/etc/fstab
в удобном для вас текстовом редакторе (вам понадобятся права суперпользователя):
sudo nano /etc/fstab
Добавьте следующую строку в конец файла:
UUID=12ab345cd-1234-4166-8539-ff4ff3ff2ff1 /media/hdd auto defaults,nofail,x-systemd.automount 0 2
Замените UUID на UUID вашего диска и настройте точку монтирования (/media/hdd
) в соответствии с вашими требованиями.
- Перезагрузите systemd, чтобы применить изменения:
sudo systemctl daemon-reload
Затем перезагрузите систему, и диск должен автоматически смонтироваться в указанном месте.
Этот же метод можно использовать, если вы используете систему с двойной загрузкой и хотите автоматически подключить раздел(ы) Windows.
Метод 2: автоматическое монтирование с помощью правил Udev и µµ2µµ
Если вы хотите, чтобы внешний диск монтировался только при подключении, правила udev
и autofs
обеспечивают динамический подход.
Этот метод больше подходит, если вы часто меняете USB-накопители местами или предпочитаете, чтобы они не монтировались при запуске.
Шаги по автоматическому монтированию с помощью udev
и autofs
:
- Создайте новый файл правил в каталоге
/etc/udev/rules.d/
:
sudo nano /etc/udev/rules.d/usb_auto_mount.rules
Добавьте следующее содержимое:
ACTION=="add", KERNEL=="sd*", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="usb", \ SYMLINK+="usbdisks/%k", MODE:="0660", \ RUN+="/bin/ln -sf /media/hdd/%k /media/usb-sticks/%k" ACTION=="remove", KERNEL=="sd*", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="usb", \ RUN+="/bin/rm /media/usb-sticks/%k"
Разбивка:ACTION=="add"
: Это правило срабатывает при добавлении нового устройства (например, USB).KERNEL=="sd"
: Сопоставляет устройства, имя ядра которых начинается с «sd» (типично для дисков).ENV{DEVTYPE}=="partition"
: Обеспечивает поиск только устройств с разделами.ENV{ID_BUS}=="usb"
: Ограничивает это правило USB-устройствами.<strong>SYMLINK+="usbdisks/%k"</strong>
: Создает символическую ссылку в/dev/usbdisks/
для устройства.%k
– это место для имени устройства, назначенного ядром.MODE:="0660"
: Устанавливает разрешения на чтение и запись для пользователя и группы (но не для других).<strong>RUN+="/bin/ln -sf /media/hdd/%k /media/usb-sticks/%k"</strong>
: Создает символическую ссылку в/media/usb-sticks/
, указывающую на/media/hdd/%k
, где будет смонтирован диск.ACTION=="remove"
: Это правило срабатывает при отключении USB-накопителя.RUN+="/bin/rm /media/usb-sticks/%k"
: Удаляет символическую ссылку при отключении накопителя.
- После сохранения файла перезагрузите правила udev, чтобы применить изменения:
sudo udevadm control --reload-rules
- Отредактируйте файл
auto.master
, чтобы указатьautofs
на монтирование USB-накопителя:
sudo nano /etc/auto.master
Добавьте следующую строку:
/media/hdd /etc/auto_mount.usb --timeout=60
Затем создайте соответствующий файл automount map:
sudo nano /etc/auto_mount.usb
Добавьте это содержимое:
#!/bin/bash fstype=$(/sbin/blkid -o value -s TYPE /dev/usbdisks/$) if [ "${fstype}" = "vfat" ] ; then echo "-fstype=ntfs,sync,uid=0,gid=plugdev,umask=007 :/dev/usbdisks/${key}" exit 0 fi exit 1
Разбивка:
<strong>fstype=$(/sbin/blkid -o value -s TYPE /dev/usbdisks/$)</strong>
: Эта команда определяет тип файловой системы (например, FAT32, NTFS) USB-накопителя с помощью командыblkid
.<strong>if [ "${fstype}" = "ntfs" ]</strong>
: Проверяет, является ли файловая системаntfs
распространенным типом файловой системы, используемым Windows.echo "-fstype=ntfs,sync,uid=0,gid=plugdev,umask=007 :/dev/usbdisks/${key}"
: Монтирует накопитель с определенными параметрами:<strong>fstype=vfat</strong>
: Монтировать его какvfat
файловую систему.sync
: Обеспечивает немедленную запись данных на диск, а не их кэширование.uid=0,gid=plugdev
: Устанавливает владельца наroot
(uid 0) и группу наplugdev
(обычная группа для USB-устройств).umask=007
: Устанавливает разрешения для файлов и каталогов таким образом, чтобы доступ к ним имели только владелец и группа.

Сохранить и выйти из файла.
Теперь диск будет автоматически монтироваться в /media/hdd/
при подключении и размонтироваться через 60 секунд бездействия.
Советы по автоматическому монтированию внешних накопителей
- Используйте UUID: При использовании
fstab
всегда отдавайте предпочтение UUID, а не идентификаторам/dev/sdX
, поскольку они остаются неизменными при перезагрузке. - Проверьте поддержку файловой системы: Убедитесь, что ваша система поддерживает файловую систему вашего USB-накопителя (например, установите
ntfs-3g
для дисков NTFS). - Тестируйте изменения: Всегда проверяйте изменения конфигурации после их настройки, чтобы убедиться, что накопитель монтируется правильно. Использование
journalctl
поможет диагностировать любые проблемы.
Заключение
Автоматическое монтирование дисков может значительно упростить ваш рабочий процесс. В этом я убедился на личном опыте.
Несколько дней назад, настраивая внешний диск как часть моего DIY NAS (Network Attached Storage) на Raspberry Pi, я столкнулся с досадной проблемой.
Я создавал резервные копии важных файлов и использовал диск для удаленного доступа. Все шло гладко, пока не произошла перезагрузка.
К моему ужасу, система загрузилась, но внешний диск автоматически не подключился. Процесс резервного копирования был нарушен, и мне приходилось вручную вмешиваться в него каждый раз, когда система перезагружалась.
Это расстраивало, ведь вся суть заключалась в том, чтобы сделать систему бесперебойной без постоянного контроля. Я поэкспериментировал с автоматическим монтированием дисков и решил поделиться с вами своим опытом.
Выбор подхода между fstab и udev зависит от ваших конкретных потребностей: хотите ли вы, чтобы диск был готов к работе при загрузке или только при подключении.
Выполнив эти действия, вы сможете обеспечить постоянный доступ к внешнему хранилищу без ручного вмешательства.
Комментарии (0)