Module: UnionFSProbe

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

Constant Summary collapse

UNIONFS_SUPER_OFFSET =
1024
UNIONFS_MAGIC_OFFSET =
52
UNIONFS_MAGIC_SIZE =
4
UNIONFS_MAGIC =
0xf15f083d

Class Method Summary collapse

Class Method Details

.probe(dobj) ⇒ Object



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

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

  # Assume UnionFS - read magic at offset.
  dobj.seek(UNIONFS_SUPER_OFFSET + UNIONFS_MAGIC_OFFSET)
  magic = dobj.read(UNIONFS_MAGIC_SIZE)&.unpack('L')
  raise "UnionFS is Not Supported" if magic == UNIONFS_MAGIC

  # No UnionFS.
  false
end