import struct CHUNK = 128*512 LV_START = 5120000*512 BSIZE = 4096 IPG = 8192 INODE_SZ = 256 def read_inode(inode_num): group = (inode_num-1)//IPG idx = (inode_num-1)%IPG it_block = 1070 + group*512 it_virt = it_block*BSIZE + idx*INODE_SZ grp = it_virt//(5*CHUNK) in_group = it_virt%(5*CHUNK) chunk_idx= in_group//CHUNK intra = in_group%CHUNK if chunk_idx == 4: return None, 'METADATA CHUNK' phys = LV_START + grp*4*CHUNK + chunk_idx*CHUNK + intra with open('/dev/sda','rb') as f: f.seek(phys) return f.read(INODE_SZ), 'OK' def parse_inode(data): mode = struct.unpack_from('