Jak uzyskać liczbę dysków fizycznych w systemie Linux?


12

Jaka jest komenda wiersza poleceń, aby uzyskać liczbę dysków fizycznych w systemie Linux Server i ile miejsca jest zużyte na każdym z nich?

Odpowiedzi:


10

sudo fdisk -lwyświetli listę twoich dysków i garść statystyk na ich temat, w tym partycji. Dyski mają zazwyczaj postać /dev/sdxpartycji i /dev/sdxn, gdzie x jest literą, a n jest liczbą (więc sda to pierwszy dysk fizyczny, a sda1 to pierwsza partycja na tym dysku).

sudo df -hdaje statystyki wielkości i zużycia na partycję. Porzuć, -ha otrzymasz użycie w blokach, dzięki czemu będzie czytelne dla człowieka.

Umieściłem tam sudos, ponieważ nie otrzymałem danych wyjściowych z fdisk i tylko częściowe dane wyjściowe z df, kiedy uruchomiłem polecenia jako zwykły użytkownik, przypuszczam, że ponieważ polecenia czytały gdzieś poza granicami nie-adminów.


powinieneś dodać partedjest używany zamiast fdisk dla partycji GPT. tylko po to, aby wymusić dobrą odpowiedź.
Francisco Tapia,

6

Jeśli naprawdę chcesz wyświetlić tylko sprzęt, a nie woluminy i partycje RAID, które system operacyjny może postrzegać jako dyski fizyczne. Możesz spróbować 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

Lub trochę bardziej gadatliwy

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

Myślę, że najłatwiejszym sposobem (przynajmniej dotyczącym analizy) jest najnowsza instalacja Linuksa

$ lsblk -S

która generuje coś takiego:

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

-Snie jest prawidłową opcją w Debian wheezy / sid lub Ubuntu 12.10. Bez tego jednak lsblkwyświetla ładne, leśne wyjście.
dezso

2

Można by pomyśleć, że będzie na to prosta odpowiedź, ale tak naprawdę zależy to od tego, co rozumiesz przez „dysk fizyczny”. Woluminy iSCSI i urządzenia RAID (na przykład) pojawiają się jako dyski fizyczne, ale narzędzia używane do ich badania różnią się.

Jeśli masz na myśli zwykły dysk SATA lub SCSI podłączony bezpośrednio do kontrolera hosta na płycie głównej serwera, szukasz aktywnie używanych urządzeń znajdujących się w katalogu / dev / sdN, abyś mógł dla nich przeszukać swoje dmesg (dmesg | grep sd) lub możesz zajrzeć do / dev / disk / by-id lub jeszcze raz możesz zajrzeć do / proc / diskstats.

Po zidentyfikowaniu wpisu / dev / dla urządzeń, które są obecne, możesz użyć odpowiedniego narzędzia, aby sprawdzić wolne miejsce. To znowu zależy od innych informacji, takich jak sposób partycjonowania, czy używają lvm i tak dalej.


Jeszcze jedna sprawa: moja odpowiedź zakładała, że ​​możesz chcieć podzielić dysk na partycje, zmodyfikować jego układ lvm lub utworzyć / zmodyfikować systemy plików. Jeśli chcesz tylko wiedzieć, ile wolnego miejsca jest dostępne na już przydzielonym dysku, uruchom polecenie „df -h”
sapeurfaire,

Właściwie, to pytanie jest motywowane stackoverflow.com/questions/11744730/... . Chcę wiedzieć, ile osobnych systemów dyskowych znajduje się na naszym serwerze. (Tomas Answer).
Arpssss

Ile jest dostępnych lub ile jest używanych? Innymi słowy, czy szukasz miejsca na inny dysk, czy też próbujesz znaleźć dysk, który Twoim zdaniem już tam jest?
sapeurfaire

Próbuję znaleźć dysk, który moim zdaniem już tam jest.
Arpssss

2

W zależności od twojej dystrybucji (w tym przypadku Centos 7) lsblk -dpokażą ci (na przykład) trzy dyski fizyczne.

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 

iostatpokaże również podobne wyniki (zignoruj dmurządzenia, ponieważ są częścią 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

Jeśli chcesz tylko znać dyski fizyczne w systemie.

lsblk | dysk grep -e ^ NAME -e

która generuje coś takiego:

NAZWA MAJ: MIN RM ROZMIAR RO TYPE MOUNTPOINT

sda 8: 0 0 40G 0 dysk

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.