Số sê-ri đĩa cứng từ thiết bị đầu cuối?


66

Tôi có nhiều ổ cứng được kết nối với máy chủ của mình và tôi không chắc cái nào là cái nhìn theo quan điểm của sdXY. Nếu tôi có thể thấy số sê-ri của đĩa cứng từ thiết bị đầu cuối, tôi có thể dễ dàng xác định chúng.

Có cách nào tôi có thể nhìn thấy chúng từ thiết bị đầu cuối?

Câu trả lời:


58

Một giải pháp khác không yêu cầu quyền root:

udevadm info --query=all --name=/dev/sda | grep ID_SERIAL

Đây thực sự là thư viện lsblk, được đề cập bởi don_crissti, đòn bẩy, nhưng phiên bản lsblk của tôi không bao gồm tùy chọn cho nối tiếp.


2
Giải pháp tốt nhất nếu đĩa cứng của bạn đã chết hoàn toàn. Các phương pháp khác không hoạt động.
niieani 30/03/2016

1
grep ID_SCSI_SERIALcó thể là những gì thực sự cung cấp số sê-ri của ổ đĩa, trái ngược với tên toàn thế giới (wwn) được báo cáo dưới đây ID_SERIAL.
ron

@ron Thú vị! Bạn có bất kỳ tài liệu tham khảo xác định wwn?
Johann

chỉ tham khảo là trải nghiệm đầu tiên của tôi với các ổ đĩa cứng WD, Seagate, HGST so sánh các giá trị tại thiết bị đầu cuối với những gì được ghi trên nhãn. Ổ đĩa cứng chủ yếu là cấp doanh nghiệp / trung tâm dữ liệu so với máy tính để bàn của người tiêu dùng.
ron

1
@ron Chỉ cần thử lại lần nữa. Phiên bản udevadm của tôi (systemd 229) báo cáo trường ID_WWN. Đối với các ổ đĩa trong hệ thống của tôi, cũng không có ID_SCSI_SERIALbất kỳ thứ gì tương tự (không ID_ATA_SERIAL): E: ID_SERIAL=TOSHIBA-TR150_23SC51E8J2BI ... E: ID_SERIAL_SHORT=23SC51E8J2BI ... E: ID_WWN=0x5e83a97200463ff3 ... E: ID_WWN_WITH_EXTENSION=0x5e83a97200463ff3
Johann

50

Trong loại thiết bị đầu cuối:

# hdparm -I /dev/sd? | grep 'Serial\ Number'

EDIT: Bạn cũng có thể sử dụng lshwhoặcsmartctl

  • lshw

    # lshw -class disk

  • thông minh

    # smartctl -i /dev/sda

Nếu bạn đang thiếu các công cụ đó, chỉ cần cài đặt các gói sau

# apt-get install hdparm
# apt-get install smartmontools
# apt-get install lshw

Cảm ơn câu trả lời tôi đã kiểm tra nó. Nhưng nó không cho dev / sdXX. Hãy cố gắng sửa nó. trừ khi nó tốt
rɑːdʒɑ

nếu bạn lấy phần 'grep', bạn sẽ nhận được thông tin đầy đủ như tronghdparm -I /dev/sd?
Loopo

3
Không hoạt động nếu đĩa cứng của bạn đã chết hoàn toàn và bạn đang tìm kiếm số sê-ri của đơn vị bị lỗi. Sử dụng phương pháp @ Johann thay thế.
niieani 30/03/2016

Tôi đã phải cài đặt gói (tên apt-ly) hdparmtrên ARM (Raspbian trên Raspberry Pi).
EthernetCable

Sử dụng hdparm -I /dev/sd? | grep --before-context=4 'Serial\ Number'để tương quan số sê-ri với thiết bị. Có vẻ như các câu hỏi ban đầu yêu cầu kết quả.
s.co.tt

31

Tên thiết bị 1 và số sê-ri tương ứng:

lsblk --nodeps -o name,serial

đầu ra:

