Linux can show several different kinds of disk information, and they are often confused with each other. A disk can be HDD or SSD, SATA or NVMe, physical or virtual, local or SAN-backed, partitioned as GPT or MBR, and formatted with a filesystem such as ext4 or XFS.
This guide focuses on the practical commands you can use to answer these common questions:
- How do I list all disks in Linux?
- Is my disk HDD or SSD?
- What disk interface or transport is Linux using?
- What is the disk model and serial number?
- Which disk contains mounted filesystems?
- Why does Linux show
scsi,VBOX HARDDISK, orLOGICAL VOLUMEinstead of the expected physical disk type?
The commands below were tested on a Linux virtual machine with util-linux 2.40.2, pciutils 3.13.0, GNU parted 3.6, and hdparm 9.65. The test host has VirtualBox disks, so your disk names, models, serial numbers, and interface values will be different on physical servers, cloud instances, hardware RAID, SAN, or NVMe systems. If you are building a similar lab, see how to install Oracle VirtualBox on Linux.
lsblk -d -e 7 -o NAME,TYPE,SIZE,ROTA,TRAN,MODEL,SERIAL. It lists disks, excludes loop devices, shows the rotational flag, and shows the transport type when the kernel exposes it.
Disk Type Terms You Should Know
Before running commands, separate these terms:
| Term | What it tells you | Example |
|---|---|---|
| Disk device | The Linux block device name | /dev/sda, /dev/nvme0n1, /dev/vda |
| Media type | Whether the storage is rotational or non-rotational | HDD or SSD |
| Interface or transport | How the disk is attached or presented | SATA, SAS, NVMe, USB, FC, ATA |
| Controller | The PCI or virtual storage controller | SATA controller, RAID controller, NVMe controller |
| Partition table | How partitions are described | GPT or MBR |
| Filesystem | How data is stored inside a partition or volume | ext4, XFS, Btrfs |
If you want a deeper explanation of disk interfaces such as SATA, SAS, NVMe, and Fibre Channel, see different disk types and interface types in Linux.
Quick Command Summary
| Task | Command |
|---|---|
| List physical disks | lsblk -d -e 7 -o NAME,TYPE,SIZE,ROTA,TRAN,MODEL,SERIAL |
| Show filesystems and mount points | lsblk -f -e 7 |
| Check HDD vs SSD flag | cat /sys/block/sda/queue/rotational |
| Check disk transport from udev | udevadm info --query=property --name=/dev/sda |
| Show stable disk IDs | ls -l /dev/disk/by-id |
| Show storage controllers | `lspci |
| Show hardware storage tree | sudo lshw -class storage -class disk -short |
| Show partition table | sudo fdisk -l /dev/sda |
| Show disk model with parted | sudo parted -s /dev/sda print |
| Show ATA identify data | sudo hdparm -I /dev/sda |
1. List Physical Disks with lsblk
Use lsblk first when you want to list disks in Linux. The -d option prints only top-level devices, and -e 7 excludes loop devices, which are commonly used by snaps and images.
lsblk -d -e 7 -o NAME,TYPE,SIZE,ROTA,TRAN,MODEL,SERIALTested output:
NAME TYPE SIZE ROTA TRAN MODEL SERIAL
sda disk 25G 1 sata VBOX HARDDISK VBb7d23215-c8334f15
sdb disk 20G 1 sata VBOX HARDDISK VB0e1b8e8f-685c2d06
sdc disk 15.7G 1 sata VBOX HARDDISK VB09775bdd-e0a42677
sr0 rom 50.7M 0 ata VBOX CD-ROM VB2-01700376How to read the important columns:
NAMEis the kernel block device name.TYPEshows whether the device is a disk, partition, ROM device, LVM device, or loop device.SIZEshows the disk size.ROTAshows whether the device is rotational.1usually means HDD;0usually means SSD, NVMe, or other non-rotational storage.TRANshows the transport when Linux can detect it, such assata,ata,usb,nvme,sas, orfc.MODELandSERIALhelp identify the device.
In this tested output, sda, sdb, and sdc are VirtualBox hard disks exposed through a SATA transport. sr0 is a virtual CD-ROM device, not a hard disk.
ROTA value comes from what the kernel reports. It is a very useful first check, but virtual disks, hardware RAID, SAN volumes, and some USB enclosures may not expose the real physical media accurately. For storage abstraction examples, see the guides to configure software RAID 1 in Linux and configure iSCSI target and initiator on Linux.
2. List Disks, Partitions, Filesystems, and Mount Points
Use lsblk -f when you want to see which disks contain filesystems and mount points. This is helpful when the search intent is broader, such as "linux list disks" or "linux view all disks".
lsblk --ascii -f -e 7Tested output:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
|-sda1
|-sda2 ext4 1.0 c254a326-948a-4ae2-993b-1659f4ddcf03 1.6G 11% /boot
`-sda3 LVM2_member LVM2 001 xLar7A-0CSb-mAmp-Y2sy-s6KG-FtEP-kIBAUL
`-ubuntu--vg-ubuntu--lv ext4 1.0 72457fae-1731-4c94-b5c1-ac4564f4311c 3.3G 87% /
sdb LVM2_member LVM2 001 fqCkHE-uhfu-TAWI-mbbp-KdrD-qFDZ-3HE08V
`-ubuntu--vg-ubuntu--lv ext4 1.0 72457fae-1731-4c94-b5c1-ac4564f4311c 3.3G 87% /
sdc
sr0 iso9660 Joliet Extension VBox_GAs_7.2.0 2025-08-13-20-48-09-62 0 100% /media/golinuxcloud/VBox_GAs_7.2.0This output shows that:
/dev/sda2is an ext4 filesystem mounted on/boot./dev/sda3and/dev/sdbare LVM physical volumes.ubuntu--vg-ubuntu--lvis an LVM logical volume mounted on/; see the Logical Volume Manager guide if you need to interpret or manage LVM layers./dev/sdcis visible but has no filesystem or mount point in this output; the next step would be to create a filesystem on a Linux partition or logical volume if the disk is meant to store data./dev/sr0is an ISO9660 CD-ROM mounted under/media.
For partitioning work, see the parted command examples. To identify an existing filesystem type in more detail, use the commands to check filesystem type in Linux. For encrypted disks, see how to mount a LUKS encrypted disk partition.
3. Check if a Disk is HDD or SSD with sysfs
Linux exposes the rotational flag in sysfs. This is the direct source behind the ROTA value shown by lsblk.
cat /sys/block/sda/queue/rotationalTested output:
1Meaning:
0means the device is reported as non-rotational. This is usually SSD, NVMe, RAM-backed, or another flash-based device.1means the device is reported as rotational. This is usually HDD.
To check several disks at once, you can read the same file for each disk:
for disk in sda sdb sdc sr0; do printf "%s=%s\n" "$disk" "$(cat /sys/block/$disk/queue/rotational)"; doneTested output:
sda=1
sdb=1
sdc=1
sr0=0In this test host, the VirtualBox disks are reported as rotational. On a system with an NVMe SSD, you would normally expect ROTA or rotational to be 0 for the NVMe disk. After confirming HDD vs SSD, you may also want to review the Linux I/O scheduler configuration because scheduler choices can differ for rotational and non-rotational storage.
4. Check Disk Interface Type with udevadm
udevadm can show device properties collected by udev. This is useful when you want to confirm whether a disk is exposed as ATA, USB, SCSI, NVMe, or another bus type.
udevadm info --query=property --name=/dev/sda | grep -E '^(DEVTYPE|ID_BUS|ID_MODEL|ID_SERIAL|ID_ATA|ID_TYPE|ID_PATH)='Tested output:
DEVTYPE=disk
ID_ATA=1
ID_TYPE=disk
ID_BUS=ata
ID_MODEL=VBOX_HARDDISK
ID_SERIAL=VBOX_HARDDISK_VBb7d23215-c8334f15
ID_PATH=pci-0000:00:0d.0-ata-1.0Here, ID_BUS=ata and ID_ATA=1 show that Linux sees /dev/sda as an ATA-style disk device. The model and serial values identify the virtual disk exposed by VirtualBox.
5. Check Stable Disk Names Under /dev/disk/by-id
Linux device names such as /dev/sda can change after reboot or when disks are added. For scripts and mount configuration, stable names under /dev/disk/by-id are often safer.
ls -l /dev/disk/by-id | sed -n '1,8p'Tested output:
total 0
lrwxrwxrwx 1 root root 9 Jun 7 13:55 ata-VBOX_CD-ROM_VB2-01700376 -> ../../sr0
lrwxrwxrwx 1 root root 9 Jun 7 13:55 ata-VBOX_HARDDISK_VB09775bdd-e0a42677 -> ../../sdc
lrwxrwxrwx 1 root root 9 Jun 7 13:55 ata-VBOX_HARDDISK_VB0e1b8e8f-685c2d06 -> ../../sdb
lrwxrwxrwx 1 root root 9 Jun 7 13:55 ata-VBOX_HARDDISK_VBb7d23215-c8334f15 -> ../../sda
lrwxrwxrwx 1 root root 10 Jun 7 13:55 ata-VBOX_HARDDISK_VBb7d23215-c8334f15-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jun 7 13:55 ata-VBOX_HARDDISK_VBb7d23215-c8334f15-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Jun 7 13:55 ata-VBOX_HARDDISK_VBb7d23215-c8334f15-part3 -> ../../sda3These symlinks also reveal useful interface hints. In this example, the disk IDs start with ata-, matching the ATA/SATA-style virtual disks shown by other commands. Stable IDs are also useful when you mount a filesystem without fstab using systemd.
6. Check Storage Controller Type with lspci
lspci shows PCI devices, including physical and virtual storage controllers. This is useful when the disk itself does not expose a clear transport value.
lspci | grep -Ei 'sata|scsi|raid|nvme|storage|ide|fibre'Tested output:
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (rev 02)This output shows that the test system has an IDE controller and a SATA controller. On other systems you may see NVMe controllers, RAID controllers, Fibre Channel adapters, or SAS controllers. If your disks are presented through RAID, compare this output with the storage layout in the hybrid software RAID 10 tutorial.
7. Check Storage Hardware with lshw
lshw gives a hardware-oriented view of storage devices and controllers. It may require root privileges for complete output.
sudo lshw -class storage -class disk -shortTested output:
H/W path Device Class Description
=======================================================
/0/100/1.1 scsi1 storage 82371AB/EB/MB PIIX4 IDE
/0/100/1.1/0.0.0 /dev/cdrom disk CD-ROM
/0/100/1.1/0.0.0/0 /dev/cdrom disk
/0/100/d scsi2 storage 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode]
/0/100/d/0 /dev/sda disk 26GB VBOX HARDDISK
/0/100/d/0.0.0 /dev/sdc disk 16GB VBOX HARDDISKNotice that lshw shows scsi2 in the hardware path even though the controller description is SATA. This happens because Linux commonly presents ATA/SATA disks through the SCSI disk layer. Do not treat every scsi path as proof that the physical drive is SCSI.
8. Check Partition Table and Disk Model with fdisk
fdisk -l is useful when you need disk size, sector size, partition table type, and partition layout.
sudo fdisk -l /dev/sdaTested output:
Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 11CF50F0-B005-448C-8236-1E182128FC30
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 4198399 4194304 2G Linux filesystem
/dev/sda3 4198400 52426751 48228352 23G Linux filesystemThis confirms that /dev/sda uses a GPT partition table and has three partitions. It also shows the disk model that the OS sees. For partition table backup and restore, see how to backup and restore a partition table with sfdisk. If the root filesystem later needs more space, see how to resize a root LVM partition.
9. Check Disk Model and Partition Table with parted
parted gives another view of the disk model, sector size, partition table, and partitions.
sudo parted -s /dev/sda printTested output:
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 26.8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 2150MB 2147MB ext4
3 2150MB 26.8GB 24.7GBThe line Model: ATA VBOX HARDDISK (scsi) is a good example of why disk interface output needs context. The disk model is ATA-style, while the access path appears through the SCSI layer.
10. Check ATA Disk Details with hdparm
hdparm -I asks an ATA disk for identification data. It is useful for SATA and ATA devices, but it is not the right tool for every storage type.
sudo hdparm -I /dev/sdaTested output:
/dev/sda:
ATA device, with non-removable media
Model Number: VBOX HARDDISK
Serial Number: VBb7d23215-c8334f15
Firmware Revision: 1.0
Standards:
Used: ATA/ATAPI-6 published, ANSI INCITS 361-2002
Supported: 6 5 4
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16If you run hdparm -I against a disk that does not speak ATA, you may get an ioctl error instead of useful disk details. For NVMe disks, use lsblk for a quick listing and the optional nvme command from nvme-cli for controller-specific details.
11. Optional Tools: smartctl and nvme-cli
Some storage tools are excellent but may not be installed by default. On the test host used for this article, both smartctl and nvme were not installed:
command -v smartctl || echo "smartctl: not installed"
command -v nvme || echo "nvme: not installed"Tested output:
smartctl: not installed
nvme: not installedWhen available, smartctl -a /dev/sdX can show SMART health data, rotation rate, model, serial number, temperature, and error logs for supported devices. For NVMe drives, nvme list and nvme id-ctrl /dev/nvme0 can show NVMe-specific controller and namespace details.
Because these commands were not available on this test host, this article does not include untested smartctl or nvme sample output.
Frequently Asked Questions
1. What is the fastest command to list disks in Linux?
lsblk -d -e 7 -o NAME,TYPE,SIZE,ROTA,TRAN,MODEL,SERIAL is a fast command to list physical disks while excluding loop devices.2. How do I check if a Linux disk is SSD or HDD?
Check the ROTA column from lsblk or read the rotational value from sysfs. ROTA 0 usually means non-rotational storage such as SSD or NVMe, while ROTA 1 usually means rotational HDD.3. How do I check disk interface type in Linux?
Use lsblk with the TRAN column, udevadm properties such as ID_BUS, lspci storage controller output, or hdparm -I for ATA disks.4. Why does parted show scsi for a SATA disk?
Many SATA disks are handled through the Linux SCSI disk layer, so tools may show a SCSI path even when the physical or virtual disk transport is ATA or SATA.5. Why does Linux show VBOX HARDDISK or LOGICAL VOLUME instead of the real disk model?
Virtual machines and hardware RAID controllers often expose a virtual disk or logical volume to Linux, so the guest OS may not see the real physical drive model.6. Can lsblk detect NVMe disks?
Yes. NVMe disks usually appear as names such as nvme0n1, and lsblk can show them. For deeper NVMe controller details, use the optional nvme-cli package when installed.Summary
To list disks in Linux, start with lsblk. To check whether a disk is HDD or SSD, inspect the ROTA column or /sys/block/<disk>/queue/rotational. To check disk interface type, compare lsblk TRAN, udevadm ID_BUS, lspci controller output, and hardware tools such as lshw or hdparm.
The most reliable answer often comes from combining multiple commands. This is especially important on virtual machines, cloud servers, SAN storage, and hardware RAID, where Linux may see a virtual disk or logical volume instead of the actual physical drive.

