# Error: error downloading ISO: [download not supported for scheme 'smb'] (Packer)

## TL;DR
Packer cannot download over SMB. Copy the ISO to a local path or serve it over HTTP(S), then point `iso_url` there.

## The error

```
==> hyperv-iso: Trying smb://share\up\pub\Conf\2016_64Bits.ISO?checksum=sha256%3A...
==> hyperv-iso: Download failed download not supported for scheme 'smb'
==> hyperv-iso: error downloading ISO: [download not supported for scheme 'smb']
Build 'hyperv-iso' errored: error downloading ISO: [download not supported for scheme 'smb']
```

## Fix it

1. Copy the ISO off the share to the build machine (or a file server you control).
   - Success check: the ISO exists at a local or HTTP(S) path.
2. Point `iso_url` at the new location: a `file://` path, an `http(s)://` URL, or a plain local path.
   - Success check: no `smb://` anywhere in the config.
3. Keep the `iso_checksum` so the copy is verified.
   - Success check: `packer validate` passes.
4. Re-run `packer build`.
   - Success check: `Retrieving ISO` succeeds.

## When to use this
You hit this with `iso_url` pointing at an SMB/UNC share, typically with hyperv-iso on Windows build hosts.

## When NOT to use this
Do not use this for HTTP download failures (use the checksum/download troubleshooting) or for checksum mismatches.

## Compatibility
Packer 1.x, go-getter download schemes. SMB was never supported.

## Variants
- `download not supported for scheme '[other]'` for any non-supported scheme
- UNC paths (a UNC server/share path) auto-converted to `smb://` and failing the same way

## Root cause
Packer downloads via go-getter, which supports http/https, file, and a few others, but not SMB. UNC paths get rewritten to `smb://` and rejected.

## Edge cases
- Mounting the share to a drive letter and using the mounted path works, since Packer then sees a local file.
- Large ISOs over HTTP are fine; the checksum still guards integrity.
