Nomor seri harddisk dari terminal?

66

Saya memiliki beberapa harddisk yang terhubung ke server saya dan saya tidak yakin yang mana yang ada dalam pandangan sdXY. Jika saya dapat melihat nomor seri hardisk saya dari terminal, saya dapat dengan mudah mengidentifikasi mereka.

Apakah saya bisa melihatnya dari terminal?

rɑːdʒɑ
sumber

Jawaban:

59

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.

Johann
sumber
2
Solusi terbaik jika hard disk Anda mati sepenuhnya. Metode lain tidak berfungsi.
niieani
1
grep ID_SCSI_SERIALmungkin apa yang sebenarnya memberikan nomor seri drive, yang bertentangan dengan nama di seluruh dunia (wwn) yang dilaporkan ID_SERIAL.
Ron
@ron menarik! Apakah Anda memiliki referensi yang mendefinisikan wwn?
Johann
satu-satunya referensi adalah pengalaman langsung pertama saya dengan hard drive WD, Seagate, HGST yang membandingkan nilai di terminal dengan apa yang tertulis pada label. Hard drive terutama kelas perusahaan / pusat data versus desktop konsumen.
ron
1
@ron Hanya menguji ini lagi. Versi saya dari udevadm (systemd 229) melaporkan bidang ID_WWN. Untuk drive di sistem saya, tidak ada ID_SCSI_SERIALatau 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
Johann
51

Dalam jenis terminal:

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

EDIT: Anda juga dapat menggunakan lshwatausmartctl

  • 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
Robert Jonczy
sumber
Terima kasih atas jawabannya, saya telah mengujinya. Tapi itu tidak memberikan dev / sdXX. Silakan coba memperbaikinya. kecuali itu bagus
rɑːdʒɑ
jika Anda mengambil bagian 'grep', Anda akan mendapatkan info lengkapnya seperti dihdparm -I /dev/sd?
Loopo
3
Tidak berfungsi jika hard disk Anda mati sepenuhnya dan Anda sedang mencari nomor seri unit yang rusak. Gunakan metode @ Johann sebagai gantinya.
niieani
Saya harus menginstal paket (bernama apt) hdparmdi ARM (Raspbian on Raspberry Pi).
EthernetCable
Gunakan hdparm -I /dev/sd? | grep --before-context=4 'Serial\ Number'untuk menghubungkan nomor seri dengan perangkat. Sepertinya pertanyaan awal meminta hasil itu.
s.co.tt
31

Nama perangkat 1 dan nomor seri yang sesuai:

lsblk --nodeps -o name,serial

keluaran:

NAME SERIAL
sda  0000000012400917BA30
sdb  0000000012400917BA96

tambahkan -njika Anda tidak ingin mencetak baris tajuk:

lsblk --nodeps -no name,serial

keluaran:

sda  0000000012400917BA30
sdb  0000000012400917BA96

Lewati devicesebagai 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 lsblkkarena 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
don_crissti
sumber
10
Perhatikan bahwa ini tampaknya diperlukan lsblkdari util-linux versi 2.24 atau lebih tinggi: github.com/karelzak/util-linux/commit/…
Johann
Bagaimana cara mengambil serial hard disk ketika saya menggunakan VM ubuntu? Perintah di atas tidak mengembalikan apa pun dalam situasi ini
Benyamin Jafari
11

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"
rɑːdʒɑ
sumber
Ya, tapi Anda harus menjadi pengguna super untuk menggunakan -Iopsi 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
syntaxerror
9
$ ls -al /dev/disk/by-id/*sda*

Ini akan menunjukkan kepada Anda nomor seri terhadap nama disk yang dikenal.

Ed Neville
sumber
Ini adalah pendekatan yang cerdas tetapi tidak berfungsi pada kotak virtual saya. Sepertinya isi by-iddirektori hanya symlink, jadi ls -al /dev/disk/by-id/akan menunjukkan kepada Anda apa yang Anda butuhkan.
Wildcard
1
Ini juga bekerja untuk saya pada sistem boot live debian, sementara semua alat lain tidak tersedia dari awal, tanpa mengatur internet dan mendapatkannya.
hoijui
3

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.

Lizardx
sumber
2
Bagian terakhir dari posting Anda salah, lsblktidak 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 lsblkperilaku mereka . Ini berfungsi dengan sangat baik di archlinux jadi jelas bukan bug . Juga, inxihanya skrip bash yang menggunakan perintah lain untuk mendapatkan info itu; itu tidak mendapatkan apa pun "secara langsung".
don_crissti
Secara teknis benar, tetapi dalam bidang ucapan normal, disk adalah cara yang layak untuk mengkomunikasikan konsep ini. Perilaku yang gagal tentu saja adalah bug, itu tidak relevan apa penyebabnya, jadi komentar Anda bahwa lsblk bukan bug pada dasarnya tidak masuk akal. Apakah bug itu dibuat debian atau tidak tidak mengubah fakta itu bug. Secara langsung berarti tanpa mediasi, yaitu dari sistem file, yang mana inxi mendapatkan informasi serial. Sebuah jawaban harus mencerminkan lanskap gnu / linux secara keseluruhan, jadi katakanlah misalnya lsblk berfungsi kecuali di debian / buntu tidak memiliki nilai karena sebagian besar pengguna akan melihatnya tidak berfungsi.
Lizardx
Bagian dari jawaban ini salah: lsblk, ia berpikir bahwa drive optik dan floppy drive juga disk . Faktanya, lsblk mencantumkan perangkat blok (yang meliputi hard disk, SSD, drive floppy disk, drive disk optik, volume logis LVM, dll.), Dan lsblk tidak membedakan antara disk dan non-disk.
Poin
FYI pada Debian buster, lsblk --nodeps -o name,serialapakah menampilkan nomor seri, saya tidak dapat mereproduksi bug.
Poin
lsblk membaik, tetapi masih ada beberapa masalah halus, saya masih tidak akan menggunakannya sebagai sumber data primer untuk alat yang saya buat, tapi saya menggunakannya sekarang sebagai sumber sekunder, tetapi kami sudah menemukan bug yang tidak dapat dijelaskan menggunakannya, kerjakan satu sekarang.
Lizardx
1

Saya juga suka menggunakan ls -l /dev/disk/by-idkarena 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
pengguna208145
sumber
1
ls -al /dev/disk/by-id/ | grep sdX | grep wwn | awk '{print $9'}

Ini akan menunjukkan wwn-iduntuk disk. The awkFilter 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/sdX1misalnya) telah dibuat, grepdiperlukan partisi lain untuk memfilter output:

ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}
tschakka
sumber