how to list all hard disks in linux from command line
Hard Disk, Hard Drive, Disk Drive lub Hard Disk Drive to nazwy urządzeń do przechowywania danych (urządzeń sprzętowych) do przechowywania i pobierania informacji cyfrowych zazwyczaj w komputerze. Do komputera może być podłączonych wiele dysków twardych, zarówno wewnętrznych jak i zewnętrznych.
Teraz te dyski twarde mogą być dalej podzielone na wiele logicznych pojemników w celu hostowania różnych systemów plików lub w celu utrzymania systemów plików/plików oddzielnie. Są one nazywane partycjami i mogą być montowane niezależnie, bez wpływu na inne dyski i partycje. Na wysokim poziomie abstrakcji, można postrzegać partycje jako oddzielne dyski, jak również.
Dyski twarde w systemie są wykrywane i/lub identyfikowane przez różne sterowniki urządzeń w jądrze, a następnie przypisuje się im unikalny identyfikator urządzenia podczas uruchamiania, umożliwiając ich zamontowanie i odczytanie później (tak, to jest nadmierne uproszczenie tego, jak to wszystko działa, ale powinno wystarczyć na potrzeby tego postu). Zobaczymy w dalszej części postu, jak można wyświetlić listę dysków, które zostały zidentyfikowane przez system.
Dyski twarde mogą być rozróżniane na podstawie interfejsu używanego do interakcji z nimi. Niektóre z powszechnie używanych typów dysków to między innymi SCSI (Small Computer System Interface), ATA lub IDE (Advanced Technology Attachment), SATA (Serial ATA), SAS (Serial Attached SCSI). Jak już wspomniałem, fizyczny dysk twardy ma przypisany unikalny identyfikator podczas uruchamiania. Można to skonfigurować (używając m.in. udev) tak, że można przypisać mu dowolne id, ale zazwyczaj większość systemów podąża za pewnymi powszechnie przyjętymi konwencjami podczas nazywania urządzeń.
Istnieje kilka różnych poleceń, które można wykorzystać w środowisku Linux, aby wyświetlić listę dysków, które zostały zamontowane w systemie.
df
Komenda df jest głównie przeznaczona do raportowania wykorzystania przestrzeni dyskowej systemu plików. Jest to nadal dobre narzędzie do wypisywania dysków dostępnych w systemie, chociaż wypisuje raczej systemy plików niż dyski per se.
Możesz użyć opcji -h lub -human-readable z df, aby wydrukować użycie dysku w formacie czytelnym dla człowieka. Szukaj systemów plików, które identyfikują się jako /dev/sda, /dev/sdb lub /dev/hda, aby zidentyfikować dyski.
lsblk
Komenda lsblk służy do listowania urządzeń blokowych. Odczytuje ono dane z bazy danych udev wraz z systemem plików sysfs, aby wydrukować raport o wszystkich dostępnych lub określonych urządzeniach blokowych. Urządzenia blokowe abstrahują rzeczywistą charakterystykę sprzętową dowolnego urządzenia fizycznego i pozwalają na interakcję z nim za pomocą buforowanego interfejsu.
Komenda lsblk bez żadnego argumentu wypisze urządzenia blokowe w formacie drzewa. Ponownie szukaj nazw, takich jak sda, sdb itp. Najwyższy poziom oznacza dysk, a dzieci pierwszego poziomu reprezentują partycje w bloku.
Istnieje kilka użytecznych opcji wiersza poleceń, które mogą być użyte z poleceniem lsblk. Opcja -d lub -nodeps spowoduje wyświetlenie urządzenia, a nie partycji. Opcja -S lub -scsi spowoduje wypisanie tylko urządzeń SCSI.
lshw
Innym często używanym narzędziem jest lshw, które może wypisać szczegółowe informacje o twoim sprzęcie. Ponownie może ono nie być domyślne w niektórych dystrybucjach, mimo że jest to aplikacja systemowa.
bash$ lshw -class disk
Powyższe polecenie wyświetli listę wszystkich dysków w systemie. Można również określić klasę pamięci masowej, jeśli chcemy wypisać również kontrolery pamięci masowej. Możesz dodatkowo zmniejszyć szczegółowość danych wyjściowych, używając opcji -short
bash$ lshw -class disk -class storage -short
blkid
Wspomniane wcześniej polecenie lsblk jest lepszą i zalecaną opcją niż polecenie blkid. Zamieszczam je tutaj tylko dla kompletności.
blkid wypisze kilka różnych atrybutów o urządzeniach blokowych. Zazwyczaj można wyodrębnić dyski i partycje z wyjścia, tak jak w przypadku lsblk.
bash$ blkid
fdisk
fdisk jest popularnym poleceniem używanym głównie do manipulowania tablicą partycji. Można go użyć do wylistowania wszystkich partycji z tablicy partycji i znalezienia urządzeń, które są dostępne. Opcja -list lub -l w wierszu poleceń wypisze wszystkie znane partycje ze wszystkich urządzeń.
bash$ fdisk -l
Prawdopodobnie szukasz czegoś takiego na wyjściu.
Istnieje kilka innych narzędzi do manipulacji tablicą partycji zbudowanych na bazie fdiska, z większą ilością opcji i funkcji. sfdisk i cfdisk są dwoma takimi przykładami. Mogą one jednak nie być zainstalowane w większości dystrybucji.
parted
Podobnie jak fdisk, parted jest kolejnym narzędziem do manipulacji tablicą partycji. Ponownie możesz użyć opcji -list lub -l w wierszu poleceń, aby wydrukować urządzenia lub dyski i wszystkie informacje. Lubię domyślne wyjście parted lepiej niż fdisk, ale to jest subiektywne.
bash$ parted -l
Model: ATA ST3160815AS (scsi)
Disk /dev/sda: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
/proc/ plik
Innym podstawowym sposobem jest wydrukowanie zawartości folderu /proc/partitions/. Spowoduje to wydrukowanie wszystkich znanych urządzeń i partycji w systemie. Do tego czasu powinieneś być w stanie odróżnić dysk od partycji, jak zakładam.
bash$ cat /proc/partitions
Poszukaj mniejszego '0′ lub nazwy zgodnej z formatem /dev/sda.
lsscsi
Jeśli wiesz, że masz tylko urządzenia SCSI lub potrzebujesz tylko informacji o dyskach SCSI, możesz użyć polecenia lsscsi. Narzędzie to może nie być domyślnie zainstalowane w niektórych dystrybucjach.
Jak sugeruje nazwa polecenia, wypisuje ono wszystkie informacje o urządzeniach SCSI w systemie.
bash$ lsscsi
Niezależnie od tego, na jakiej dystrybucji pracujesz, powinieneś być w stanie wypisać dyski w systemie, używając przynajmniej jednego z powyższych poleceń.
Wszystkie dyski w systemie powinny być wypisane na liście.