Module: ReiserFSProbe
- Defined in:
- lib/fs/MiqFS/modules/ReiserFSProbe.rb
Constant Summary collapse
- REISERFS_DISK_OFFSET_NEW =
64 * 1024
- REISERFS_DISK_OFFSET_OLD =
8 * 1024
- REISERFS_SUPER_SIZE =
204
- REISERFS_MAGIC_OFFSET =
52
- REISERFS_MAGIC_SIZE =
10
- REISERFS_MAGIC1 =
"ReIsErFs".freeze
- REISERFS_MAGIC2 =
"ReIsEr2Fs".freeze
- REISERFS_MAGIC3 =
"ReIsEr3Fs".freeze
Class Method Summary collapse
Class Method Details
.getMagic(dobj, offset) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/fs/MiqFS/modules/ReiserFSProbe.rb', line 22 def self.getMagic(dobj, offset) return false unless dobj.kind_of?(MiqDisk) # Assume ReiserFS - read superblock at desired offset. dobj.seek(offset) # new disk start offset. sb = dobj.read(REISERFS_SUPER_SIZE) return nil if sb.nil? return nil if sb.size < (REISERFS_MAGIC_OFFSET + REISERFS_MAGIC_SIZE - 1) # Check magic at offset 52 for accepted ReiserFS identifiers. magic = sb[REISERFS_MAGIC_OFFSET, REISERFS_MAGIC_SIZE].strip end |
.isMagic?(magic) ⇒ Boolean
36 37 38 39 40 41 |
# File 'lib/fs/MiqFS/modules/ReiserFSProbe.rb', line 36 def self.isMagic?(magic) return true if magic == REISERFS_MAGIC1 return true if magic == REISERFS_MAGIC2 return true if magic == REISERFS_MAGIC3 false end |
.probe(dobj) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/fs/MiqFS/modules/ReiserFSProbe.rb', line 14 def self.probe(dobj) return true if ReiserFSProbe.isMagic?(ReiserFSProbe.getMagic(dobj, REISERFS_DISK_OFFSET_NEW)) return true if ReiserFSProbe.isMagic?(ReiserFSProbe.getMagic(dobj, REISERFS_DISK_OFFSET_OLD)) # No ReiserFS. false end |