Когда USB-устройство монтируется как sdb, а когда как sdc?

Когда USB-устройство монтируется как sdb, а когда как sdc?

На прошлой неделе у меня был скрипт, который ожидал, что мой usb будет sdc, я использовал эту команду

usb_path=`lsblk | grep sdc1 | awk '{print $7}'`

но потом я вернулся и увидел, что флешка пуста, потому что она была названа sdb. Так что же зависит от того, какое имя получает флешка? У меня не было другого диска, когда она получила sdc, и никакого другого диска не подключено сейчас, когда она sdb. Так что единственное различие, которое я мог увидеть, это время, но это кажется глупым. О, и это та же самая флешка usb, что и на прошлой неделе.

решение1

Буква b/ cв sdb/ sdc— это счётчик.

Первый обнаруженный диск получает sda, второй sdb— и так далее.

Буквы могут быть пропущены, если, например, вы временно теряете соединение при подключении USB-накопителя. Сначала USB-накопитель получает sdb, затем соединение разрывается и восстанавливается, и он получает sdc, потому что sdbеще не был освобожден.

Поскольку нельзя рассчитывать на то, что одно и то же устройство будет каждый раз получать одно и то же имя, в Ubuntu есть каталог с символическими ссылками на диски, которые привязаны к идентификатору файловой системы на диске: /dev/disk/by-uuid/

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

Если вы хотите получить доступ к USB-накопителю, подключенному к определенному USB-порту, а не просто использовать идентификатор USB-накопителя, вы можете воспользоваться записями в /dev/disk/by-path.

lsblkпринимает аргумент, если вам нужна информация о конкретном устройстве. Поэтому вместо использования lsblk | grep …вы можете использовать eg lsblk /dev/disk/by-id/1234-5678илиlsblk /dev/disk/by-path/pci-0000:00:2.0-usb-0:1:1.0-scsi-0:0:0:0

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