What it is
Diskovery collects and displays the details of data storage facilities of the computer, including its physical drives, disk arrays, partitions, volumes and mount points.
It's a companion program for Bvckup 2 - a fast and light mirroring backup for Windows. If you are routinely replicating large amounts of data from A to B, you may want to have a look.
- Vendor, model and real serial number
- World-wide number (WWN)
- Supported features - NCQ, AAM, FFP, etc.
- Rotational speed (RPM)
- Command set version (ATA/ACS)
- Signaling speed - 12.0 Gbps, 6.0Gbps, etc.
- Power-on count and hours
- Current temperature - in °C, °F, °R, etc.
- Overall health status
- S.M.A.R.T. attributes and OEM health data
- USB type of the drive enclosure (2.0, 3.0, etc.)
- Effective USB type of the drive-host connection
- Full support for NVMe drives
- Type - RAID 0/1/5/etc.
- Internal serial number
- Status - healthy, failing, rebuilding, etc.
- Composition, including details of individual drives
- CSMI-enabled controllers, including...
- Intel ICH series (the on-board SATA RAIDs)
- HP SmartArray series
In the works
- Dell PERCs
- Partitioning type - MBR, GPT, etc.
- Partition table - including gaps and an empty space
- Partition chunking - as used by dynamic volumes
- Volume type - simple, dynamic
- Capacity and usage
- Physical extents - partitions used
- Volume label (serial)
- Access mode - read-only, read-write
- Mount points - drive letters and folders
- File system type - NTFS, FAT, etc.
- Exact NTFS revision used
- Volume-wide compression status
- Supported features - encryption, hard links, etc.
Dynamic volumes (Software RAID)
- Exact type - spanned, striped, mirrored, etc.
- Volume status - online, offline, failed
- Volume health - failing, rebuilding, etc.
- Transition state - extending, restriping, etc.
- Exact composition - in physical partitions chunks
How it works
1. DrivesFor each drive on the list the app first gathers all available information as provided by Windows. This includes drive's capacity, bus type, partition table, etc. It then attempts to communicate with the drive directly.
Diskovery implements three options for talking to a drive - direct ATA queries, ATA pass-through queries and SCSI pass-through queries. It also uses SAT to query external drives in USB enclosures.
If a drive can be accessed directly, the app retrieves its ATA IDENTIFY block and SMART information.
The IDENTIFY block contains various drive properties including its model, serial number, rotational speed, a list of supported features, etc.
The SMART data is a list of operational health-related attributes, including drive's temperature, power-on hours, various error counters and wear and tear indicators.
The most interesting part of every SMART attribute is its raw value, which is six bytes of a vendor-specific data. Diskovery can accurately decode most of these using its long list of generic and per-vendor interpretation tables.
2. RAID controllersNext, Diskovery goes through the list of SCSI drive controllers and attempts to talk to them in several ways, starting with the Common Storage Management Interface protocol (CSMI).
For each drive the app also queries the IDENTIFY and SMART information if it's supported by the controller. In some cases controllers provide drive health data in an OEM format rather as a SMART table. Diskovery grabs this data as well.
3. Logical volumesThere's a couple of ways to obtain a list of logical volumes and their mount points from Windows. One is through the standard Windows API and another by talking to the Virtual Disk Service (VDS). Diskovery uses them both.
The bulk of volume information is available through the first channel, but it doesn't include volume's online/offline status nor its type (simple, spanned, striped, etc.). This information is extracted from the VDS instead.
Volumes without direct physical presence such as those created by RAM drives and TrueCrypt are also included and queried for details.
4. Storage stackOnce the app has gobbled all the data it could, it makes several passes over it, cross-references various bits and pieces and generates a storage stack model.
Finally, it renders its findings in the UI and this completes the scan cycle.