Windows USB Volume Triage
Use when Windows detects a USB disk or enclosure but an expected drive letter or directory mount is missing.
Procedure
- Keep diagnosis read-only. Do not initialize, format, create partitions, or assign mounts while existing data may be present.
- Inventory disks with
Get-Disk. CaptureNumber,FriendlyName,SerialNumber,UniqueId,Guid,Size,PartitionStyle,NumberOfPartitions,LargestFreeExtent,OperationalStatus, andHealthStatus. - Inventory partitions with
Get-Partition. CaptureDiskNumber,PartitionNumber,Type,Size,Guid, andAccessPaths. - Check each expected directory mount with
Get-Volume -FilePath <path>. Record volume path, label, filesystem, and health. TreatTest-Pathonly as a directory/reparse-point check; it can succeed when no volume resolves there. - Correlate the missing mount to a disk using multiple fields: expected capacity, partition/access-path mapping, serial, device path, and location. Do not trust
UniqueIdalone when several enclosure disks expose the same value or Windows logs duplicate-identifier events. - Inspect the candidate with
Get-Disk -Number <n>andGet-Partition -DiskNumber <n>. A physical disk markedHealthydoes not prove its partitions or mounted volume are visible. - Map the candidate to enclosure hardware with
Get-PnpDeviceandGet-PnpDeviceProperty. Capture the disk instance ID, parent USB instance, location, and bus-reported description. - If needed, perform one non-destructive refresh: run
Update-HostStorageCache, thenUpdate-Disk -Number <n>. Re-run the exact disk, partition, and mount checks. - If the state is unchanged, report the affected disk and enclosure channel evidence. Recommend reseating or power-cycling only the affected bay when hardware supports it; leave broader shutdown or recovery actions to the user.
Output discipline
- Start with compact selected fields; broad formatted inventories can be truncated and hide the relevant disk.
- Narrow subsequent queries to the candidate disk and exact mount path.
- In PowerShell, collect
foreachoutput before piping toFormat-Table; piping a statement directly can produceParserError: EmptyPipeElement.
Verification
Compare before and after refresh:
Get-Disk -Number <n>:NumberOfPartitionsandLargestFreeExtent.Get-Partition -DiskNumber <n>: expected partition presence and access paths.Get-Volume -FilePath <path>: resolved volume path, filesystem, and health.
Call recovery successful only when the expected partition and exact mount resolve. Otherwise state that refresh did not restore visibility and preserve the no-initialize/no-format warning.
