Câu trả lời:
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.
grep ID_SCSI_SERIAL
có 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
.
ID_SCSI_SERIAL
bấ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
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 lshw
hoặ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
hdparm -I /dev/sd?
hdparm
trên ARM (Raspbian trên Raspberry Pi).
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ả.
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 -n
nế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 device
dướ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 lsblk
vì 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
lsblk
từ phiên bản linux-linux 2.24 trở lên: github.com/karelzak/util-linux/commit/ mẹo
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"
-I
tù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
$ 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.
by-id
thư 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.
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.
lsblk
khô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à lsblk
hà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, inxi
chỉ 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".
lsblk --nodeps -o name,serial
không hiển thị số sê-ri, tôi không thể tạo lại lỗi.
Tôi cũng thích sử dụng ls -l /dev/disk/by-id
vì 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
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | awk '{print $9'}
Điều này sẽ hiển thị wwn-id
cho đĩa. Bộ awk
lọ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/sdX1
ví dụ) đã được tạo, một phân vùng khác grep
là cần thiết để lọc đầu ra:
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}