docs: def guestfs_conn_mount_ro(disk_path, disk_root, retries=5, wait=1):
      """
      Open a GuestFS handle with `disk_path` and try mounting the root
      filesystem. `disk_root` is a hint where it should be looked and will
      only be used if GuestFS will not be able to deduce it independently.
  
      Note that mounting a live guest, can lead to filesystem inconsistencies,
      causing the mount operation to fail. As we use readonly mode, this is
      safe, but the operation itself can still fail. Therefore, this method
      will watch for mount failures and retry 5 times before throwing
      an exception.
  
  
      Args:
          disk_path(str): Path to the disk.
          disk_root(str): Hint what is the root device with the OS filesystem.
          retries(int): Number of retries for :func:`~guestfs.GuestFS.mount_ro`
              operation. Note that on each retry a new GuestFS handle will
              be used.
          wait(int): Time to wait between retries.
  
      Yields:
          guestfs.GuestFS: An open GuestFS handle.
  
      Raises:
          :exc:`GuestFSError`: On any guestfs operation error, including
              exceeding retries for the :func:`~guestfs.GuestFS.mount_ro`
              operation.
  
      """
  
      for attempt in range(retries):
          with guestfs_conn_ro(disk_path) as conn:
              rootfs = find_rootfs(conn, disk_root)
              try:
                  conn.mount_ro(rootfs, '/')
              except RuntimeError as err:
                  LOGGER.debug(err)
                  if attempt < retries - 1:
                      LOGGER.debug(
                          (
                              'failed mounting %s:%s using guestfs, '
                              'attempt %s/%s'
                          ), disk_path, rootfs, attempt + 1, retries
                      )
                      time.sleep(wait)
                      continue
                  else:
                      raise GuestFSError(
                          'failed mounting {0}:{1} using guestfs'.format(
                              disk_path, rootfs
                          )
                      )
              yield conn
              try:
                  conn.umount(rootfs)
              except RuntimeError as err:
                  LOGGER.debug(err)
                  raise GuestFSError(
                      ('failed unmounting {0}:{1} using'
                       'guestfs').format(disk_path, rootfs)
                  )
              break