답변:
루트 권한이 필요없는 다른 솔루션 :
udevadm info --query=all --name=/dev/sda | grep ID_SERIAL
이것은 실제로 lsblk
don_crissti가 언급 한 라이브러리 이지만, 내 lsblk 버전에는 serial 옵션이 포함되어 있지 않습니다.
grep ID_SCSI_SERIAL
아래에보고 된 월드 와이드 이름 (wwn)과 달리 실제로 드라이브 의 일련 번호 를 제공하는 것일 수 있습니다 ID_SERIAL
.
ID_SCSI_SERIAL
비슷한 것도 없습니다 ID_ATA_SERIAL
.E: ID_SERIAL=TOSHIBA-TR150_23SC51E8J2BI ... E: ID_SERIAL_SHORT=23SC51E8J2BI ... E: ID_WWN=0x5e83a97200463ff3 ... E: ID_WWN_WITH_EXTENSION=0x5e83a97200463ff3
터미널 유형에서 :
# hdparm -I /dev/sd? | grep 'Serial\ Number'
편집 : lshw
또는smartctl
lshw
# lshw -class disk
smartctl
# smartctl -i /dev/sda
해당 도구가 없으면 다음 패키지를 설치하십시오.
# apt-get install hdparm
# apt-get install smartmontools
# apt-get install lshw
hdparm -I /dev/sd?
hdparm
ARM (Raspberry Pi의 Raspbian )에 (적당한 이름의) 패키지 를 설치해야했습니다 .
hdparm -I /dev/sd? | grep --before-context=4 'Serial\ Number'
일련 번호를 장치와 연관시키는 데 사용 합니다. 결과적인 원래 질문 요청처럼 보입니다.
장치 1 이름 및 해당 일련 번호 :
lsblk --nodeps -o name,serial
산출:
NAME SERIAL
sda 0000000012400917BA30
sdb 0000000012400917BA96
-n
헤더 행을 인쇄하지 않으려면 추가 하십시오.
lsblk --nodeps -no name,serial
산출:
sda 0000000012400917BA30
sdb 0000000012400917BA96
패스 device
특정 장치의 일련 번호를 얻기 위해 인수로 :
lsblk --nodeps -no serial /dev/sda
산출:
0000000012400917BA30
lsblk
사용 가능한 모든 (또는 지정된) 블록 장치에 대한 정보 를 명심하십시오 . 이제 마지막 용어의 의미를 모르는 사람들을 위해 :
일반적으로 블록 장치 는 데이터를 저장하거나 보유하는 장치입니다. 디스켓 드라이브, 하드 드라이브 및 CD-ROM 드라이브는 모두 블록 장치입니다. 그러나 (장치 유형) 및 / 또는 (장치 전송 유형) 등과 같이 lsblk
더 많은 열을 추가 할 수 있으므로 사용하면 문제가되지 않습니다 .type
tran
lsblk --nodeps-이름 없음, 직렬, 유형, tran
sda 0000000012400917BA30 disk sata
sdb 0000000012400917BA96 disk sata
sr0 4B583242334C453233353320 rom usb
lsblk
util-linux 버전 2.24 이상이 필요합니다. github.com/karelzak/util-linux/commit/…
사용 hdparm
하면 터미널에서 하드 디스크 일련 번호를 볼 수 있습니다.
터미널을 열고 다음과 같이 입력하십시오
hdparm -I /dev/sd?|grep -E "Number|/dev"
-I
hdparm
내가 아는 가장 쉬운 방법 (루트가 필요하지 않음) :
inxi -Dplxx
모든 디스크, 시리얼 및 추가 정보를 출력합니다. -p는 파티션을 추가합니다. -l은 레이블을 추가합니다. -u는 파티션에 UUID를 추가합니다.
또한 기억하기가 훨씬 쉽습니다.
견본:
inxi -Dxx
Drives: HDD Total Size: 810.2GB (42.9% used)
ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6
ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926
ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE
ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX
이것은 광학 드라이브를 걸러냅니다. 광학 데이터를 보려면
inxi -Dxxd
Drives: HDD Total Size: 810.2GB (42.9% used)
ID-1: /dev/sdc model: ST3160827AS size: 160.0GB serial: 5MT2HMH6
ID-2: /dev/sdb model: WDC_WD3200JD size: 320.1GB serial: WD-WCAMR1302926
ID-3: /dev/sda model: ST380817AS size: 80.0GB serial: 4MR2EWBE
ID-4: /dev/sdd model: ST3250824AS size: 250.1GB serial: 9ND08GKX
Optical-1: /dev/sr0 model: LITE-ON DVDRW SOHW-1693S
rev: KS09 dev-links: dvd,dvdrw
Features: speed: 48x multisession: yes
audio: yes dvd: yes rw: cd-r,cd-rw,dvd-r state: running
Optical-2: /dev/sr1 model: LITE-ON LTR-52327S rev: QS0C dev-links: cdrom,cdrw
Features: speed: 52x multisession: yes
audio: yes dvd: no rw: cd-r,cd-rw state: running
내 데비안 시스템에서 lsblk는 루트 또는 사용자로 시리얼에 대해 아무것도 표시하지 않습니다. 그렇기 때문에 inxi는 훨씬 더 안정적인 방법을 사용하여 해당 데이터를 얻습니다.
lsblk --nodeps -o name,serial
NAME SERIAL
fd0
sda
sdb
sdc
sdd
sr0
sr1
lsblk --version
lsblk from util-linux 2.25.2
보시다시피, lsblk에 따르면, 광학 드라이브와 플로피 드라이브도 디스크라고 생각합니다. 디스크가 삽입 될 때까지 디스크가되지 않기 때문에 실제로는 아닙니다. 그리고 그것은 직렬에 대해서는 아무것도 보여주지 않으며, 레이블과 같은 다른 값들에 대해서는 아무것도 보여주지 않습니다. 이 데이터를 시스템에서 사용할 수 있기 때문에 확실히 버그가 있습니다. 바로 inxi가 얻는 곳입니다.
lsblk
디스크라고 생각하지 않으며 단순히 모든 블록 장치 를 나열 합니다 . 설명을 위해 업데이트 된 게시물을 참조하십시오. 정보를 보여주지 않는 것에 대하여 – 이것은 당신이 그들의 lsblk
행동에 대해 악명 높은 데비안을 사용하고 있기 때문 입니다. 그것은 아치 리눅스에서 절대적으로 잘 작동하므로 분명히 버그는 아닙니다 . 또한 inxi
다른 명령을 사용하여 해당 정보를 얻는 bash 스크립트 일뿐입니다. "직접"아무것도 얻지 못합니다.
lsblk --nodeps -o name,serial
는 일련 번호를 표시하지만 버그를 재현 할 수 없습니다.
사용 ls -l /dev/disk/by-id
가능한 경우 디스크의 WWN이 표시되므로 사용하는 것도 좋습니다. WWN은 일반적으로 디스크 레이블에 인쇄되므로 쉽게 식별 할 수 있습니다.
root@server (16:27:58):~# ls -l /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root 9 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N -> ../../sda
lrwxrwxrwx 1 root root 10 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Dec 20 01:51 ata-Samsung_SSD_850_EVO_250GB_S3PZNF0JB57579N-part2 -> ../../sda2
...
lrwxrwxrwx 1 root root 9 Dec 20 01:51 wwn-0x50014ee25ffd0a5c -> ../../sdc
lrwxrwxrwx 1 root root 9 Dec 20 01:51 wwn-0x50014ee2b554c0b4 -> ../../sdb
lrwxrwxrwx 1 root root 9 Dec 20 01:51 wwn-0x5002538d427700f0 -> ../../sda
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | awk '{print $9'}
wwn-id
디스크의 가 표시됩니다 . awk
필터는 OS 분포 및 버전에 따라 조정해야 할 수도있다. wwn-id
Pacemaker 디스크 펜싱에 필요한 을 읽으려면 스크립트 솔루션 이 필요했습니다. 파티션 ( /dev/sdX1
예 : 파티션 )이 이미 생성 된 grep
경우 출력을 필터링하기 위해 다른 파티션 이 필요합니다.
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}