(непостоянный) автоматический монтирование на USB-накопителях

Вопрос или проблема

Я заметил, что в ubuntu 24.10 USB-накопители больше не монтируются автоматически, как раньше, поэтому я создал этот скрипт.

function mountte {
 labelle=`sudo tune2fs -l /dev/sd$1 2> /dev/null | grep "Filesystem volume name:" | awk '{ print $4}'`
 if [ "$2" = "$labelle" ];  then
  if [[ ! -d /media/$USER/$labelle ]]; then
   sudo mkdir /media/$USER/$labelle
  fi
  if mountpoint -q /media/$USER/$labelle; then
   do=nothing
  else
   sudo mount /dev/sd$1 /media/$USER/$labelle
  fi
 fi
}

 for l in {a..m}
 do
  for n in {1..7}
  do
   mountte ${l}${n} USB_BACKUP
   mountte ${l}${n} USBPEN
  done
 done

Ответ или решение

Автоматическое монтирование USB-накопителей в Ubuntu 24.10: Решение задачи

В последних версиях операционной системы Ubuntu, включая 24.10, пользователи заметили, что автоматическое монтирование USB-накопителей перестало работать так, как это было прежде. Это может стать значительным неудобством для тех, кто часто использует внешние устройства для хранения и передачи данных. Данная статья предлагает решение данной проблемы с помощью написания скрипта, который будет автоматически монтировать USB-накопители при подключении.

Суть проблемы

Автоматическое монтирование USB-накопителей позволяет пользователям быстро и легко получать доступ к содержимому, без необходимости вручную управлять процессом монтирования. В новой версии Ubuntu, функция автоматического монтирования могла быть отключена или неисправна, что требовало альтернативного подхода.

Решение через скрипт

Общая структура предоставленного скрипта организована для отслеживания и монтирования USB-накопителей на основе их меток. Ниже подробно рассмотрим, как работает данный скрипт.

function mountte {
 labelle=`sudo tune2fs -l /dev/sd$1 2> /dev/null | grep "Filesystem volume name:" | awk '{ print $4}'`
 if [ "$2" = "$labelle" ];  then
  if [[ ! -d /media/$USER/$labelle ]]; then
   sudo mkdir /media/$USER/$labelle
  fi
  if mountpoint -q /media/$USER/$labelle; then
   do=nothing
  else
   sudo mount /dev/sd$1 /media/$USER/$labelle
  fi
 fi
}

 for l in {a..m}
 do
  for n in {1..7}
  do
   mountte ${l}${n} USB_BACKUP
   mountte ${l}${n} USBPEN
  done
 done

Подробное объяснение работы скрипта

  1. Функция mountte: Это основная логика монтирования. Она принимает два параметра: идентификатор устройства (например, sda1) и метку, которую необходимо сопоставить с физическим устройством.

  2. Чтение метки: Скрипт использует команду tune2fs для получения метки файловой системы устройства. Если метка совпадает с заданной, выполняется дальнейшая обработка.

  3. Проверка и создание директории: Если директория для монтирования не существует, скрипт создаёт ее.

  4. Проверка на монтирование: С помощью команды mountpoint скрипт проверяет, монтировано ли устройство. Если нет, то выполняется команда mount, чтобы смонтировать устройство.

  5. Циклы для обхода устройств: Вложенные циклы for перебирают возможные буквы дисков и номера, что позволяет скрипту обрабатывать несколько устройств, подключаемых к системе.

Применение скрипта

Чтобы использовать данный скрипт, вы можете сохранить его в файле, например, usb_mount.sh, и запустить его с помощью командной строки после подключения USB-накопителя. Не забудьте дать файлу права на выполнение с помощью команды:

chmod +x usb_mount.sh

Заключение

Данный подход обеспечивает удобный и эффективный способ автоматического монтирования USB-накопителей в Ubuntu 24.10. Поскольку автоматическое монтирование может отключаться по умолчанию в новых версиях системы, такой скрипт становится незаменимым инструментом для пользователей, стремящихся к комфорту и эффективности.

Для поддержания актуальности и успеха этого скрипта, рекомендуется его регулярное обновление с учетом новых изменений в системе и файловых системах.

Оцените материал
Добавить комментарий

Капча загружается...