Bir Linux makineye bağlı tüm depolama aygıtlarını bulma


32

Belirli bir makineye bağlı tüm yazılabilir depolama aygıtlarını, monte edilmiş olsun olmasın, bulmaya ihtiyacım var.

Bunu yapmanın salakça yolu /devyazılabilir bir cihaza (hd * ve sd *) karşılık gelen her girişi denemek olacaktır .

Daha iyi bir çözüm var mı, yoksa buna yapmalı mıyım?



2
Belki de udisks kullanmak istersiniz?
derobert

Ben yok sadece ben arıyorum - sabit diskler bir sistem üzerinde ne bulmak istiyorum tüm depolama cihazları
warren

Bence hepimiz sabit diskleri ve benzerlerini varsaydık. Gerçekten başka bir şey mi kastediyorsun? Mesela, teyp sürücüleri, yazıcılar vb.
derobert

2
@derobert - evet, bu nedenle "tüm depolama aygıtları" unvanı :) :)
warren

Yanıtlar:


47

Biri yalnızca blok depolama aygıtlarıyla ilgileniyorsa lsblk, yaygın olarak bulunan util-linux paketinden yararlanabilirsiniz:

$ lsblk -o KNAME,TYPE,SIZE,MODEL
KNAME TYPE   SIZE MODEL
sda   disk 149.1G TOSHIBA MK1637GS
sda1  part  23.3G 
sda2  part    28G 
sda3  part  93.6G 
sda4  part   4.3G 
sr0   rom   1024M CD/DVDW TS-L632M

Diğer birçok sütunla komut dosyası yazmak için kendisini iyi ödünç verir.


13

Sınıftaki veya lshwcihazdaki cihazlarla ilgili ayrıntıları çıkarıp ayıklayabilirsiniz (ve belki diğerleri - sınıf size depolama denetleyicileri, scsi, sata, sas, vb. Hakkında ayrıntılı bilgi verir).disktapestorage

Örneğin

lshw -class disk -class tape

-shortSeçenek güzel kompakt özetini verir. örn. evimdeki zfsonlinux sunucu / iş istasyonu / deney kutusu (ne yazık ki teyp cihazı yok):

# lshw - sınıf bandı - sınıf disk - sınıf depolama - kısa
H / W yolu Cihaz Sınıfı Açıklama
================================================== =======
/ 0/100/4/0 depolama JMB362 SATA Denetleyicisi
/ 0/100/5/0 scsi10 depolama JMB362 SATA Denetleyicisi
/0/100/5/0/0.0.0 / dev / sdc disk 120GB Patriot Wildfire
/ 0/100 / b / 0 scsi1 depolama SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]
/0/100/b/0/0.0.0 / dev / sdd disk 1TB WDC WD10EARS-00Y
/0/100/b/0/0.1.0 / dev / sde diski 1TB WDC WD10EACS-00Z
/0/100/b/0/0.2.0 / dev / sdf diski 1TB WDC WD10EACS-00Z
/0/100/b/0/0.3.0 / dev / sdg disk 1TB ST31000528AS
/0/100/b/0/0.4.0 / dev / sdh disk 1TB ST31000528AS
/0/100/b/0/0.5.0 / dev / sdi disk 1TB ST31000528AS
/0/100/b/0/0.6.0 / dev / sdj disk 1TB ST31000528AS
/ 0/100/11 scsi2 depolama SB7x0 / SB8x0 / SB9x0 SATA Denetleyici [AHCI modu]
/ 0/100/11/0 / dev / sda disk 128GB Patriot Torqx 2
/ 0/100/11/1 / dev / sdb disk 1TB ST31000528AS
/ 0/1 scsi11 depolama     
/0/1/0.0.0 / dev / sdk diski 1967 MB SCSI Diski
/0/1/0.0.1 / dev / sdl diski SCSI Diski
/0/1/0.0.2 / dev / sdm diski SCSI Diski
/0/1/0.0.3 / dev / sdn diski SCSI Diski
/ 0/2 scsi66 depolama     
/0/2/0.0.0 / dev / sdo diski SCSI Diski
/ 0/3 scsi67 depolama     
/0/3/0.0.0 / dev / sdp diski 4057MB SCSI Diski

