code: func (u *CopyOnWriteFs) Remove(name string) error {
  	err := u.layer.Remove(name)
  	switch err {
  	case syscall.ENOENT:
  		_, err = u.base.Stat(name)
  		if err == nil {
  			return syscall.EPERM
  		}
  		return syscall.ENOENT
  	default:
  		return err
  	}
  }
docs: // Removing files present only in the base layer is not permitted. If
  // a file is present in the base layer and the overlay, only the overlay
  // will be removed.