Terminalden sabit disk seri numarası?


65

Sunucuma bağlanan birden çok sabit diske sahibim ve hangisinin sdXY görünümünde hangisi olduğundan emin değilim. Sabit disklerimin seri numaralarını terminalden görebilirsem, kolayca tanımlayabilirim.

Onları terminalden görebilmemin bir yolu var mı?

Yanıtlar:


57

Kök ayrıcalıkları gerektirmeyen başka bir çözüm:

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

Bu aslında lsblkdon_crissti tarafından belirtilen kütüphanedir , ancak lsblk versiyonumda seri opsiyonu yoktur.


2
Sabit diskiniz tamamen öldüyse, en iyi çözüm. Diğer yöntemler işe yaramıyor.
niieani

1
grep ID_SCSI_SERIALaltında rapor edilen dünya genelindeki ismin aksine, sürücünün seri numarasını gerçekten veren şey olabilir ID_SERIAL.
ron

@ron İlginç! Wwn tanımlayan herhangi bir referans var mı?
Johann

yalnızca referans, terminaldeki değerleri etikette yazılanlarla karşılaştıran WD, Seagate, HGST sabit diskleri ile ilgili ilk el deneyimimdir. Sabit diskler öncelikle tüketici masaüstüne karşı kurumsal / veri merkezi sınıfıdır.
ron

1
@ @ Sadece bunu tekrar test ettim. Udevadm versiyonum (systemd 229) bir ID_WWN alanı rapor etti. Sistemimdeki sürücüler için ayrıca hiçbir ID_SCSI_SERIALbenzer veya hiçbir şey yoktur (hayır 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

Terminal türünde:

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

EDIT: Ayrıca kullanabilirsiniz lshwveyasmartctl

  • lshw

    # lshw -class disk

  • smartctl

    # smartctl -i /dev/sda

Bu araçları kaçırıyorsanız, aşağıdaki paketleri yüklemeniz yeterli

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

Cevap için teşekkür ederim test ettim. Ancak dev / sdXX 'i vermiyor. Lütfen düzeltmeyi dene. iyi olmadıkça
rʒɑdʒɑ

'grep' kısmını hdparm -I /dev/sd?
çıkarırsanız

3
Sabit diskiniz tamamen öldüyse ve hatalı birimin seri numarasını arıyorsanız, çalışmaz. Bunun yerine @ Johann'ın yöntemini kullanın.
niieani

(Apt-ly adında) hdparmpaketini ARM'e (Raspberry Pi'de Raspbian ) kurmak zorunda kaldım .
EthernetCable

hdparm -I /dev/sd? | grep --before-context=4 'Serial\ Number'Seri numarasını cihazla ilişkilendirmek için kullanın . Sonuçta ortaya çıkan orijinal soru taleplerine benziyor.
s.co.tt

31

Cihaz 1 adı ve ilgili seri numarası:

lsblk --nodeps -o name,serial

çıktı:

NAME SERIAL
sda  0000000012400917BA30
sdb  0000000012400917BA96

-nbaşlık satırını yazdırmak istemiyorsanız ekleyin :

lsblk --nodeps -no name,serial

çıktı:

sda  0000000012400917BA30
sdb  0000000012400917BA96

Geçiş devicebelirli bir cihazın sadece seri numarasını almak için argüman olarak:

lsblk --nodeps -no serial /dev/sda

çıktı:

0000000012400917BA30

Akılda bulundurulması gereken lsblk tüm (veya belirtilen) blok aygıtları hakkındaki bilgileri listeler . Şimdi, son terimin ne anlama geldiğini bilmeyenler için:
Genel olarak, blok cihazları veri depolayan veya tutan cihazlardır. Disket sürücüler, sabit sürücüler ve CD-ROM sürücüleri tüm blok cihazlardır. Ancak bu lsblk, örneğin type(aygıt türü) ve / veya tran(aygıt taşıma türü) vb.

lsblk --nodeps - ad, seri, tür, tran
sda  0000000012400917BA30     disk sata
sdb  0000000012400917BA96     disk sata
sr0  4B583242334C453233353320 rom  usb

10
Bunun lsblkutil-linux sürüm 2.24 veya daha üstü bir sürüm gerektirdiğini unutmayın : github.com/karelzak/util-linux/commit/…
Johann

VM ubuntu kullandığımda sabit disk dizisi nasıl alınır? Yukarıdaki komutlar bu durum hakkında hiçbir şey döndürmez
Benyamin Jafari

11

Kullanarak hdparm Harddisk seri numaranızı terminalden görebilirsiniz.

Terminalinizi açın ve yazın

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

Eh, ancak seçeneği kullanmak için süper kullanıcı olmanız gerekir . Bunu da istemem ve ser # 'in kök izinleri olmadan okunmasını tercih ederim . Bu yüzden sadece don_crissti'nin çözümünü yenmişim. - sözdizimi 57 saniye önce-Ihdparm
sözdizimi 19.03.2015

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

Bu, bilinen disk adına karşı seri numarasını gösterir.


