<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def extract_paths(disk_path, disk_root, paths, ignore_nopath):
 """ Extract paths from a disk using guestfs Args: disk_path(str):
 path to the disk disk_root(str):
 root partition paths(list of tuples):
 files to extract in directory in the guest, and ``dstN`` does not exist on the host, it will be created. If ``srcN`` is a file on the guest, it will be copied exactly to ``dstN`` ignore_nopath(bool):
 If set to True, ignore paths in the guest that do not exit Returns: None Raises: :exc:`~lago.plugins.vm.ExtractPathNoPathError`: if a none existing path was found on the guest, and `ignore_nopath` is False. :exc:`~lago.plugins.vm.ExtractPathError`: on all other failures. """


    with guestfs_conn_mount_ro(disk_path, disk_root) as conn:
        for (guest_path, host_path) in paths:
            msg = ('Extracting guestfs://{0} to {1}').format(
                guest_path, host_path
            )

            LOGGER.debug(msg)
            try:
                _copy_path(conn, guest_path, host_path)
            except ExtractPathNoPathError as err:
                if ignore_nopath:
                    LOGGER.debug('%s - ignoring', err)
                else:
                    raise