로컬 HDD인지 USB 플래시 드라이브인지 어떻게 알 수 있나요? 나는 루트 권한이 없는 방법을 선호합니다./dev/sdX
좋습니다. udevadm
많은 도움이 됩니다.
로컬 하드 드라이브의 경우:
udevadm info --query=all --name=sdb | grep ID_BUS
E: ID_BUS=ata
USB 키의 경우:
udevadm info --query=all --name=sdc | grep ID_BUS
E: ID_BUS=usb
답변1
루트 없이 알 수 있는 방법에는 여러 가지가 있으며 그 중 많은 방법이 까다롭습니다.
사용 /dev/disk/by-id
:
find /dev/disk/by-id/ -lname '*sdX'
이렇게 응답하면 /dev/disk/by-id/usb-blah-blah-blah
USB 디스크입니다. 다른 접두사로는 ata
, dm
, 등이 있습니다 memstick
.scsi
다음을 사용하면 /dev/disk/by-path
큰 차이가 없습니다 .
find /dev/disk/by-path/ -lname '*sdX'
당신은 이와 같은 것을 얻을 것이다 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0
. 디스크에 대한 장치 경로가 표시됩니다. 이 경우 대략적인 경로는 PCI → USB → Disk 입니다. (알아채다 -usb-
).
udev 사용(나는 Debian을 실행합니다. 내 것은 내 udevadm
것이 아닙니다 . 당신의 것은 다른 곳에 있거나, 당신의 것이거나 꺼져 있을 수 있습니다 ):/sbin
$PATH
$PATH
/sbin/udevadm info --query=all --name=sdX | grep ID_BUS
장치가 있는 버스 유형을 확인할 수 있습니다. 전체 정보 목록을 얻으려면 삭제하세요 | grep ID_BUS
( 추가해야 할 수도 있음 |less
).
이미 설치했다면 lshw
Huygens의 답변가능한또한 작동합니다:
lshw -class disk -class storage | less
그리고 디스크의 출력을 봅니다. 에서 sdX를 less
시도 /하고 처음 bus info
몇 줄을 살펴보세요. 첫 번째 줄은 말만 할 것이지만 scsi@…
처음 몇 줄은 더 많은 것을 드러낼 것입니다. 그러나 당신은~해야 한다슈퍼유저로 실행하면 적합하지 않을 수 있습니다. (증상: 사용해 본 노트북에서는 SATA 디스크가 나열되었지만 USB 디스크는 나열되지 않았습니다. 실행 시 sudo
둘 다 나열되었습니다.)
이것보다 다소 직접적인 다른 것들이 있습니다.
답변2
lsblk
보고서 TRAN
(장치 전송 유형)를 사용할 수 있습니다 .
lsblk -do name,tran
NAME TRAN
sda sata
sdb sata
sdd usb
-d
또는 은 --nodeps
슬레이브 장치를 인쇄하지 않는다는 의미 -o name,tran
이거나 --output name,tran
장치 이름과 장치 전송 유형만 나열됨을 의미합니다. rm
제거 가능한 장치를 확인하려면 출력 열 목록에 추가하십시오 ( 1
해당되는 경우 true
).
lsblk --nodeps --output NAME,TRAN,RM
NAME TRAN RM
sda sata 0
sdb sata 0
sdd usb 1
또는 -n
헤더를 제거하십시오. 예를 들어 특정 드라이브에 대한 전송 유형만 인쇄하십시오.
lsblk -ndo tran /dev/sdb
sata
최신 버전 lsblk
( 2.27
및 최신 버전) 은 JSON
출력을 지원하므로 다음을 수행할 수도 있습니다.
lsblk -Jdo name,tran | jq -r '.blockdevices[] | select(.tran=="usb") | .name'
USB
버스에 연결된 블록 장치 만 나열됩니다.
답변3
해결책을 알고 있지만 안타깝게도 루트 액세스가 필요합니다. 그럼에도 불구하고 여전히 유용할 수 있습니다.
sudo lshw -class disk -class storage
각 장치에 대해 논리적 이름(예: /dev/sda
)과 버스 정보(예: USB 장치의 경우 "usb@1:2")를 인쇄합니다.
예제 출력:
[...]
*-storage
description: SATA controller
physical id: d
bus info: pci@0000:00:0d.0
configuration: driver=ahci latency=64
[...]
*-disk:0
description: ATA Disk
physical id: 0
bus info: scsi@2:0.0.0
logical name: /dev/sda
[...]
*-scsi
physical id: 3
bus info: usb@1:2
configuration: driver=usb-storage
*-disk
description: SCSI Disk
physical id: 0.0.0
bus info: scsi@6:0.0.0
logical name: /dev/sdc
[...]
답변4
값을 읽으십시오 /sys/block/sdX/removable
.
예를 들어:
$ cat /sys/block/sda/removable
0
$ cat /sys/block/sdc/removable
1
/dev/sdc
USB 키입니다(SD 카드 또는 기타 이동식 미디어일 수 있음).