Bu akıllıca bir yaklaşım ama sanal kutum üzerinde çalışmıyor. by-idDir'in içeriği sadece sembolik bağlantılar gibi görünüyor , bu yüzden ls -al /dev/disk/by-id/size neye ihtiyacınız olduğunu gösterecek.
Wildcard

1
Bu aynı zamanda benim için debian live boot sisteminde de işe yaradı, diğer tüm araçlar sıfırdan mevcut değildi, internet kurmadan ve onları rahatça kullanmadan.
hoijui

3

Bildiğim en kolay yol (kök gerektirmez):

inxi -Dplxx

Bu, tüm diskleri, dizilerini ve tüm ek bilgileri verir. -p bölümler ekler. -l etiketleri ekler. -u bölümler için UUID ekler.

Ayrıca hatırlaması çok daha kolay, heh.

Numune:

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

Bunun optik sürücüleri filtrelediğine dikkat edin. Optik verileri görmek için:

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

Debian sistemimde, lsblk'nin ister kök ister kullanıcı olsun, diziler için hiçbir şey göstermediğini unutmayın. Bu nedenle inxi bu verileri almak için çok daha güvenilir bir yöntem kullanıyor.

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

lsblk --version
lsblk from util-linux 2.25.2

Gördüğünüz gibi, lsblk için, bir optik sürücünün ve disket sürücünün de bir disk olduğunu düşünüyor, bir anlamda bir disk yerleştirilinceye kadar disk olmadıklarından, aslında bir anlamda olduklarını düşünüyorlar. Seri için hiçbir şey göstermez, bu arada etiket gibi diğer değerler için hiçbir şey göstermez. Bu verinin sistemde mevcut olması nedeniyle kesinlikle bir hata, inxi'nin doğrudan elde ettiği yer burası.


2
Gönderinizin son kısmı yanlış, lsblkdisk olduğunu düşünmüyor, yalnızca tüm blok aygıtlarını listeler . Açıklama için güncellenmiş postama bakın. Bilgi göstermemeye gelince - bunun nedeni lsblkdavranışları için saygın olmayan debian kullanmanızdır . Archlinux üzerinde kesinlikle iyi çalışıyor, bu yüzden kesinlikle bir hata değil . Ayrıca, inxibu bilgiyi almak için diğer komutları kullanan bir bash betiğidir; "doğrudan" hiçbir şey almaz.
don_crissti 15:15

Teknik olarak doğru, ancak normal konuşma alanında diskler bu kavramı iletmenin iyi bir yoludur. Bir davranış başarısızlığı elbette bir hatadır, nedenlerin ne olduğu ile alakasızdır, bu yüzden bir lsblk aracının bir hata olmadığı yorumunuz temelde bir anlam ifade etmiyor. Böceğin debian olup olmadığı, bunun bir hata olduğu gerçeğini değiştirmez. Doğrudan arabuluculuk yapmadan, yani, inxi'nin seri bilgileri aldığı dosya sisteminden anlamına gelir. Bir cevap genel gnu / linux ortamını yansıtmalıdır, bu nedenle örneğin çoğu kullanıcının çalışmadığını göreceğinden debian / buntu dışındaki lsblk çalışmalarının bir değeri yoktur.
Lizardx

Cevabın bu kısmı yanlış: lsblk, bir optik sürücünün ve disket sürücünün de disk olduğunu düşünüyor . Aslında, lsblk blok aygıtları (sabit diskler, SSD'ler, disket sürücüleri, optik disk sürücüleri, LVM mantıksal birimleri vb. İçerir) listeler ve lsblk diskler ile disk olmayanlar arasında ayırım yapmaz.
pts

Debian buster üzerindeki FYI lsblk --nodeps -o name,serial, seri numaralarını gösteriyor, hatayı çoğaltamıyorum.
pts

lsblk geliştiriliyor, ancak bazı ince konular var, hala yaptığım araçlar için birincil veri kaynağı olarak kullanmayacağım, ancak şimdi ikincil kaynak olarak kullanıyorum, ancak zaten anlaşılmaz hatalarla karşılaştık kullanarak, şimdi üzerinde çalışıyorum.
Lizardx

1

Ben de kullanmayı seviyorum ls -l /dev/disk/by-idçünkü eğer varsa bir diskin WWN'sini gösterecek. WWN genellikle diskin etiketine yazdırılır, bu nedenle tanımlanması kolaydır.

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'}

Bu wwn-iddisk için gösterecektir . awkFiltre OS dağıtım ve sürümüne bağlı olarak ayarlanması gerekebilir. wwn-idPacemaker diski eskrim için gerekli olan komut dosyası için bir çözüme ihtiyacım vardı. Eğer bölümler ( /dev/sdX1örn.) Önceden yaratılmışsa grep, çıktıyı filtrelemek için bir başkasına ihtiyaç vardır:

ls -al /dev/disk/by-id/ | grep sdX | grep wwn | grep -v sdX1 | awk '{print $9'}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.