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 --onlinecatalog offersUbuntu-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 2at 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:443and 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.