Jawaban:
Solusi lain yang tidak memerlukan hak akses root:
udevadm info --query=all --name=/dev/sda | grep ID_SERIAL
Ini sebenarnya perpustakaan yang lsblk
, disebutkan oleh don_crissti, memanfaatkan, tetapi versi lsblk saya tidak menyertakan opsi untuk serial.
grep ID_SCSI_SERIAL
mungkin apa yang sebenarnya memberikan nomor seri drive, yang bertentangan dengan nama di seluruh dunia (wwn) yang dilaporkan ID_SERIAL
.
ID_SCSI_SERIAL
atau tidak ada yang analog (tidak ID_ATA_SERIAL
): E: ID_SERIAL=TOSHIBA-TR150_23SC51E8J2BI ... E: ID_SERIAL_SHORT=23SC51E8J2BI ... E: ID_WWN=0x5e83a97200463ff3 ... E: ID_WWN_WITH_EXTENSION=0x5e83a97200463ff3
Dalam jenis terminal:
# hdparm -I /dev/sd? | grep 'Serial\ Number'
EDIT: Anda juga dapat menggunakan lshw
atausmartctl
lih
# lshw -class disk
smartctl
# smartctl -i /dev/sda
Jika Anda kehilangan alat-alat itu, cukup instal paket berikut
# apt-get install hdparm
# apt-get install smartmontools
# apt-get install lshw
hdparm -I /dev/sd?
hdparm
di ARM (Raspbian on Raspberry Pi).
hdparm -I /dev/sd? | grep --before-context=4 'Serial\ Number'
untuk menghubungkan nomor seri dengan perangkat. Sepertinya pertanyaan awal meminta hasil itu.
Nama perangkat 1 dan nomor seri yang sesuai:
lsblk --nodeps -o name,serial
keluaran:
NAME SERIAL
sda 0000000012400917BA30
sdb 0000000012400917BA96
tambahkan -n
jika Anda tidak ingin mencetak baris tajuk:
lsblk --nodeps -no name,serial
keluaran:
sda 0000000012400917BA30
sdb 0000000012400917BA96
Lewati device
sebagai argumen untuk mendapatkan hanya nomor seri perangkat tertentu:
lsblk --nodeps -no serial /dev/sda
keluaran:
0000000012400917BA30
Ingat, cantumkan lsblk
informasi tentang semua perangkat blok yang tersedia (atau yang ditentukan) . Sekarang, bagi mereka yang tidak tahu apa arti istilah terakhir:
Secara umum, perangkat blok adalah perangkat yang menyimpan atau menyimpan data. Drive disket, hard drive, dan drive CD-ROM semuanya adalah perangkat blok. Tapi itu tidak masalah ketika menggunakan lsblk
karena Anda dapat menambahkan kolom misalnya type
(jenis perangkat) dan / atau tran
(jenis transportasi perangkat) dll:
lsblk --nodeps -tidak ada nama, serial, tipe, tran
sda 0000000012400917BA30 disk sata
sdb 0000000012400917BA96 disk sata
sr0 4B583242334C453233353320 rom usb
lsblk
dari util-linux versi 2.24 atau lebih tinggi: github.com/karelzak/util-linux/commit/…
Dengan menggunakan hdparm
Anda dapat melihat nomor seri Harddisk Anda dari terminal.
Buka terminal Anda dan ketikkan sebagai
hdparm -I /dev/sd?|grep -E "Number|/dev"
-I
opsi ini hdparm
. Saya juga tidak mau itu dan lebih suka cara membaca ser # tanpa izin root. Ini sebabnya saya hanya memutakhirkan solusi don_crissti. - syntaxerror 57 detik yang lalu
$ ls -al /dev/disk/by-id/*sda*
Ini akan menunjukkan kepada Anda nomor seri terhadap nama disk yang dikenal.
by-id
direktori hanya symlink, jadi ls -al /dev/disk/by-id/
akan menunjukkan kepada Anda apa yang Anda butuhkan.
Cara termudah yang saya tahu (tidak memerlukan root):
inxi -Dplxx
Itu menampilkan semua disk, serialnya, dan info tambahan apa pun. -p menambahkan partisi. -Aku menambahkan label. -u menambahkan UUID untuk partisi.
Plus itu jauh lebih mudah diingat, heh.
Sampel:
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
Perhatikan bahwa ini menyaring drive optik. Untuk melihat data optik:
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
Perhatikan bahwa pada sistem Debian saya, lsblk tidak menampilkan apa pun untuk serial, baik sebagai root atau pengguna. Itulah sebabnya inxi menggunakan metode yang jauh lebih andal untuk mendapatkan data itu.
lsblk --nodeps -o name,serial
NAME SERIAL
fd0
sda
sdb
sdc
sdd
sr0
sr1
lsblk --version
lsblk from util-linux 2.25.2
Seperti yang Anda lihat, untuk lsblk, ia berpikir bahwa drive optik dan floppy drive juga disk, yang dalam arti tertentu, meskipun tidak benar-benar, karena mereka tidak menjadi disk sampai disk dimasukkan. Dan itu tidak menunjukkan apa-apa untuk serial, itu juga omong-omong tidak menunjukkan nilai-nilai lain, seperti label. Jelas bug karena data ini tersedia untuk sistem, di situlah inxi mendapatkannya, langsung.
lsblk
tidak mengira itu adalah disk, hanya mencantumkan semua perangkat blokir . Lihat posting saya yang diperbarui untuk klarifikasi. Untuk tidak menampilkan informasi - ini karena Anda menggunakan debian yang terkenal karena lsblk
perilaku mereka . Ini berfungsi dengan sangat baik di archlinux jadi jelas bukan bug . Juga, inxi
hanya skrip bash yang menggunakan perintah lain untuk mendapatkan info itu; itu tidak mendapatkan apa pun "secara langsung".
lsblk --nodeps -o name,serial
apakah menampilkan nomor seri, saya tidak dapat mereproduksi bug.
Saya juga suka menggunakan ls -l /dev/disk/by-id
karena akan menunjukkan WWN disk jika tersedia. WWN biasanya dicetak pada label disk, sehingga mudah diidentifikasi.
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'}
Ini akan menunjukkan wwn-id
untuk disk. The awk
Filter mungkin perlu disesuaikan tergantung pada distribusi OS dan versi. Saya membutuhkan solusi tertulis untuk membaca wwn-id
, yang diperlukan untuk pagar disk Pacemaker. Jika partisi ( /dev/sdX1
misalnya) telah dibuat, grep
diperlukan partisi lain untuk memfilter output:
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}