NAME SERIAL
sda  0000000012400917BA30
sdb  0000000012400917BA96

thêm -nnếu bạn không muốn in dòng tiêu đề:

lsblk --nodeps -no name,serial

đầu ra:

sda  0000000012400917BA30
sdb  0000000012400917BA96

Truyền devicedưới dạng đối số để chỉ nhận số sê-ri của một thiết bị cụ thể:

lsblk --nodeps -no serial /dev/sda

đầu ra:

0000000012400917BA30

Hãy ghi nhớ lsblk danh sách thông tin về tất cả các thiết bị khối có sẵn (hoặc được chỉ định) . Bây giờ, đối với những người không biết thuật ngữ cuối cùng có nghĩa là gì:
Nói chung, các thiết bị khối là thiết bị lưu trữ hoặc lưu trữ dữ liệu. Ổ đĩa, ổ cứng và ổ đĩa CD-ROM đều là các thiết bị khối. Nhưng đó không phải là vấn đề khi sử dụng lsblkvì bạn có thể chỉ cần thêm nhiều cột hơn, ví dụ: type(loại thiết bị) và / hoặc tran(loại vận chuyển thiết bị), v.v .:

lsblk --nodeps -không tên, nối tiếp, loại, tran
sda  0000000012400917BA30     disk sata
sdb  0000000012400917BA96     disk sata
sr0  4B583242334C453233353320 rom  usb

10
Lưu ý rằng điều này dường như yêu cầu lsblktừ phiên bản linux-linux 2.24 trở lên: github.com/karelzak/util-linux/commit/ mẹo
Johann

Làm cách nào để truy xuất đĩa cứng nối tiếp khi tôi sử dụng máy ảo ubfox? Các lệnh trên không trả lại gì trong tình huống này
Benyamin Jafari

11

Bằng cách sử dụng, hdparm bạn có thể thấy số sê-ri Harddisk của mình từ thiết bị đầu cuối.

Mở terminal của bạn và gõ như

 hdparm -I /dev/sd?|grep -E "Number|/dev"

Vâng, nhưng bạn cần phải là siêu người dùng để sử dụng -Itùy chọn trong hdparm. Tôi cũng không muốn điều đó và thích cách đọc ser # mà không cần quyền root. Đây là lý do tại sao tôi chỉ nâng cao giải pháp của don_crissti's. - cú pháp 57 giây trước
cú pháp

