
В 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
.