
로컬 HDD 또는 USB 키인지 어떻게 알 수 있나요 ? 나는 루트 권한 없이 이 작업을 수행하는 방법을 선호합니다./dev/sdX
네, udevadm
많은 도움이 되었습니다:
로컬 HDD의 경우:
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 → 디스크입니다. (참고 -usb-
).
udev 사용(저는 Debian을 실행합니다. 내 udevadm
파일은 /sbin
내 파일에 있지 않습니다 $PATH
. 귀하의 파일은 다른 곳에 있거나 있을 수 있습니다 $PATH
.):
/sbin/udevadm info --query=all --name=sdX | grep ID_BUS
장치가 있는 버스 유형을 확인할 수 있습니다. 전체 정보 목록을 보려면 을 제거하세요 . | grep ID_BUS
을 추가해야 할 수도 있습니다 .|less
설치 했다면 lshw
Huygens의 답변5월또한 작동합니다:
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
if 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 카드나 기타 이동식 미디어일 수 있음).