두 개의 하드 드라이브가 있다고 가정해 보겠습니다.
내부(GNU/Linux(Debian) 시작);
외부(USB).
fdisk -l
/dev/sda
둘 다 감지하지만 어느 것이 이고 어느 것이 아닌지는 알려주지 않습니다 /dev/sdb
. lsusb
는 외부 USB 장치가 연결되어 있다는 것을 알려주지만, /dev/sda
또는 에 매핑되었는지 여부는 알려주지 않습니다 /dev/sdb
.
시스템에서 이 정보를 어떻게 얻나요?
답변1
ls -l /sys/class/block/sd?
이러한 sd?
항목은 디스크가 컴퓨터에 연결되는 방식을 보여주는 심볼릭 링크입니다. /usb
내부에는 USB 디스크가 있습니다.
udevadm info -a -n sda
커널이 직접 얻을 수 있는 모든 식별 정보를 보여줍니다 sda
. 예를 들어 Intel 컨트롤러의 SATA 디스크의 경우 에서 로, SUBSYSTEMS=="scsi"
USB 디스크의 경우 에서 으로 직접 연결되는 방식에 대해 자세히 알아봅니다 .SUBSYSTEMS=="pci", DRIVERS=="ahci"
SUBSYSTEMS=="scsi"
SUBSYSTEMS=="usb", DRIVERS=="usb-storage"
ls -l /dev/disk/by-*
에서는 /dev/disk/by-*
하드웨어 연결( by-path
), 전역적으로 고유한 식별자( by-uuid
), 수동으로 선택한 레이블( by-label
) 또는 제조업체 ID( )를 기준으로 by-id
디스크를 찾을 수 있습니다.
답변2
내 Debian 컴퓨터(현재 Lubuntu)에서 나는 자주 사용합니다.testdisk -l
(읽기: "작은 L 빼기")이 목적을 위해. 모든 배포판 testdisk
에 사전 설치되어 있는 것은 아니지만 (잘 알려진 복구 도구) 대부분의 배포판에는 이 도구가 있어야 합니다.
제가 얼마 전에 배운 또 다른 훌륭한 도구는 다음과 같습니다 lsblk
.
$ lsblk -d -io KNAME,TYPE,SIZE,MODEL
또는 HDD만 표시하려는 경우:
$ lsblk -d -io KNAME,TYPE,SIZE,MODEL | grep 'sd\w'
grep
(\w는 필수는 아니지만 기본 구성에서 별칭이 지정된 배포판의 추악한 "반색" 출력을 방지합니다 grep --color=auto
.)
또한 이 작은 목적을 위해 간소화하기로 결정한 (실제로는 매우 복잡한) 스크립트를 사용할 수도 있습니다.
답변3
최선의 답변은 확실하지 않지만 다음은 몇 가지 아이디어입니다.
/sys/class/block/sdX/device/model
장치에서 보고한 제조사/모델 정보를 확인할 수 있습니다 . 예를 들어:
cat /sys/class/block/sda/device/model
SAMSUNG HD161GJ
이것만으로도 어느 장치가 외부 장치이고 어느 장치가 내부 장치인지 식별하는 데 충분할 수 있습니다. dmesg
USB 장치의 경우 다음이 포함된 출력을 볼 수 있습니다 .
[ 2073.412999] scsi12 : usb-storage 2-1.8:1.0
이는 SCSI 버스 12를 USB 저장 버스로 식별합니다. 그런 다음 버스 12에서 SCSI 장치를 찾을 수 있습니다.
# dmesg | grep scsi12
[ 2074.488651] sd 12:0:0:0: Attached scsi generic sg6 type 0
[ 2076.592154] sd 12:0:0:0: [sdf] 30481152 512-byte logical blocks: (15.6 GB/14.5 GiB)
[ 2076.592639] sd 12:0:0:0: [sdf] Write Protect is off
[ 2076.592645] sd 12:0:0:0: [sdf] Mode Sense: 23 00 00 00
[ 2076.593142] sd 12:0:0:0: [sdf] No Caching mode page present
[ 2076.593147] sd 12:0:0:0: [sdf] Assuming drive cache: write through
[ 2076.596270] sd 12:0:0:0: [sdf] No Caching mode page present
[ 2076.596276] sd 12:0:0:0: [sdf] Assuming drive cache: write through
[ 2076.619078] sd 12:0:0:0: [sdf] No Caching mode page present
[ 2076.619084] sd 12:0:0:0: [sdf] Assuming drive cache: write through
[ 2076.619088] sd 12:0:0:0: [sdf] Attached SCSI removable disk
답변4
나는 Giles의 답변이 최고라고 생각하지만 완전성을 위해 이 답변을 추가하고 있습니다.
hdparm -i /dev/sda
그러면 컨트롤러 드라이버가 드라이브에서 얻는 몇 가지 기본 정보(모델 및 일련 번호 포함)가 표시됩니다. /dev
장치에 대한 읽기 액세스 권한(예: 그룹 권한을 통해) 이 있는 경우 이 명령에는 루트가 필요하지 않습니다.
hdparm -I /dev/sda
그러면 드라이브에 대한 많은 고급 정보(모델 번호, 일련 번호, 가능한 모든 정보)가 표시됩니다. 이 명령에는 루트 권한이 필요합니다.