code: def mount(self, fstype=None):
          
  
          if not self.parent.is_mounted:
              raise NotMountedError(self.parent)
  
          if fstype is None:
              fstype = self.determine_fs_type()
          self._load_fsstat_data()
  
          # Prepare mount command
          try:
              fstype.mount(self)
  
              self.was_mounted = True
              self.is_mounted = True
              self.fstype = fstype
  
          except Exception as e:
              logger.exception("Execution failed due to {} {}".format(type(e), e), exc_info=True)
              if not isinstance(e, ImageMounterError):
                  raise SubsystemError(e)
              else:
                  raise
docs: Based on the file system type as determined by :func:`determine_fs_type`, the proper mount command is executed
          for this volume. The volume is mounted in a temporary path (or a pretty path if :attr:`pretty` is enabled) in
          the mountpoint as specified by :attr:`mountpoint`.
  
          If the file system type is a LUKS container or LVM, additional methods may be called, adding subvolumes to
          :attr:`volumes`
  
          :raises NotMountedError: if the parent volume/disk is not mounted
          :raises NoMountpointAvailableError: if no mountpoint was found
          :raises NoLoopbackAvailableError: if no loopback device was found
          :raises UnsupportedFilesystemError: if the fstype is not supported for mounting
          :raises SubsystemError: if one of the underlying commands failed