Module: HFSProbe

Defined in:
lib/fs/MiqFS/modules/HFSProbe.rb

Constant Summary collapse

HFS_SUPER_OFFSET =
0
HFS_MAGIC_OFFSET =
0
HFS_MAGIC_SIZE =
2
HFS_SUPER_MAGIC =
0x4c4b

Class Method Summary collapse

Class Method Details

.probe(dobj) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/fs/MiqFS/modules/HFSProbe.rb', line 7

def self.probe(dobj)
  return(false) unless dobj.kind_of?(MiqDisk)

  # Check for HFS signature in first int.
  dobj.seek(HFS_SUPER_OFFSET + HFS_MAGIC_OFFSET)
  bs = dobj.read(HFS_MAGIC_SIZE)&.unpack('S')
  magic = bs.nil? ? nil : bs[0]
  raise "HFS is Not Supported" if magic == HFS_SUPER_MAGIC

  # No HFS.
  false
end