227: def format(rbox, disk, index)
228: raise Rudy::Metadata::UnknownObject, disk.name unless disk.exists?
229: disk.refresh!
230:
231: attach rbox, disk unless disk.volume_attached?
232:
233: raise Rudy::Disks::NotAttached, disk.name if !disk.volume_attached?
234:
235: unless @@global.force
236: raise Rudy::Disks::AlreadyFormatted, disk.name if !disk.raw?
237: end
238:
239: if disk.fstype.nil? || disk.fstype.empty?
240: disk.fstype = rbox.stash.default_fstype
241: end
242:
243: print "Creating #{disk.fstype} filesystem for #{disk.path}... "
244: if rbox.stash.windows?
245: li "(index: #{index})"
246: windows_diskpart_partition rbox, disk, index
247: disk.mounted = true
248: else
249: li $/
250: args = [:t, disk.fstype, :F, disk.device]
251: rbox.sudo do
252: rudy_mkfs *args
253: end
254: end
255:
256: disk.raw = false
257: disk.save :replace
258: sleep 1
259: disk
260: end