/ 0/1 cihazları aslında bir USB kart okuyucusudur (yuvalardan birine takılı 2GB'lık bir SD kart vardır) ve / 0/2 cihazı sadece şarj etmek için takılı olduğum android telefonum. 0/3 aygıtı, 4 GB'lık bir USB flash sürücüdür.

lshwDüz metin, html, xml ve json çıktısı üretebilir. Aynı zamanda donanım detaylarını bir sqlite veritabanı formatına atabilir.

Debian ve diğer birçok dağıtım için paketlenmiştir. Ana sayfa ve kaynak http://ezix.org/project/wiki/HardwareLiSter adresindedir.


5

Lütfen bu komutu dene

ls -l /dev /dev/mapper |grep '^b'

Sisteminizdeki tüm blok cihazlarını listeler.


5

lsblkHer bir cihazın salt okunur olup olmadığının yanı sıra tüm blok cihazlarını listelemek için kullanabilirsiniz .

Daha sonra grepve awksadece okunmayan blok cihazlarının isimlerini yazdırmak için kullanabilirsiniz :

lsblk -d -n -oNAME,RO | grep '0$' | awk {'print $1'}

Bu önceki cevabın
Warren

4

lsblk Tüm blok depolama cihazlarını listeler.

fdisk -l listelenen tüm cihazlardaki tüm bölümleri listeler. /proc/partitions

lshw -short sistemdeki tüm donanımlar hakkında (belki de firewire hariç) bilgi verecektir.


3

Derobert verdiğiniz yanıta göre, sen listeleri sürücüler ve teyp o şey arıyorsanız, varsa yazıcıları , sen ilginizi çekebilir lsdev, lsusbve lspci.


Tabii ki, bu ağa bağlı depo bulmak için başarısız olur :-(
derobert

1
Ardındanfdisk -l
kollar

2

Aşağıdaki komutu deneyebilirsiniz:

file /dev/disk/by-id/* | awk -F'/' 'NR>1{print "\047/dev/"$NF}' | sort | uniq

1
ne işe yarar ve lshw ile birlikte listeleme bloğu ve teyp aygıtı sınıfları ile nasıl karşılaştırılır?
n611x007 10:15

2

Tüm diskleri listelemek için hwinfo kullanabilirsiniz ( belgeler ).

hwinfo --block --short genel bir bakış verir:

disk:
  /dev/sdb             WDC WD3200AAKS-7
  /dev/sda             SAMSUNG HD103UJ
partition:
  /dev/sdb1            Partition
  /dev/sdb2            Partition
  /dev/sda1            Partition
cdrom:
  /dev/sr1             TSSTcorp DVD+-RW TS-H653B
  /dev/sr0             HL-DT-ST DVD-ROM GDRH20N

hwinfo --disk Her disk için daha fazla ayrıntı verir.

Bilginize: Ubuntus 14.04 ve üstü gibi bazı Linux dağıtımlarında, hwinfo resmi depoda mevcut değildir .


0

Bunu buldum fdiskve lsblkDebian yükleyicisinin sanal terminalinde mevcut değil. Bu durumda blkid, blok depolama aygıtları için UUID'yi alan kullanıyorum .


-1

RAID aygıtlarını kastediyorsanız, hdparm smartctl etc kullanarak doğru sonucu elde edemezsiniz, çünkü bu tür araçlar Donanım Düzeyi hakkında bilmek istiyorsanız, işletim sistemi düzeyinde olan / dev'i ararlar. megacli ile hata ayıklamak için kullanılır

    [root@ns3539186 ~]# /opt/megaraid/megacli -LDPDInfo -aAll |grep "Virtual Disks\|RAID Level\|State"
Number of Virtual Disks: 2
RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0
State               : Optimal
Foreign State: None
Media Type: Solid State Device
Foreign State: None
Media Type: Solid State Device
RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0
State               : Optimal
Foreign State: None
Foreign State: None

Diskin seri numarasını almak için

[root@ns3539186 ~]# /opt/megaraid/megacli -PDList -aAll | egrep 'Slot\ Number|Device\ Id|Inquiry\ Data|Raw|Firmware\ state' | sed 's/Slot/\nSlot/g' |grep "Da                    ta\|Slot\|Raw"
Slot Number: 0
Raw Size: 447.130 GB [0x37e436b0 Sectors]
Inquiry Data: PHYS733402Z0480BGN  INTEL SSDSC2KB480G7                     SCV10100
Slot Number: 1
Raw Size: 447.130 GB [0x37e436b0 Sectors]
Inquiry Data: PHYS733402YV480BGN  INTEL SSDSC2KB480G7                     SCV10100
Slot Number: 2
Raw Size: 3.638 TB [0x1d1c0beb0 Sectors]
Inquiry Data: K3GJTYMB            HGST HUS726040ALA610                    A5GNT920
Slot Number: 3
Raw Size: 3.638 TB [0x1d1c0beb0 Sectors]
Inquiry Data: K3GHW57B            HGST HUS726040ALA610                    A5GNT920

Yukarıdaki çıktıda Sorgu Verileri Seri numarası içeriyor


-1

Yerel ve paylaşılan depolama alanlarını bulmak için kullandığım birkaç komut.

Yerel depolama için

lsblk | grep -v '^loop'

Paylaşılan depolama için

findmnt -D | grep -v '^tmpfs' | grep -v '^/'

OR

df -kh | grep -v '^tmpfs' | grep -v '^/'

Neden 6+ yıl önce önerilmiş (ve kabul edilmiş) aynı araçları yeniden seçtin?
warren

OS değişti ve çünkü şimdi bir sürü almak loopve tmpfsbölüm. Bu nedenle yukarıdaki gibi grep kullanarak çıktının temizlenmesi daha iyidir.
Mian Asbat Ahmad,

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.