Как можно автоматически монтировать разные устройства, представленные одним и тем же файлом устройства, в разные точки монтирования?

Как можно автоматически монтировать разные устройства, представленные одним и тем же файлом устройства, в разные точки монтирования?

В Ubuntu, даже если разные блочные устройства (например, внешний жесткий диск и флэш-накопитель) представлены одним и тем же файлом устройства (например, /dev/sdb1) один за другим, они автоматически монтируются в разные точки монтирования (например, /media/b/mydriveи /media/b/myflashdrive). Как это достигается? Как Ubuntu узнает «имя» каждого устройства и использует это «имя» для наименования своей точки монтирования? ( /etc/fstabне охватывает эти подключаемые устройства.)

Как это можно симулировать? При ручном монтировании блочного устройства я запускаю

sudo mkdir /media/b/mountingpoint1
sudo mount -t ntfs /dev/sdb1 /media/b/mountingpoint1
sudo umount /media/b/mountingpoint1
sudo rmdir /media/b/mountingpoint1

Если я отсоединю устройство, а затем подключу другое блочное устройство, новое устройство снова будет представлено тем же файлом устройства /dev/sdb1, и указанная выше команда смонтирует его в ту же точку монтирования /media/b/mountingpoint1. Мне нужен способ называть точки монтирования по-разному для разных устройств.

решение1

представлены одним и тем же файлом устройства (например, /dev/sdb1)

Хитрость в том, что онинетпредставлено тем же файлом устройства: в дополнение к этому основному файлу устройства, который содержит буквы и цифры, управляемые ядром, у вас также есть символические ссылки, в /dev/disk/by-*которых, например, содержится имя тома файловой системы, производитель и модель жесткого диска или путь к устройству.

И именно эти символические ссылки следует использовать внутри /etc/fstab, а не /dev/sdb1и т. д.

решение2

(например, /media/b/mydriveи /media/b/myflashdrive). Как это достигается? Как Ubuntu узнает «имя» каждого устройства и использует это «имя» для наименования его точки монтирования? ( /etc/fstabне охватывает эти подключаемые устройства.)

Монтирование съемных устройств выполняется UDisks, который также создает для них точку монтирования, которая всегда (в Ubuntu) имеет формат /media/<user>/<unique_id>. Последняя часть — это либо метка файловой системы, либо UUID, если у файловой системы нет метки. Съемные диски и приводы обычно предварительно форматируются, а разделы маркируются производителем (например, на моем флэш-накопителе Kingston раздел VFAT маркируется как KINGSTON).

Вы можете получить метку (и UUID) для своих устройств с помощью lsblk -f.

Если вы хотите смонтировать устройство вручную (не через графический интерфейс) и добиться того же эффекта, вы можете использовать udisksctl mount -b /dev/sdb1.

И если вы (в будущем) будете использовать fstabдля автоматического монтирования, вам всегда следует использовать UUID ( UUID=) вместо /dev/sdb1.

Связанный контент