Discover available HD storage from inside SQL Server
I use the below to get SQL Server OS drive partition\volume information SQL Server per instance in both GB and MB.

INFORMATION: This is using a SQL system DM (sys.dm_os_volume_stats) and sys.master_files table with the CROSS APPLY to get the volume information from which that instance can see.  It then does mathematic calcutations (e.g. dividing by 1024 a time or two or three or perhaps multiplying by 100, etc. as you see below in the CAST statements) to these and lists in both MB and GB as and uses the NUMERIC function. 

This will get both TOTAL and FREE space space per disk partition in both GB and MB as well as the percentage of FREE SPACE per disk partition using straight TSQL.

SELECT DISTINCT UPPER(vs.volume_mount_point) AS Drive_Letter
    ,vs.logical_volume_name AS Drive_Label
    ,CAST((vs.total_bytes / 1024.0 / 1024) AS NUMERIC(18, 1)) AS Total_Size_MB
    ,CAST((vs.available_bytes / 1024.0 / 1024) AS NUMERIC(18, 1)) AS Free_Space_MB
    ,CAST((vs.total_bytes / 1024.0 / 1024 / 1024) AS NUMERIC(18, 1)) AS Total_Size_GB
    ,CAST((vs.available_bytes / 1024.0 / 1024 / 1024) AS NUMERIC(18, 1)) AS Free_Space_GB
    ,CAST((vs.available_bytes / 1024.0 / 1024 / 1024) / (vs.Total_Bytes / 1024.0 / 1024 / 1024) AS NUMERIC(18, 3)) * 100 AS Free_Space_Percentage
FROM sys.master_files f
CROSS APPLY sys.dm_os_volume_stats(f.database_id, f.file_id) AS vs
ORDER BY UPPER(vs.volume_mount_point)


SQL Server get drive space information, get volume space information, get disk space information, get disk free space, disk space allocation, report disk space, report storage space