Sistemde hangi sabit disklerin olduğunu nasıl bulabilirim?


223

Monte edilmemiş ve muhtemelen biçimlendirilmemiş olanlar dahil, hangi sabit disklerin kullanılabilir olduğunu bilmem gerekiyor. Onları içinde dmesgveya bulamıyorum /var/log/messages(kaydırmak için çok fazla). Bu bilgiyi kullanmanın /devveya öğrenmenin bir yolu olduğunu umuyorum /proc, ama nasıl yapılacağını bilmiyorum. Linux kullanıyorum


Orijinal soru, belirli bir unix değişkeni belirtmedi ve donanım yönetimi açıkça değişkene bağlı.
Gilles,

Evet, ben yazdığımda işteydim, o yüzden eve gelip düşündükten sonra netleştim.
xenoterracide

1
Ne yaptığına bağlı olarak, udisks .
derobert

2
Google’da yapılan aramalarla birçok ortak donanım komutunu açıklayan kullanışlı bir sayfa buldum. Disk sürücüsü olanlar arasında lshw(Donanım Listesi), hwinfo(Donanım Bilgisi), lsscsi(List scsi aygıtları listesi), lsusb(USB veri yollarını / aygıtları lsblklistele ), (Liste blok aygıtları) fdisk -lve mount. Binarytides.com/linux-commands-hardware-info adresinde daha fazla bilgi bulabilirsiniz .
Edward

Yanıtlar:


182

Bu oldukça platforma bağımlı. Ayrıca farklı yöntemler uçtaki davaları farklı şekilde ele alabilir (çeşitli tiplerdeki “sahte” diskler, RAID hacimleri,…).

Modern udev kurulumlarında, /dev/diskbir diske veya bir bölüme seri numarasına ( /dev/disk/by-id/), UUID'ye ( /dev/disk/by-uuid), dosya sistemi etiketine ( /dev/disk/by-label/) veya donanım bağlantısına ( /dev/disk/by-path/) göre aramanıza izin veren alt dizinlerdeki depolama ortamlarına sembolik bağlantılar vardır .

Linux 2.6 altında, her bir disk ve disk benzeri cihazın girişi vardır /sys/block. Linux’ta zamanın başlangıcından beri diskler ve bölümler listelenmiştir /proc/partitions. Alternatif olarak, lshw : kullanabilirsiniz lshw -class disk.

Linux ayrıca lsblk, depolama birimlerinin güzel bir ağaç görünümünü gösteren bir yardımcı program sunar (BusyBox'a sahip gömülü cihazlarda bulunmadığından Linux-2.19'dan beri).

Bir varsa fdiskveya disklabelyarar, onu üzerinde çalışabilecek ne cihazlar söylemek mümkün olabilir.

Rosetta Stone for Unix'te birçok unix varyantı için yardımcı program adları , özellikle “donanım yapılandırmasını listele” ve “bir disk etiketi oku” satırları bulacaksınız .


11
Ooo; o Rosetta Stone sitesi mükemmel
Michael Mrozek

146

lsblktüm blok cihazlarını listeler. Senaryo yazmak için iyi ödünç verir:

$ lsblk -io 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

lsblk util-linux paketinde bulunur ve bu nedenle önerilen alternatiflerden çok daha evrenseldir.


9
Yalnızca fiziksel disklere ihtiyacınız varsa kullanın lsblk -d, -dlistelenen bir bağımlılık mesajı yok demektir.
coanor

2
Aslında =) $ lsblk -ido KNAME,TYPE,SIZE,MODEL(bir kısmı Arch’ın bir util-linuxparçası base), istenen bilgileri anında verir ve root olmanıza gerek kalmaz. Model ailesini değil , Aygıt modelini sunduğunu unutmayın . Skippy tarafından tavsiye edilenler, örneğin: "Model Ailesi: Seagate Barracuda 7200.12" (lsblk -ido: "disk 465,8G ST3500418AS" den eksik)). smarctl -i /dev/<device>
tuk0z

68

Peki ya

lshw -class disk

3
fena değil ... Çıktığımda iki kez kontrol edeceğim, çalıştığından eminim ... maalesef lshwsunucuda yüklü değil ( ) ve cevabını kuracağımızdan şüpheleniyorum.
xenoterracide

Nedense, lshw sabit diskleri listelemiyor.
André van Schoubroeck

