Files
vm-images/README.md
T
GuofangandClaude Opus 5.5 5ba114f5ad Download images from several mirrors at once with aria2c
Each *_IMAGE_URL may now list several mirrors of the same file. When
aria2c is installed, the file is split across all mirrors with a single
connection to each; otherwise curl or wget tries the mirrors in order,
skipping mirrors that fail or return an empty response. A partial
download is only resumed with the same downloader and mirror list.

Fedora now defaults to the TUNA, BFSU and NJU mirrors. The Aliyun
mirror is not used because it rejects aria2c.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YKxXLyiL7XJ3a9e8HmR2my
2026-09-30 10:56:19 +08:00

61 lines
2.2 KiB
Markdown

# vm-images
Shared, locally cached virtual-machine installation media and base images.
Downloaded ISO, QCOW2, IMG, VHD, and VHDX files are intentionally excluded
from Git.
## Download images
Download every supported image:
```bash
./download-images.sh
```
Download or check selected targets:
```bash
./download-images.sh debian13
./download-images.sh almalinux10
./download-images.sh fedora44
./download-images.sh virtio-win
```
The Windows installation ISO is not downloaded because Microsoft's temporary
download URLs expire. Place it manually in `install-iso/`; the script finds it
automatically by matching `Win`, `11`, `x64` and `.iso` in that order
(`*Win*11*x64*.iso`, case-insensitive). If several files match, the highest
version-sorted name is used. Check which file was picked with
`./download-images.sh --print-path windows11 --iso`.
## Query image paths
The path interface prints one absolute path without downloading anything:
```bash
./download-images.sh --print-path debian13
./download-images.sh --print-path almalinux10
./download-images.sh --print-path fedora44
./download-images.sh --print-path virtio-win
./download-images.sh --print-path windows11
./download-images.sh --print-path windows11 --iso
```
The Windows target prints the QCOW2 path by default. Add `--iso` to print its
manually supplied installation ISO path. The QCOW2 is named after the detected
ISO (for example `Win11_25H2_English_x64_v2.iso` →
`base-qcow2/Win11_25H2_English_x64_v2.qcow2`); if no ISO is present, an
existing `*Win*11*x64*.qcow2` in `base-qcow2/` is used instead.
Download URLs can be overridden with `DEBIAN_IMAGE_URL`, `ALMA_IMAGE_URL`,
`FEDORA_IMAGE_URL`, and `VIRTIO_WIN_ISO_URL`. Each may list several mirrors of
the same file, separated by whitespace; the Fedora image defaults to the TUNA,
BFSU and NJU mirrors.
When [aria2](https://aria2.github.io/) is installed (`aria2c`), an image is
downloaded from all of its mirrors at once, with a single connection to each
mirror. Without it, `curl` (or `wget`) tries the mirrors in order. A partial
download is only resumed with the same downloader and mirror list; otherwise
it starts over. The Fedora checksum can be
overridden with `FEDORA_IMAGE_SHA256` when using a custom image.