Using DIRECT_O read from the block device specified to stdout
        (Without any optional arguments will read the first 4k from the device)

def read(self, device=None, offset=0, bs=None, count=1):
        """
        Using DIRECT_O read from the block device specified to stdout
        (Without any optional arguments will read the first 4k from the device)
        """
        volume = self.get_volume(device)
        block_size = bs or BLOCK_SIZE

        offset = int(offset) * block_size
        count = int(count)
        print("Offset: ", offset)

        total = 0
        with directio.open(volume['path'], buffered=block_size) as file:
            file.seek(offset)
            for i in range(0, count):
                total += os.write(sys.stdout.fileno(), file.read(block_size))
        os.write(sys.stdout.fileno(), "\nRead: %d Bytes\n" % total)