docs: def load(self, filename, bs=512):
          """Starts filesystem analysis. Detects supported filesystems and \
          loads :attr:`partitions` array.
  
          Args:
              filename - Path to file or device for reading.
  
          Raises:
              IOError - File/device does not exist or is not readable.
          """
          self.__filename = filename
          self.__volumes = []
  
          # Detect partitioning scheme
          self.__partition_scheme = rawdisk.scheme.common.detect_scheme(filename)
  
          plugin_objects = [plugin.plugin_object for plugin in self.__fs_plugins]
          fs_detector = FilesystemDetector(fs_plugins=plugin_objects)
  
          if self.__partition_scheme == PartitionScheme.SCHEME_MBR:
              self.__load_mbr_volumes(filename, fs_detector, bs)
          elif self.__partition_scheme == PartitionScheme.SCHEME_GPT:
              self.__load_gpt_volumes(filename, fs_detector, bs)
          else:
              self.logger.warning('Partitioning scheme could not be determined.')
              # try detecting standalone volume
              volume = fs_detector.detect_standalone(filename, offset=0)
              if volume is not None:
                  volume.load(filename, offset=0)
                  self.__volumes.append(volume)
              else:
                  self.logger.warning(
                      'Were not able to detect standalone volume type')