code: func SupportsOverlay() error {
  	// ignore exec.Command error, modprobe may not be present on the system,
  	// or the kernel module will fail to load.
  	// we'll find out by reading the side effect in /proc/filesystems
  	_ = exec.Command("modprobe", "overlay").Run()
  
  	f, err := os.Open("/proc/filesystems")
  	if err != nil {
  		// don't use errwrap so consumers can type-check on ErrOverlayUnsupported
  		return ErrOverlayUnsupported(fmt.Sprintf("cannot open /proc/filesystems: %v", err))
  	}
  	defer f.Close()
  
  	s := bufio.NewScanner(f)
  	for s.Scan() {
  		if s.Text() == "nodev\toverlay" {
  			return nil
  		}
  	}
  
  	return ErrOverlayUnsupported("overlay entry not present in /proc/filesystems")
  }
docs: // SupportsOverlay returns whether the operating system generally supports OverlayFS,
  // returning an instance of ErrOverlayUnsupported which encodes the reason.
  // It is sufficient to check for nil if the reason is not of interest.