Files
ARCADIA-Studio/harness/release-wsl-956atf-20260911.md
T

8.9 KiB

Ubuntu26.04 WSL2 setup — Codex-956atf

2026-09-11. The user enabled virtualization, rebooted, and explicitly authorized installing Ubuntu26.04. This report concerns the root checkout's current host; other teams' setup results do not establish this host's readiness.

Paused by the user at15:28 UTC: Linux builds/checking are deferred until the user instructs us that WSL2 networking is resolved. All earlier guest commands are terminal. Retain the configuration/results below; do not repeat probes, restart WSL, transfer caches or perform further network diagnosis during this deferral. Gitea357.

Current result after the user's newest solution

The instructions in issue1/comment328 supersede the earlier mirrored-network investigation. The VPN is immutable, including no inspection. Root interrupted the old diagnostic worker and waited for both guest dependency-installation scripts to finish with exit0 before changing WSL configuration. No guest mutation remained at that safe boundary.

Root preserved the previous mirrored+DNS file as .local/wsl-956atf-20260911/before-user328.wslconfig and set the current C:/Users/User/.wslconfig to exactly these two lines, with LF endings:

[wsl2]
networkingMode=virtioproxy

Current configuration SHA256: D70D0D8C747A00E797F9F40BBBC88573D6D5A88656611099AB713A27F92D017A. Ordinary wsl --shutdown completed exit0. The subsequent Ubuntu root shell started the prescribed checks at14:58:17 UTC. The complete probe exited1:

Requested check Actual local result
ip -br addr lo; DOWN enP14721p0s0 with10.8.1.5/32; UP loopback0 with169.254.73.153/30.
ip route Only169.254.73.152/30 through loopback0; no default route.
ping -c 2 1.1.1.1 Exit2, Network is unreachable.
getent hosts github.com Exit2, no result.
curl -I https://github.com Exit28, resolving timeout.

Bounded waits were added to the three reachability checks to terminate failed probes; endpoints and requested operations are unchanged. The recurring root systemd-user-session warning appeared again. Scripts and exact output are network-user328-probe.sh and network-user328-probe.log in the private setup directory. Gitea result337 records this host's failure separately from other teams.

VirtioProxy-only remains configured. No further host network diagnostic, VPN inspection/change or PC reboot was performed. Network success remains open; ordinary development proceeds using the verified offline setup described in the completed dependency report. Native Rust/Cargo1.98.1, compiler/graphics prerequisites and all462 locked crate archives are installed and verified. Application compilation and runtime are separate next gates. The remaining sections preserve the earlier chronology; their then-current setup and network recommendations are superseded here.

Verified preparation

  • Current Windows boot: 2026-09-11T13:57:52.500Z.
  • Starting source: clean 8d55d2d2eb05aed826b96a917cf776e1d8c3b690.
  • wsl --list --verbose: no installed distributions. No Ubuntu Appx package and no installer/Cargo/rustc process existed before this attempt.
  • Official wsl --list --online catalog offers Ubuntu-26.04, Ubuntu26.04 LTS.
  • Free C volume capacity at preflight: 27,652,579,328 bytes.
  • Root started wsl --install Ubuntu-26.04 --no-launch --version 2 at about 14:07:44 UTC, owned command session27270, parent4580/child2620. Process handles are observations for this boot only. Root retains all installer/Cargo ownership.
  • Installer child has an established HTTPS connection to Canonical's 91.189.91.109:443 and increasing write-transfer counters. The open temporary archive's directory length remains zero during transfer; it is not an admitted complete image. No duplicate downloader or installer was started.

Microsoft's WSL command reference documents the supported install and distribution-list commands. The official catalog selects https://releases.ubuntu.com/26.04/ubuntu-26.04-wsl-amd64.wsl, expected SHA256 96c7f5fb28a7fe28245331f9bfbe4375f18dd29a4850116ad3c4f60f6700c55c. A separate read-only HTTPS HEAD at14:13:18 UTC returns HTTP200 and Content-Length415,361,247. This metadata is not a local download hash check.

Source and next gate

An exact git archive of8d55d2d is staged privately at .local/wsl-956atf-20260911/source-8d55d2d.tar:14,561,280 bytes, SHA256 B7A11CC7F0AC56C0F8FDED46B040665AE75EE55775AE429DFC8579A5D51EAD57. It excludes current uncommitted focus fixes and isolated schema8/canvas work. After actual guest startup, use a separate Linux filesystem source/cache/build directory and record compiler/dependencies before the first native Cargo gate. The archive alone is not Linux execution evidence.

Installation result

The supported installer completed with exit0 at about14:16 UTC and reported successful installation. wsl --list --verbose now lists Ubuntu-26.04, stateStopped, version2. Root hashed the completed415,361,247-byte temporary image: SHA256 96C7F5FB28A7FE28245331F9BFBE4375F18DD29A4850116AD3C4F60F6700C55C, exactly matching the official catalog. No restart was required by the installer.

The first explicit guest probe completed with exit0: uname -sr reports Linux 6.18.33.2-microsoft-standard-WSL2, /etc/os-release reports Ubuntu26.04 LTS, the ext4 root filesystem is mounted and /mnt/wslg exists. WSL now lists Ubuntu-26.04 Running/version2. No Linux build or graphical runtime pass follows from these successful shell observations. Normal UID1000 setup has not run; explicit --user root provides the setup shell. WSL repeatedly reports a root systemd-user-session timeout, although the later service check reports running and no failed units. Preserve that diagnostic for GUI setup.

Historical network trials and dependency setup

The first ordinary APT attempt exited100. Default HTTP repositories timed out; IPv6 additionally reported no route. Independent five-second IPv4 HTTPS probes to official Ubuntu archive/security and Rust endpoints also timed out inside the guest. Windows returned HTTP200 from the same archive/Rust endpoints. Default NAT had a route via172.21.64.1 and working tunneled DNS10.255.255.254.

Root tested two supported network modes documented by Microsoft: mirrored networking and VirtioProxy configuration. Mirrored returned no route/resolv.conf and DNS failures. VirtioProxy returned only a loopback0 route and failed DNS. Each used only networkingMode in a new per-user .wslconfig, followed by an ordinary WSL shutdown/start. Neither trial is a successful network result. Root restored the original absence of C:/Users/User/.wslconfig, preserving both tested files in the private evidence directory, and shut down WSL normally afterward.

Read-only effective Hyper-V policy showed firewall enabled, outboundAllow and inboundBlock; the host has an active VPN. Those facts do not prove a cause. No firewall, VPN, Windows feature, security or boot setting was changed, and the PC was not restarted. Do not repeat these unsuccessful modes blindly.

linux_dependency_setup now owns bounded guest dependencies/toolchain setup and ordinary Windows-side publisher downloads. Use supported offline APT mechanisms with signed metadata and package hashes, preserving verification; no insecure repository flags or network-control changes are authorized. Root retains all Cargo/native execution. Setup/compiler/runtime acceptance remains pending. See the worker's forthcoming Linux dependency report for results.

Private evidence: .local/wsl-956atf-20260911/ contains normalized installer and shell tool-result JSON, provision.log, network probe scripts/logs and the two tested configurations. Gitea coordination: issue1#288, #297 and #305. The original reboot handoff and private raw draft backup remain intact.

Between the initial trials and comment328, root applied the user's comment316 configuration, networkingMode=mirrored plus dnsTunneling=true, after a safe guest pause. That exact probe had only lo, no routes and a dangling resolv.conf symlink; ping1.1.1.1 exited2, getent google.com exited2 and curl-4 api.ipify.org exited6. network-user316-probe.sh/log preserve the failure. The previously restored absence of .wslconfig therefore ceased to be current at comment316; comment328 now supplies the current configuration and result at the top.