드라이브 라벨에서만 USB 버전(USB 2.0/USB 3.0)을 감지하려고 합니다.
USB 버전은 '에서 다운로드할 수 있는 것으로 알고 있습니다.USB 인터페이스"출력의 매개변수"lsusb -v" 또는"주행 속도"출력의 매개변수"lsusb-t"(480M/5000M).
드라이브 레이블은 "LSBLK”, 하지만 USB 버전을 드라이브 레이블과 일치시키기 위해 이러한 출력을 일치시키는 방법을 찾을 수 없습니다.
내 백업 옵션은 USB 버전을 감지하기 위해 파일 전송 속도를 테스트하는 것이지만 이는 그다지 신뢰할 수 없습니다.
간단하고 믿을 수 있는 방법이 있었으면 좋겠습니다. 어떤 지침이라도 대단히 감사하겠습니다.
답변1
이 태그는 사용자가 설정하거나 USB 드라이브의 파일 시스템이 포맷되거나 이후에 설정됩니다. lsusb -v를 사용하세요....
답변2
이것은 시스템별로 다르지만 Linux(BSD 등이 아님)라고 가정합니다.
장치 이름(lsblk에서 제공)이 있는 경우 다음을 수행하세요.
$ udevadm info -a /dev/sdf1
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/host16/target16:0:0/16:0:0:0/block/sdf/sdf1':
KERNEL=="sdf1"
⋮
looking at parent device '/devices/pci0000:00/0000:00:1a.7/usb1/1-2':
KERNELS=="1-2"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
⋮
ATTRS{speed}=="480"
나는 "속도"가 당신이 찾고있는 것이라고 생각합니다. 그렇지 않다면 거기에 있고 busnum
거기 devnum
에 bus:device
주어진 것과 일치합니다 lsusb
.
이는 또한 이 작업을 수동으로 수행하는 방법에 대한 단서를 제공합니다. 어디서부터 시작해야 할지 알려 /sys
주십시오 . 그런 다음 USB 장치가 복원될 때까지 후행 디렉터리를 삭제할 수 있습니다. 그러면 , , 등은 읽을 수 있는 파일일 뿐입니다.readlink -f /sys/block/sdf
/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-2/1-2:1.0/host16/target16:0:0/16:0:0:0/block/sdf
speed
busnum
devnum