2
Kök olarak çalıştırılmadığında, disk listelenmez, ancak hata verilmez.
Volker Siegel

1
bash: lshw: komut bulunamadı
Antoine

26

hwinfo yardım eder:

> hwinfo --disk
21: IDE 00.0: 10600 Disk                                        
[Created at block.245]
Unique ID: 3OOL.8MZXfAWnuH8
Parent ID: w7Y8.1T_0outZkp6
SysFS ID: /class/block/sda
SysFS BusID: 0:0:0:0
SysFS Device Link: /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0
Hardware Class: disk
Model: "Hitachi HTS54322"
Vendor: "Hitachi"
Device: "HTS54322"
Revision: "ESBO"
Driver: "ahci", "sd"
Driver Modules: "ahci"
Device File: /dev/sda
Device Files: /dev/sda, /dev/disk/by-id/ata-Hitachi_HTS543225A7A384_E2021342GEPG4J, /dev/disk/by-id/scsi-SATA_Hitachi_HTS5432_E2021342GEPG4J, /dev/disk/by-path/pci-0000:00:1f.2-scsi-0:0:0:0, /dev/disk/by-id/wwn-0x5000cca614c6395e
Device Number: block 8:0-8:15
BIOS id: 0x80
Geometry (BIOS EDD): CHS 484521/16/63
Size (BIOS EDD): 488397168 sectors
Geometry (BIOS Legacy): CHS 1023/255/63
Drive status: no medium
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #17 (SATA controller)
> hwinfo --block --short
disk:                                                           
  /dev/sda             Hitachi HTS54322
partition:
  /dev/sda1            Partition
  /dev/sda2            Partition
  /dev/sda3            Partition
  /dev/sda4            Partition
  /dev/sda5            Partition

19

@Giles, bunun platforma bağımlı olduğunu söylüyor. İşte böyle bir örnek.

CentOS 5.5 sistemi kullanıyorum. Bu sistem 4 disk ve 3ware RAID denetleyiciye sahiptir.

Benim durumumda, lshw -class disk, cat /proc/scsi/scsive parted --listRAID denetleyicisi (3ware 9650SE-4LP) gösterir. Bu gerçek diskleri göstermiyor:

yalnızca / dev / sda birimi sağlayan 3ware RAID denetleyicisini gösterir:

# lshw -class disk
  *-disk                  
       description: SCSI Disk
       product: 9650SE-4LP DISK
       vendor: AMCC
       physical id: 0.0.0
       bus info: scsi@0:0.0.0
       logical name: /dev/sda

# cat /proc/scsi/scsi 
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: AMCC     Model: 9650SE-4LP DISK  Rev: 4.06
  Type:   Direct-Access                    ANSI SCSI revision: 05

# parted --list

Model: AMCC 9650SE-4LP DISK (scsi)
Disk /dev/sda: 2000GB

Altında bulunan diskleri görebilmek için, 3_ware'den tw_cli yardımcı programını kurmak ve kontrol cihazının kendisine sormak zorunda kaldım.

# tw_cli info c0
...

VPort Status         Unit Size      Type  Phy Encl-Slot    Model
------------------------------------------------------------------------------
p0    OK             u0   931.51 GB SATA  0   -            WDC WD1002FBYS-02A6 
p1    OK             u0   931.51 GB SATA  1   -            WDC WD1002FBYS-02A6 

13

Hem "yana ben HDD ben? Yüklemiş bakar mısın ve" " nasıl depolama cihazlarının marka ve modelini belirliyorsunuz? " Bu soruya kopyası olarak işaretlenmiştir Şaşırdım kimse söz hdparmve smartctl. Birkaç makineye göz atmak, her ikisinin de (her ikisi de olmadığında), genellikle standart (hatta eski) linux dağıtımlarında kurulu bulunduğunu gösterir.

