sys-filesystemというgemを使うと簡単だった。
MacとUbuntuでしか試してないけどWindowsやBSDでも同じコードでディスク状態を取得できるらしい。

参考:rubyでディスクの空き容量を取得してみる (やまかわのログ)

gem install sys-filesystem


ギガバイト単位で取得
require 'sys/filesystem'

stat = Sys::Filesystem.stat('/')

total = (stat.blocks * stat.block_size).to_f / 1024 / 1024 / 1024
available = (stat.blocks_available * stat.block_size).to_f / 1024 / 1024 / 1024
puts "#{total}GB中、#{available}GB使用可能"

total = total.to_s.scan(/^(\d+\.\d{0,3})/)[0][0].to_f
available = available.to_s.scan(/^(\d+\.\d{0,3})/)[0][0].to_f
puts "約#{total}GB中、#{available}GB使用可能"


112.19928741455078GB中、5.0075531005859375GB使用可能
約112.199GB中、5.007GB使用可能


Sys::Filesystem.stat(‘/’) はマウントポイントで、”/Volumes/Machintosh HD 2″とかを引数に渡せば別のディスクも読める。