From 6286495d27836300a2cb5d621728108b7858c33a Mon Sep 17 00:00:00 2001 From: Guofang Date: Thu, 15 Oct 2026 09:00:08 +0800 Subject: [PATCH] Add Ubuntu 26.04 cloud image Download the Ubuntu 26.04 LTS server cloud image (release 20260927) for amd64 and arm64 from the TUNA, NJU and official mirrors, verified with the pinned SHA256 checksums from the release's SHA256SUMS. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Kwxp2XWvKnuEBifnCbhyX5 --- README.md | 13 ++++++++----- download-images.sh | 28 +++++++++++++++++++++++++--- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 2d7d1d7..debcb86 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Download or check selected targets: ./download-images.sh debian13 ./download-images.sh almalinux10 ./download-images.sh fedora44 +./download-images.sh ubuntu2604 ./download-images.sh virtio-win ``` @@ -36,6 +37,7 @@ The path interface prints one absolute path without downloading anything: ./download-images.sh --print-path debian13 ./download-images.sh --print-path almalinux10 ./download-images.sh --print-path fedora44 +./download-images.sh --print-path ubuntu2604 ./download-images.sh --print-path virtio-win ./download-images.sh --print-path windows11 ./download-images.sh --print-path windows11 --iso @@ -48,13 +50,14 @@ ISO (for example `Win11_25H2_English_x64_v2.iso` → 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. +`FEDORA_IMAGE_URL`, `UBUNTU_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, and the Ubuntu image to the +TUNA, NJU and official cloud-images.ubuntu.com 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. +it starts over. The Fedora and Ubuntu checksums can be overridden with +`FEDORA_IMAGE_SHA256` and `UBUNTU_IMAGE_SHA256` when using a custom image. diff --git a/download-images.sh b/download-images.sh index 048f995..948e196 100755 --- a/download-images.sh +++ b/download-images.sh @@ -19,11 +19,16 @@ if [[ "$image_arch" == arm64 ]]; then debian_image="${base_qcow2_dir}/debian-13-generic-arm64-20260810-2566.qcow2" alma_image="${base_qcow2_dir}/AlmaLinux-10-GenericCloud-10.2-20260526.0.aarch64.qcow2" fedora_image="${base_qcow2_dir}/Fedora-Cloud-Base-Generic-44-1.7.aarch64.qcow2" + ubuntu_image="${base_qcow2_dir}/ubuntu-26.04-server-cloudimg-arm64-20260927.img" debian_url_default="https://cloud.debian.org/images/cloud/trixie/20260810-2566/debian-13-generic-arm64-20260810-2566.qcow2" alma_url_default="https://repo.almalinux.org/almalinux/10/cloud/aarch64/images/AlmaLinux-10-GenericCloud-10.2-20260526.0.aarch64.qcow2" fedora_url_default="https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/44/Cloud/aarch64/images/Fedora-Cloud-Base-Generic-44-1.7.aarch64.qcow2 https://mirrors.bfsu.edu.cn/fedora/releases/44/Cloud/aarch64/images/Fedora-Cloud-Base-Generic-44-1.7.aarch64.qcow2 https://mirrors.nju.edu.cn/fedora/releases/44/Cloud/aarch64/images/Fedora-Cloud-Base-Generic-44-1.7.aarch64.qcow2" + ubuntu_url_default="https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/resolute/20260927/resolute-server-cloudimg-arm64.img + https://mirrors.nju.edu.cn/ubuntu-cloud-images/releases/26.04/release-20260927/ubuntu-26.04-server-cloudimg-arm64.img + https://cloud-images.ubuntu.com/releases/26.04/release-20260927/ubuntu-26.04-server-cloudimg-arm64.img" + ubuntu_sha256_default="63a93bd5a8d76e33b15ceb5daa3657bd79be804748051ab178e643b0f5da22e7" # TODO: these were pinned for the amd64/x86_64 builds; verification is # skipped (empty default) for the arm64/aarch64 builds until their # checksums are fetched and pinned via DEBIAN_IMAGE_SHA512 / @@ -35,14 +40,19 @@ else debian_image="${base_qcow2_dir}/debian-13-generic-amd64-20260810-2566.qcow2" alma_image="${base_qcow2_dir}/AlmaLinux-10-GenericCloud-10.2-20260526.0.x86_64.qcow2" fedora_image="${base_qcow2_dir}/Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2" + ubuntu_image="${base_qcow2_dir}/ubuntu-26.04-server-cloudimg-amd64-20260927.img" debian_url_default="https://cloud.debian.org/images/cloud/trixie/20260810-2566/debian-13-generic-amd64-20260810-2566.qcow2" alma_url_default="https://repo.almalinux.org/almalinux/10/cloud/x86_64/images/AlmaLinux-10-GenericCloud-10.2-20260526.0.x86_64.qcow2" fedora_url_default="https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/44/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2 https://mirrors.bfsu.edu.cn/fedora/releases/44/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2 https://mirrors.nju.edu.cn/fedora/releases/44/Cloud/x86_64/images/Fedora-Cloud-Base-Generic-44-1.7.x86_64.qcow2" + ubuntu_url_default="https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/resolute/20260927/resolute-server-cloudimg-amd64.img + https://mirrors.nju.edu.cn/ubuntu-cloud-images/releases/26.04/release-20260927/ubuntu-26.04-server-cloudimg-amd64.img + https://cloud-images.ubuntu.com/releases/26.04/release-20260927/ubuntu-26.04-server-cloudimg-amd64.img" debian_sha512_default="f6978100d8031c266d55d7815ceea7fcdeacf28e1e5834fdb9c94ac96880a054a6e6f8681c2d3b0584e0057eaf3ef7353856b85212d04134744faa9b3bb1f24f" alma_sha256_default="47f2218668dd4776be140dd92fa3bea700be1766e2c7d88bdfd6a4b50f477b4d" fedora_sha256_default="28680fe5b371a5a82ebf43a31926e086a168e59949d03969c5093e7071f90b7f" + ubuntu_sha256_default="8800651811af9a85465ad1d552add729947bb16488dddb4a9b5305a3d97332b2" fi virtio_image="${tools_iso_dir}/virtio-win.iso" @@ -89,19 +99,21 @@ windows_qcow2_path() { debian_url="${DEBIAN_IMAGE_URL:-$debian_url_default}" alma_url="${ALMA_IMAGE_URL:-$alma_url_default}" fedora_url="${FEDORA_IMAGE_URL:-$fedora_url_default}" +ubuntu_url="${UBUNTU_IMAGE_URL:-$ubuntu_url_default}" virtio_url="${VIRTIO_WIN_ISO_URL:-https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso}" debian_sha512="${DEBIAN_IMAGE_SHA512:-$debian_sha512_default}" alma_sha256="${ALMA_IMAGE_SHA256:-$alma_sha256_default}" fedora_sha256="${FEDORA_IMAGE_SHA256:-$fedora_sha256_default}" +ubuntu_sha256="${UBUNTU_IMAGE_SHA256:-$ubuntu_sha256_default}" force_download=false usage() { cat <&2; usage >&2; exit 2 ;; esac @@ -378,6 +391,15 @@ if wants_target fedora44; then "$fedora_sha256" fi +if wants_target ubuntu2604; then + download_file \ + 'Ubuntu 26.04 cloud image' \ + "$ubuntu_url" \ + "$ubuntu_image" \ + sha256 \ + "$ubuntu_sha256" +fi + if wants_target virtio-win; then download_file \ 'VirtIO Windows tools ISO' \