Skip to content

Latest commit

 

History

102 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

101strap

Build Ubuntu 26.04 images with the Xubuntu minimal desktop for Linux 101.

Build

Requires Linux, Python 3 and rootless Podman with subordinate UID/GID ranges configured. Builds run as your ordinary user, without sudo. Docker with Buildx is also supported via CONTAINER_ENGINE=docker; see DESIGN.md for its requirements.

./build.sh                         # amd64: qcow2, VMDK, VDI and VMware/VirtualBox OVA
FORMAT=qcow2 ./build.sh             # amd64: qcow2 only
ARCH=arm64 ./build.sh               # arm64: qcow2

Outputs are in dist/<arch>/. Move previous builds aside before rebuilding; verify downloads with sha256sum -c SHA256SUMS in the output directory.

Use a native host for each architecture, or build arm64 on x86_64 with Linux 6.7 or newer.

Start CI builds through Actions → qcow2 images → Run workflow. Successful builds publish the qcow2 image, build metadata and SHA256SUMS to Releases, tagged build-<run-id>-<attempt>. CI currently builds amd64 only.

Export an existing qcow2

On an x86_64 Linux host, place an amd64 image built by this project at dist/amd64/root.qcow2 (rename the Release download 101strap-amd64.qcow2, or extract the amd64 CI artifact there). Run from the repository root:

# Build the export tools (cached on subsequent runs).
ARCH=amd64 python3 rootfs/build.py --engine podman --target exporter \
    --tag local/101strap:exporter

podman run --init --rm \
    -v "$(pwd):/srv:ro" -v "$(pwd)/dist/amd64:/target" \
    -e ARCH=amd64 local/101strap:exporter bash /srv/image/export.sh

This produces root.vmdk, root.vdi, VMware and VirtualBox OVA files, and updates SHA256SUMS in the same directory. Move existing exports aside first; the script refuses to overwrite them. The source qcow2 is preserved. Preparing the exporter builds only the export tools; no guest rootfs is needed. To use Docker, replace podman in both commands with docker.

Run

Import the OVA into VMware or VirtualBox. For QEMU, install the system emulator and matching UEFI firmware, then run:

python3 tools/run-vm.py --arch amd64
python3 tools/run-vm.py --arch arm64

The QEMU launcher discards changes when it exits. Images use a 16 GiB disk and UEFI with Secure Boot disabled. The username and password are both ustc.

Further reading

Created by taoky, RTXUX, and xuao1.

About

Linux 101 Desktop VM building scripts

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages