Come ottenere il numero di dischi fisici in Linux?


12

Qual è il comando da riga di comando per ottenere il numero di dischi fisici nel server Linux e quanto spazio viene utilizzato su ciascuno?

Risposte:


10

sudo fdisk -lelencherà i tuoi dischi e un sacco di statistiche su di essi, comprese le partizioni. I dischi sono generalmente sotto forma di /dev/sdxe partizioni /dev/sdxn, dove x è una lettera e n è un numero (quindi sda è il primo disco fisico e sda1 è la prima partizione su quel disco).

sudo df -hti dà le dimensioni e le statistiche di utilizzo per partizione. Rilascia il -he ottieni l'uso in blocchi, con esso è leggibile dall'uomo.

Ho inserito il sudos perché non ho ricevuto output da fdisk e solo output parziale da df quando ho eseguito i comandi come utente normale, suppongo perché i comandi letti da qualche parte sono vietati ai non amministratori.


dovresti aggiungere partedviene usato invece fdisk per le partizioni GPT. solo per imporre la tua buona risposta.
Francisco Tapia,

6

Se vuoi davvero visualizzare solo l'hardware e non i volumi e le partizioni RAID che potrebbero essere visti dal sistema operativo come unità fisiche. Potresti provare lshw

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

O un po 'prolisso

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

3

Penso che il modo più semplice (almeno per quanto riguarda lo sforzo di analisi) su una recente installazione di Linux sarebbe

$ lsblk -S

che produce qualcosa del genere:

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:~# 

-Snon è un'opzione valida su debian wheezy / sid o Ubuntu 12.10. Senza di essa, tuttavia, lsblkviene visualizzato un output simile a una foresta.
dezso

2

Penseresti che ci sarebbe una risposta semplice a questa, ma in realtà dipende da cosa intendi per "disco fisico". I volumi iSCSI e i dispositivi RAID (ad esempio) vengono visualizzati come dischi fisici, ma gli strumenti utilizzati per esaminarli differiscono.

Se intendi semplicemente un'unità SATA o SCSI collegata direttamente a un controller host sulla scheda madre del server, stai cercando dispositivi utilizzati attivamente situati in / dev / sdN, in modo da poter eseguire il grepping attraverso il tuo dmesg (dmesg | grep sd) oppure puoi guardare in / dev / disk / by-id o ancora puoi guardare in / proc / diskstats.

Una volta identificata la voce / dev / per i dispositivi presenti, è possibile utilizzare lo strumento appropriato per verificare lo spazio libero. Questo dipende ancora da altre informazioni, come il modo in cui sono state partizionate, se usano lvm e così via.


Un altro punto: la mia risposta è stata supporre che potreste voler partizionare un disco, modificarne il layout di lvm o creare / modificare filesystem. Se vuoi solo sapere quanto spazio libero è disponibile sul disco già allocato, esegui il comando "df -h"
sapeurfaire

In realtà, questa domanda è motivata da stackoverflow.com/questions/11744730/… . Voglio sapere in realtà, quanti sistemi di dischi separati sono presenti nella nostra macchina server. (Risposta di Tomas).
Arpssss,

Quanti sono disponibili o quanti sono in uso? In altre parole, stai cercando un posto dove mettere un altro disco o stai cercando di trovare un disco che ritieni sia già lì?
sapeurfaire,

Sto cercando di trovare un disco che penso sia già lì.
Arpssss,

2

A seconda della distribuzione (in questo caso Centos 7) lsblk -dmostrerà (ad esempio) tre dischi fisici.

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 

iostatmostrerà anche risultati simili (ignora i dmdispositivi in ​​quanto fanno parte di 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

0

Se vuoi solo conoscere i dischi fisici nel sistema.

lsblk | grep -e ^ NAME -e disco

che produce qualcosa di simile a:

NOME MAJ: TAGLIA MIN. RM TIPO MOUNTPOINT

sda 8: 0 0 40G 0 disco

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.