# smartctl -i /dev/sda
smartctl 6.1 2013-03-16 r3800 [i686-linux-3.9.9-301.fc19.i686.PAE] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Toshiba 2.5" HDD MK..56GSY
Device Model:     TOSHIBA MK1656GSY
Serial Number:    60PKT43CT
LU WWN Device Id: 5 000039 2919874b6
Firmware Version: LH013D
User Capacity:    160 041 885 696 bytes [160 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Mon Jul 22 11:13:37 2013 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

# hdparm -i /dev/sda

/dev/sda:

 Model=TOSHIBA MK1656GSY, FwRev=LH013D, SerialNo=60PKT43CT
 Config={ Fixed }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  sdma0 sdma1 sdma2 mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=yes: unknown setting WriteCache=enabled
 Drive conforms to: Unspecified:  ATA/ATAPI-3,4,5,6,7

 * signifies the current active mode

Her zamanki gibi daha fazla seçenek için manpage'i kontrol edin.


Unutulmamalıdır smartctlyolu bile Cygwin, 1 üzerinde çalışır! Sadece olası cihaz adlarını tekrar gözden geçirin smartctlve sürücünün SMART'ı desteklediğini döndürürse bakın .
Adrian Frühwirth

12

Fedora 14 kullanıyorum ve lshwburada mevcut değil (en azından varsayılan olarak). Ancak benim durumumda, fdisk -laşağıdaki çıktıyı elde etmek için komutu (root kullanıcısı olarak) kullandım:

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006a697

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/dm-0: 6509 MB, 6509559808 bytes
255 heads, 63 sectors/track, 791 cylinders, total 12713984 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 1543 MB, 1543503872 bytes
255 heads, 63 sectors/track, 187 cylinders, total 3014656 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-1 doesn't contain a valid partition table

Dm cihazlarının getirilmesini önlemek için fdisk -l /dev/sd?veya fdisk -l /dev/hd?düğmesini kullanın .
laebshade

5

Ben diğer SE cevap bulundu , inxiçok uygun olarak aracı:

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

3

Listelenen komutların çoğu, sistem tarafından önyükleme sırasında zaten tanınan diskleri aramanıza yardımcı olacaktır. Modern sürücülerle, makine çalışırken ve çalışırken (yaptığım) taktığınız bir şeyi kendiniz bulabilirsiniz. Tavsiyeyi http://fredericiana.com/2010/06/15/hot-plugging-a-sata-drive-under-linux/ adresinden beğendim :

SCSI ana bilgisayarlarını yeniden taramak için bunu deneyin (her SATA bağlantı noktası bir SCSI veri yolu olarak görünür):

echo "0 0 0"> / sys / sınıf / scsi_host / host / scan

... Ardından, bulunan diskler hakkında size bilgi göstermek için fdisk gibi Linux yardımcı programlarınızı kullanabilirsiniz.


3
sfdisk -l  

takılı olmasalar bile donanım / fiziksel diskler hakkında ayrıntılı bilgi verecektir.

Program, kullandığım tüm Linux değişkenlerine önceden yüklenmiştir, ancak kullanmak için root olmanız gerekir.


2

Bu benim için çalıştı:

fdisk -l 2>/dev/null | grep "Disk \/" | grep -v "\/dev\/md" | awk '{print $2}' | sed -e 's/://g'

1

sudo gparted tüm bunları bir GUI'de gösterecektir.

(Bunu bir terminal içinde yapmanız gerektiğini belirtmediniz, bu yüzden bu çözümün neden eksik olduğunu merak ediyorum.)


-1

Fantezi araçlar olmadan ve sözdizimi ya da parametrelerini gizlemeyen blok aygıt sayısını döndürmek için :

 ls /sys/block/* | grep block | grep sd | wc -l

Yerel sınavlarda, 47en büyük savaş 1makinemde ve dizüstü bilgisayarımda.


2
Bu, sistemlerimden birinde (500%) Ubuntu 12.04 ve başka bir sistemde% 200 oranında kapalı.
Anthon

-1

IMHO, lsblk, Linux dünyasında en yaygın olarak kullanılan komuttur (Raspbian gibi bağlantı noktalarında bile çalışır). Kimseyi kırmak istemem, ama aramak için cihazın adını açıkça bilmenizi gerektiren bazı komutlar vardır. Örneğin, smartctl'i çalıştırmak için sdc'nin varlığından haberdar olmalısınız. Bu dedi ki, lsblk evrensel değil - evet Solaris'te, ancak hpux'ta değil. Teşekkürler.


2
lsblkSolaris'te de bulunduğundan bahsetmenin yanı sıra , bu, en çok oy alan iki cevaptan daha fazla bilgi içermiyor. Bu daha iyi bir yorum olarak unix.stackexchange.com/a/94211/22812
Anthony Geoghegan
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.