Articles

how to list all hard disks in linux from command line

Harde schijf, harde schijf, diskettestation of harde schijf zijn allemaal namen voor een apparaat voor gegevensopslag (hardware-apparaat) voor het opslaan en ophalen van digitale informatie, meestal in een computer. Aan een computer kunnen meerdere harde schijven gekoppeld zijn, zowel interne als externe.

Nu kunnen deze harde schijven verder verdeeld worden in meerdere logische containers om verschillende bestandssystemen te hosten of om bestandssystemen/bestanden gescheiden te houden. Deze worden partities genoemd en kunnen onafhankelijk van elkaar worden aangekoppeld, zonder dat dit invloed heeft op de andere schijven en partities. Op een hoog abstractieniveau kun je partities ook als aparte schijven zien.

Harde schijven op een systeem worden gedetecteerd en/of geïdentificeerd door verschillende apparaatdrivers in de kernel en krijgen dan een uniek apparaat-id toegewezen tijdens het opstarten, zodat ze later gemount en gelezen kunnen worden (ja, dit is een te eenvoudige voorstelling van hoe het allemaal werkt, maar het zou moeten volstaan voor deze post). We zullen later in dit artikel zien hoe je een lijst kunt maken van schijven die door het systeem zijn geïdentificeerd.

De harde schijven kunnen worden onderscheiden op basis van de interface die wordt gebruikt om ermee te communiceren. Enkele van de meest gebruikte typen schijven zijn SCSI (Small Computer System Interface), ATA of IDE (Advanced Technology Attachment), SATA (Serial ATA), SAS (Serial Attached SCSI) en andere. Zoals ik al zei, krijgt de fysieke harde schijf een unieke id toegewezen bij het opstarten. Dit kan worden geconfigureerd (onder andere met udev) zodat u het vrij veel id kunt toewijzen, maar meestal volgen de meeste systemen een aantal universeel geaccepteerde conventies bij het benoemen van apparaten.

Er zijn verschillende commando’s die u in een Linux omgeving kunt gebruiken om een lijst te maken van schijven die op het systeem zijn gemount.

df

Het df commando is primair bedoeld om het gebruik van schijfruimte op het bestandssysteem te rapporteren. Het is nog steeds een goed hulpprogramma om de schijven af te drukken die beschikbaar zijn voor het systeem, hoewel het bestandssystemen afdrukt in plaats van schijven op zich.

U kunt de optie -h of -human-readable met df gebruiken om het schijfgebruik in een voor mensen leesbaar formaat af te drukken. Zoek naar bestandssystemen die zich identificeren als /dev/sda, /dev/sdb of /dev/hda om de schijven te identificeren.

lsblk

Het lsblk commando is om een lijst van blokapparaten te maken. Het leest de gegevens uit de udev database samen met het sysfs bestandssysteem om een rapport af te drukken over alle beschikbare of gespecificeerde block devices. Block devices abstraheert de werkelijke hardware karakteristieken van elk fysiek apparaat en stelt je in staat om er mee te communiceren via een gebufferde interface.

Het lsblk commando zonder enig argument zal de block devices in een boomstructuur afdrukken. Zoek opnieuw naar namen, zoals sda, sdb enz. Het bovenste niveau geeft de schijf aan en de kinderen van het eerste niveau geven de partities in het blok weer.

Er zijn verschillende nuttige opdrachtregelopties die met het lsblk commando kunnen worden gebruikt. Met -d of -nodeps wordt het apparaat afgedrukt en niet de partities. De -S of -scsi geeft alleen de SCSI-apparaten weer.

lshw

Een ander veelgebruikt hulpprogramma is lshw, waarmee gedetailleerde informatie over uw hardware kan worden afgedrukt. Ook dit programma is in sommige distro’s niet standaard aanwezig, ook al is het een systeemtoepassing.

bash$ lshw -class disk

Het bovenstaande commando geeft een lijst van alle schijven op het systeem. U kunt ook de opslagklasse opgeven als u ook de opslagcontrollers wilt afdrukken. U kunt de uitgebreidheid van de uitvoer verder verminderen door de optie -te gebruiken

bash$ lshw -class disk -class storage -short

blkid

Het eerder genoemde lsblk-commando is een betere en aanbevolen optie dan het blkid-commando. Ik voeg het hier toe voor de volledigheid.

blkid drukt een aantal verschillende attributen af over de blokapparaten. U kunt meestal de schijven en partities uit de uitvoer opmaken, net als met lsblk.

bash$ blkid

fdisk

fdisk is een populair commando dat meestal wordt gebruikt om de partitietabel te manipuleren. U kunt het gebruiken om een lijst te maken van alle partities in de partitietabel en om de apparaten te vinden die beschikbaar zijn. De opdrachtregeloptie -list of -l drukt alle bekende partities van alle apparaten af.

bash$ fdisk -l

U zoekt waarschijnlijk naar iets als dit in de uitvoer.

Er zijn een paar andere partitietabelmanipulatietools die bovenop fdisk zijn gebouwd, met meer opties en mogelijkheden. sfdisk en cfdisk zijn twee van zulke voorbeelden. Ze zijn echter misschien niet geinstalleerd in de meeste distro’s.

parted

Gelijk aan fdisk, is parted een ander partitietabel manipulatie programma. Ook hier kun je de -list of -l commandoregeloptie gebruiken om de apparaten of schijven en al hun info af te drukken. Ik vind de standaard uitvoer van parted beter dan fdisk, maar dat is subjectief.

bash$ parted -l

Model: ATA ST3160815AS (scsi)
Disk /dev/sda: 160GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

/proc/ bestand

Een andere rudimentaire manier is om de inhoud van de map /proc/partitions/ af te drukken. Dit zal alle bekende apparaten en partities in het systeem uitprinten. Tegen die tijd zou je in staat moeten zijn om onderscheid te maken tussen de schijf en partities, neem ik aan.

bash$ cat /proc/partitions

Zoek naar minor ‘0’ of naam die overeenkomt met het /dev/sda formaat.

lsscsi

Als u weet dat u alleen SCSI-apparaten hebt of alleen de informatie over SCSI-schijven nodig hebt, dan kunt u het commando lsscsi gebruiken. Dit hulpprogramma is op sommige distro’s niet standaard geïnstalleerd.

Zoals de naam van het commando al aangeeft, drukt het alle informatie over de SCSI-apparaten op het systeem af.

bash$ lsscsi

Op welke distributie u ook draait, u zou in staat moeten zijn om een lijst van schijven op uw systeem te maken met behulp van ten minste een van de hierboven genoemde commando’s.

Laat een antwoord achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *