Wie erhalte ich die Anzahl der physischen Festplatten unter Linux?

12

Wie lautet der Befehlszeilenbefehl, um die Anzahl der physischen Festplatten in Linux Server abzurufen und wie viel Speicherplatz wird auf jeder Festplatte verwendet?

Arpssss
quelle

Antworten:

10

sudo fdisk -llistet Ihre Festplatten und eine Reihe von Statistiken darüber auf, einschließlich der Partitionen. Die Festplatten haben im Allgemeinen die Form /dev/sdxund Partitionen /dev/sdxn, wobei x ein Buchstabe und n eine Zahl ist (also ist sda die erste physische Festplatte und sda1 die erste Partition auf dieser Festplatte).

sudo df -hgibt Ihnen die Größe und Nutzungsstatistik pro Partition. Wenn Sie das fallen -hlassen, wird es in Blöcken verwendet. Damit ist es für Menschen lesbar.

Ich habe die sudos dort eingefügt, weil ich keine Ausgabe von fdisk und nur eine teilweise Ausgabe von df erhalten habe, als ich die Befehle als regulärer Benutzer ausgeführt habe, ich nehme an, weil die Befehle von einem Ort außerhalb der Grenzen für Nicht-Administratoren gelesen wurden.

ChimneyImp
quelle
Sie sollten hinzufügen parted, dass stattdessen fdisk für GPT-Partitionen verwendet wird. nur um Ihre gute Antwort durchzusetzen.
Francisco Tapia
6

Wenn Sie wirklich nur die Hardware und nicht RAID-Volumes und -Partitionen anzeigen möchten, die vom Betriebssystem möglicherweise als physische Laufwerke angesehen werden. Vielleicht möchten Sie lshw ausprobieren

lshw -class disk -short
H/W path        Device      Class       Description
===================================================
/0/1/0.0.0      /dev/cdrom  disk        DVD-RAM GSA-H55N
/0/1/0.1.0      /dev/sda    disk        160GB ST3160021A
/0/2/0.0.0      /dev/sdb    disk        160GB ST3160815AS

Oder ein bisschen ausführlich

lshw -class disk
  *-cdrom                 
   description: DVD-RAM writer
   product: DVD-RAM GSA-H55N
   vendor: HL-DT-ST
   physical id: 0.0.0
   bus info: scsi@0:0.0.0
   logical name: /dev/cdrom
   logical name: /dev/sr0
   version: 1.04
   serial: [
   capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
   configuration: ansiversion=5 status=nodisc
  *-disk
   description: ATA Disk
   product: ST3160021A
   vendor: Seagate
   physical id: 0.1.0
   bus info: scsi@0:0.1.0
   logical name: /dev/sda
   version: 8.01
   serial: 5JS97CFY
   size: 149GiB (160GB)
   capabilities: partitioned partitioned:dos
   configuration: ansiversion=5 sectorsize=512 signature=000f3a2f
  *-disk
   description: ATA Disk
   product: ST3160815AS
   vendor: Seagate
   physical id: 0.0.0
   bus info: scsi@2:0.0.0
   logical name: /dev/sdb
   version: 3.AA
   serial: 9RX7AK36
   size: 149GiB (160GB)
   capabilities: partitioned partitioned:dos
   configuration: ansiversion=5 sectorsize=512 signature=000b6d91
Buzut
quelle
3

Ich denke, der einfachste Weg (zumindest in Bezug auf den Parsing-Aufwand) für eine aktuelle Linux-Installation wäre

$ lsblk -S

welches so etwas ausgibt:

tremendous:~# lsblk -S
NAME HCTL       TYPE VENDOR   MODEL             REV TRAN
sda  0:0:0:0    disk ATA      WDC WD5000AUDX-6 01.0 sata
sdb  1:0:0:0    disk ATA      WDC WD5000AUDX-6 01.0 sata
tremendous:~# 
Andreas Wiese
quelle
-Sist keine gültige Option für Debian Wheezy / Sid oder Ubuntu 12.10. Ohne sie wird jedoch lsblkeine schöne waldähnliche Ausgabe angezeigt.
Dekso
2

Sie würden denken, es gäbe eine einfache Antwort darauf, aber es hängt tatsächlich davon ab, was Sie unter "physischer Festplatte" verstehen. iSCSI-Volumes und RAID-Geräte (zum Beispiel) werden als physische Festplatten angezeigt, aber die Tools, mit denen diese untersucht werden, unterscheiden sich.

Wenn Sie nur ein einfaches SATA- oder SCSI-Laufwerk meinen, das direkt an einen Host-Controller auf der Hauptplatine des Servers angeschlossen ist, suchen Sie nach aktiv verwendeten Geräten unter / dev / sdN, damit Sie in Ihrem dmesg nach ihnen suchen können (dmesg |) grep sd) oder Sie könnten in / dev / disk / by-id suchen oder noch einmal in / proc / diskstats.

Sobald Sie den Eintrag / dev / für vorhandene Geräte identifiziert haben, können Sie mit dem entsprechenden Tool nach freiem Speicherplatz suchen. Dies hängt wiederum von anderen Informationen ab, z. B. wie sie partitioniert wurden, ob sie das lvm verwenden und so weiter.

Sapeurfaire
quelle
Ein weiterer Punkt: Meine Antwort war die Annahme, dass Sie möglicherweise eine Festplatte partitionieren, das lvm-Layout ändern oder Dateisysteme erstellen / ändern möchten. Wenn Sie nur wissen möchten, wie viel freier Speicherplatz auf der bereits zugewiesenen Festplatte verfügbar ist, führen Sie den Befehl "df -h"
sapeurfaire
Tatsächlich ist diese Frage durch stackoverflow.com/questions/11744730/… motiviert . Ich möchte eigentlich wissen, wie viele separate Festplattensysteme sich in unserem Server befinden. (Tomas Antwort).
Arpssss
Wie viele sind verfügbar oder wie viele werden verwendet? Mit anderen Worten, suchen Sie nach einem Ort, an dem Sie eine andere Festplatte ablegen können, oder versuchen Sie, eine Festplatte zu finden, von der Sie glauben, dass sie bereits vorhanden ist?
Sapeurfaire
Ich versuche eine Festplatte zu finden, von der ich glaube, dass sie bereits vorhanden ist.
Arpssss
2

Abhängig von Ihrer Distribution (in diesem Fall Centos 7) lsblk -dwerden Ihnen (zum Beispiel) drei physische Festplatten angezeigt .

NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0   11:0    1  1024M  0 rom  
sr1   11:1    1  1024M  0 rom  
sdf    8:80   0 372.6G  0 disk 
sde    8:64   0 372.6G  0 disk 
sdg    8:96   0   1.8T  0 disk 

iostatzeigt auch ähnliche Ergebnisse an (ignorieren Sie die dmGeräte, zu denen sie gehören LVM)

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sdf               1.85        41.74        53.80   68524791   88335482
sde               0.00         0.01         0.00      20219          0
dm-0              7.75        40.17        52.24   65945186   85767784
dm-1              0.31         0.94         1.56    1543416    2567312
sdg               0.86         1.89       171.04    3096240  280813864
Chin Seran
quelle
0

Wenn Sie nur die physischen Festplatten im System kennen möchten.

lsblk | grep -e ^ NAME -e Festplatte

welches etwas ausgibt wie:

NAME MAJ: MIN RM GRÖSSE RO TYP MOUNTPOINT

sda 8: 0 0 40G 0 festplatte

Michael L West
quelle