let read_block p n = if not p.part_alive then system_error EIO "read_block: not alive" p.part_name; let buffer = String.create p.block_size in try lseek_block p n; really_read p.part_fd buffer 0 p.block_size; buffer with Unix.Unix_error (_,_,_) | End_of_file -> system_error EIO "readblock: Unix_error" p.part_name |