9
$ ls -al /dev/disk/by-id/*sda*

Điều này sẽ cho bạn thấy số sê-ri so với tên đĩa quen thuộc.


Đây là một cách tiếp cận thông minh nhưng không hoạt động trên hộp ảo của tôi. Có vẻ như nội dung của by-idthư mục chỉ là liên kết tượng trưng, ​​vì vậy ls -al /dev/disk/by-id/sẽ cho bạn thấy những gì bạn cần dù sao.
tự đại diện

1
Điều này cũng làm việc cho tôi trên một hệ thống khởi động trực tiếp debian, trong khi tất cả các công cụ khác không có sẵn từ đầu, mà không thiết lập internet và apt-get chúng.
hoijui

3

Cách dễ nhất mà tôi biết (không yêu cầu root):

inxi -Dplxx

Điều đó xuất ra tất cả các đĩa, serial của chúng và bất kỳ thông tin bổ sung nào. -p thêm phân vùng. -l thêm nhãn. -u thêm UUID cho các phân vùng.

Thêm vào đó, nó dễ nhớ hơn nhiều, heh.

Mẫu vật:

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

Lưu ý rằng điều này lọc ra các ổ đĩa quang. Để xem dữ liệu quang học:

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

Lưu ý rằng trên hệ thống Debian của tôi, lsblk không hiển thị bất cứ điều gì cho các sê-ri, cho dù là root hay người dùng. Đó là lý do tại sao inxi sử dụng một phương pháp đáng tin cậy hơn nhiều để có được dữ liệu đó.

lsblk --nodeps -o name,serial
NAME SERIAL
fd0  
sda  
sdb  
sdc  
sdd  
sr0  
sr1  

lsblk --version
lsblk from util-linux 2.25.2

Như bạn có thể thấy, đối với lsblk, nó nghĩ rằng ổ đĩa quang và ổ đĩa mềm cũng là đĩa, mặc dù theo nghĩa thực tế, chúng không thực sự trở thành đĩa cho đến khi đĩa được đưa vào. Và nó không hiển thị gì cho nối tiếp, nó cũng không hiển thị gì cho các giá trị khác, như nhãn. Chắc chắn là một lỗi vì dữ liệu này có sẵn cho hệ thống, đó là nơi inxi lấy nó, trực tiếp.


2
Phần cuối của bài viết của bạn là sai, lsblkkhông nghĩ chúng là đĩa, nó chỉ liệt kê tất cả các thiết bị khối . Xem bài viết cập nhật của tôi để làm rõ. Như không hiển thị thông tin - điều này là do bạn đang sử dụng debian, thứ không phải là lsblkhành vi của họ . Nó hoạt động hoàn toàn tốt trên archlinux vì vậy chắc chắn không phải là một lỗi . Ngoài ra, inxichỉ là một tập lệnh bash sử dụng các lệnh khác để có được thông tin đó; nó không nhận được bất cứ điều gì "trực tiếp".
don_crissti

Về mặt kỹ thuật, nhưng trong lĩnh vực nói bình thường, đĩa là một cách hay để truyền đạt khái niệm này. Một hành vi thất bại tất nhiên là một lỗi, nó không liên quan đến nguyên nhân là gì, vì vậy nhận xét của bạn rằng một lỗi lsblk không phải là một lỗi về cơ bản là vô nghĩa. Cho dù lỗi là do debian tạo hay không không làm thay đổi thực tế đó là lỗi. Trực tiếp có nghĩa là không có hòa giải, tức là, từ hệ thống tệp, đó là nơi inxi có được thông tin nối tiếp. Một câu trả lời sẽ phản ánh toàn cảnh gnu / linux, vì vậy, ví dụ lsblk hoạt động ngoại trừ trong debian / buntu không có giá trị vì hầu hết người dùng sẽ thấy nó không hoạt động.
Lizardx

Phần này của câu trả lời là không chính xác: lsblk, nó nghĩ rằng một ổ đĩa quang và ổ đĩa mềm cũng là đĩa . Trên thực tế, lsblk liệt kê các thiết bị khối (bao gồm đĩa cứng, SSD, ổ đĩa mềm, ổ đĩa quang, khối lượng logic LVM, v.v.) và lsblk không phân biệt giữa đĩa và không phải đĩa.
pts

FYI trên Debian buster, lsblk --nodeps -o name,serialkhông hiển thị số sê-ri, tôi không thể tạo lại lỗi.
pts

lsblk đang được cải thiện, nhưng vẫn còn một số vấn đề nhỏ, tôi vẫn sẽ không sử dụng nó làm nguồn dữ liệu chính cho các công cụ tôi tạo, nhưng hiện tôi đang sử dụng nó như một nguồn thứ cấp, nhưng chúng tôi đã gặp phải các lỗi không thể giải thích được sử dụng nó, làm việc trên một bây giờ.
Lizardx

1

Tôi cũng thích sử dụng ls -l /dev/disk/by-idvì nó sẽ hiển thị WWN của đĩa nếu có. WWN thường được in trên nhãn của đĩa, vì vậy rất dễ xác định.

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

1
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | awk '{print $9'}

Điều này sẽ hiển thị wwn-idcho đĩa. Bộ awklọc có thể cần được điều chỉnh tùy thuộc vào phiên bản và phân phối HĐH. Tôi cần một giải pháp theo kịch bản để đọc wwn-id, cần thiết cho hàng rào đĩa Pacemaker. Nếu các phân vùng ( /dev/sdX1ví dụ) đã được tạo, một phân vùng khác greplà cần thiết để lọc đầu ra:

ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.