16 KiB
Local WSL readiness — 2026-09-11
Owner: Codex-9e8r6t /root/linux_readiness. Bounded local setup and dependency preparation; root owns heavy Cargo scheduling and Linux application acceptance.
User-directed pause — 15:28 UTC
The user has directed that Linux builds and checking be skipped for now and will notify us when they resolve WSL2 networking. All further Linux setup, WSL launches/diagnostics, service actions, builds and checks are paused. Preserve the existing VirtioProxy configuration, verified caches and evidence. Windows and product work continues. Gitea issue1 comment356 records this direction. The historical next steps below apply only after the user resumes Linux work.
Last measured state — 15:05 UTC
Ubuntu 26.04 is installed as WSL2 and a real root shell was verified. Mirrored networking was applied and proved unusable on this host. The user's newer VirtioProxy configuration is installed, but both the initial launch and one root-authorized retry after Windows compilation ended timed out before guest execution. VirtioProxy networking remains untested. A distinct root-authorized WslService restart was denied by service access permissions; it remains Running. No elevation workaround or further guest restart followed. No VPN changes.
Windows downloads provide all five hash-verified native Rust 1.98.1 components; 60 exact apt packages (80,287,656 bytes) completed download with every SHA256 verified against the official index. Apt metadata signature verification and guest package installation remain pending. No Linux compilation or application pass exists.
Next: root handles the service-access prerequisite and repeated CreateVm timeout. No further guest restart or configuration change is scheduled by this worker. Once a guest is usable, verify the requested mode/routes/DNS/HTTPS and stop troubleshooting if it works. Verify Ubuntu metadata signatures before installing offline packages, install the pinned native toolchain, remeasure backing-disk capacity and hand exact build commands to root. Linux Cargo stays held.
The small experiments/wsl-postboot-9e8r6t-20260911/setup-through-1457.zip and
adjacent manifest preserve 28 setup records (36,464 bytes compressed), with every
entry read back against its SHA256. Package blobs and complete distro images
are excluded. Later preparation/install results remain separately scoped.
Initial evidence
At 14:03 UTC this host is DESKTOP-3D601S7, boot 13:59:33.500 UTC. No active
Cargo/rustc/Ubuntu/WSL installer process was observed. The earlier 13:51:50.500
boot differs because the user rebooted again. Root's private shared-host probe
was read back with exact token root-20260911-postboot-281; its hostname and
13:51:50.500 boot matched the worker then. Do not infer shared registration from
the other Gitea owner's 13:41:27 boot or download progress.
Before the latest reboot, local wsl --list --verbose reported no installed
distribution, no Ubuntu Appx/Lxss child existed, and only wslservice was running.
The official wsl --list --online includes Ubuntu-26.04. Root's fresh postboot
probe again reports no distribution. Gitea issue 1 comments 281–282 coordinate
this worker separately from Codex-ytr83r's comments 273/277. The current open PR
list was empty; LinuxHostYtr83r20260911 Wiki is historical other-host evidence.
Capacity before setup
Fresh C: free space was 4,464,992,256 bytes. Installation was initially held while
root ratified a scoped capacity plan. Read-only inventory found
.local/target-gnullvm/debug/incremental contains 34,420 compiler-generated files,
10,148,598,387 bytes. This directory is the proposed reproducible-cache cleanup
candidate only after the sole Cargo owner confirms it is idle. Binaries under
deps, immutable GUI stages, source manifests, logs and native evidence are
outside that candidate. No files have been deleted and no installer was started.
Private evidence: .local/wsl-postboot-9e8r6t/storage-audit-1403.json records exact
resolved path, per-directory inventory, reparse-point check, host/boot and space.
Root subsequently authorized removal of only that incremental cache, with the
sole compiler lease held. The submitted native PowerShell command checked exact
resolved path, ancestor/descendant reparse points and absent compiler processes
before planned inventory and Remove-Item -LiteralPath. Automatic approval
review rejected the command before execution: rejected: blocked by policy.
No more specific reason was returned. No cleanup or install occurred; the
incremental directory remains. Do not retry equivalent deletion through another
tool or syntax to bypass this rejection. Root was informed and retains the
capacity decision. Its initial install gate required more than 12 GB free.
Capacity recovered without deleting — 14:29 UTC
After new explicit user authorization, root's second exact removal attempt was also rejected before execution. Root then selected a distinct action: ordinary NTFS compression, retaining files and bytes. Initial incremental-cache compression session 53364 was intentionally stopped with Ctrl+C/exit 1 and is not a completed compression pass. Subsequent generated-executable compression session 54860 completed exit 0 for 282 files, with every before/after SHA256 unchanged. Root reported 11,777,519,616 free bytes (10.97 GiB); worker's fresh 14:29:34 probe measured 11,772,731,392. Root accepted this measured capacity for setup. No file deletion or OS/security/boot setting change occurred.
Private binary-compression-result.json, binary-compression-records.jsonl and
compression logs preserve root's actual results and interrupted first action.
Supported install started — 14:30 UTC
Fresh local inventory still showed no registered distribution and no WSL/Ubuntu
installer or Cargo/rustc process. Worker started one ordinary installation in
exec session 32405. install-start.json and install.log preserve command,
boot, free space and output; install-result.json is written only on terminal
completion. Gitea issue 1 comment 308 records ownership. No registration or
Linux shell success was inferred while this process was live.
Installation completed at 14:36:46.120 UTC, exit 0, with the explicit message
Distribution successfully installed. Fresh list showed Ubuntu-26.04, WSL
version 2, initially Stopped. install-result.json measured 10,513,858,560 host
free bytes. The downloaded 415,361,247-byte image was independently SHA256
checked before install completion:
96c7f5fb28a7fe28245331f9bfbe4375f18dd29a4850116ad3c4f60f6700c55c, matching the
official Microsoft distribution catalog.
image-hash.json preserves the exact comparison. This validates the supplied
installer input; registration is separate from application acceptance.
First bounded root-shell inventory via wsl -d Ubuntu-26.04 -u root --exec /bin/sh -c ..., session 51462, completed exit 0 at 14:39:22 UTC. Exact guest
output/result is retained separately. /etc/os-release proves Ubuntu 26.04 LTS
(Resolute Raccoon); uname -a proves x86_64 Linux
6.18.33.2-microsoft-standard-WSL2; id proves root access. /dev/sdd is mounted,
/mnt/wslg exists, and apt-get/curl are installed. /etc/wsl.conf enables
systemd. No UID 1000 account or Linux Rust/Cargo executable was observed.
Guest networking has eth0 172.29.43.171 with default route via 172.29.32.1.
Root filesystem reports a virtual 955 GiB available, but the actual Windows
backing disk had only 10,432,016,384 free bytes: use the host value for capacity.
First root startup emitted Failed to start the systemd user session for 'root'.
A bounded read-only systemd/network/prerequisite probe follows; this warning is
not silently treated as a clean user session. No account/authentication was set.
The subsequent read-only probe completed at 14:40:49 UTC. Both Ubuntu and Rust
HTTPS HEAD probes timed out (curl 28, about 6 seconds each). The script's final
process exit 0 is not a networking pass. systemd reported starting and no
failed units; user@0 was inactive after recorded clean session shutdown. Base
image has ca-certificates, curl, git, Python 3.14 and Mesa Vulkan drivers; the
requested development packages and Rust/Cargo are not established.
User-directed mirrored networking correction
Read exact user issue 1 comment 316:
preserve host VPN, set mirrored networking plus DNS tunneling, restart WSL and
verify. Windows 11 Pro build 26200 was inspected. C:/Users/User/.wslconfig
did not exist; its absence is recorded in wslconfig-before.json. With no
remaining WSL client/apt operation, worker wrote only:
[wsl2]
networkingMode=mirrored
dnsTunneling=true
After SHA256 is
12C518CC5B3BA24F2F579151FC360FBC99F9E184ADB79EBCE29CF909B7574540;
wslconfig-after.json preserves exact content. One wsl --shutdown completed
exit 0 at 14:41:45 UTC. Existing Windows Cargo/rustc remained active as expected.
Fresh Ubuntu routing, numeric ping, DNS and HTTPS probes are in session 82441,
with explicit per-probe exit codes in mirrored-network.log. No VPN, firewall,
security/boot, manual route or resolv.conf edits were made.
Mirrored probe completed 14:44:28 UTC: only loopback, no default route; numeric
ping exit 2 Network is unreachable, DNS exit 2, all three HTTPS probes exit 6
(DNS failure). Again, wrapper exit 0 only means probes ran. Subsequent real
/usr/bin/wslinfo --networking-mode reported mirrored, exit 0 at 14:47:41 UTC:
the setting is applied at runtime, but connectivity is failing. The first
guessed wslinfo path was absent (exit 127), retained separately. /etc/resolv.conf
points to absent /mnt/wsl/resolv.conf. Guest journal records systemd init/user
startup timeouts and unsuccessful graceful poweroff followed by WSL's forced
poweroff; no additional explicit worker shutdown occurred.
Read-only host checks found DisabledComponents=4294967295 (0xFFFFFFFF) under
HKLM/SYSTEM/CurrentControlSet/Services/Tcpip6/Parameters. Physical Ethernet0
(Intel 82574L) is Up and its IPv6 adapter binding is enabled. This is a concrete
configuration clue, not proof of root cause; root is evaluating reported WSL
issues with similar loopback-only symptoms. No registry or adapter was changed.
host-ipv6-readonly.json, runtime-mode.log, guest logs and a bounded VmSwitch
event sample preserve observations. The sample includes NetEventBindFailed but
does not by itself prove which component caused the missing mirrored interface.
User-directed VirtioProxy correction — 14:52 UTC
The user's newer comment 328
supersedes the mirrored configuration: treat AmneziaWG as immutable, including
no inspection, and switch only WSL to VirtioProxy. Worker read the exact comment,
confirmed all prior WSL probes were terminal, and verified the current config
was exactly the two previously written keys. wslconfig-mirrored-backup.ini
preserves its original bytes. Replacement contains only [wsl2] and
networkingMode=virtioproxy; SHA256
5D8F32148682FEF35DABB4F506F1B206EB56DA8B9CB94589A530F7588C8164D6.
One shutdown completed exit 0 at 14:52:32 UTC. The requested runtime-mode,
address, route, numeric ping, github.com DNS and HTTPS tests run in session 18271.
No further VPN/adapter/registry/firewall inspection or mutation was performed.
The offline apt plan independently completed exit 0 before this change: base image retains official main/restricted indexes and can resolve README's build prerequisites without an index download. No apt/dpkg mutation has yet run. Native Linux Rust 1.98.1 components are being downloaded on Windows from the official HTTPS manifest, verified against its SHA256 values; no prior reusable native Rust or Debian package archive was found in the bounded task caches. The five components are compiler, Cargo, Linux standard library, rustfmt and Clippy; downloads do not constitute installation or compilation.
The first VirtioProxy guest launch failed before any guest command ran:
session 18271 terminated exit -1 at 14:54:57 UTC with
Wsl/Service/CreateInstance/CreateVm/0x800705b4 (timeout). There is no runtime-mode,
route, ping, DNS or HTTPS result for VirtioProxy yet. This is a VM startup failure,
not evidence that VirtioProxy networking failed. Root holds further guest launch
until Windows GUI compilation is terminal; one ordinary root shell with
--cd / and the same bounded probes is then planned. Config remains unchanged.
All five native Rust component archives have now individually passed manifest
SHA256 checks. First downloader exited 1 only because rustfmt's DNS resolution
failed; the other four archives passed. A separate bounded rustfmt retry passed
the same expected SHA256, retaining the initial failure. No guest install ran.
Official Ubuntu resolute InRelease and main Packages.xz were fetched on Windows;
the index's exact size/SHA256 matches InRelease. GPG signature verification in
the guest is required before any package install. Existing apt print-URI plan
selects concrete package versions and SHA256 from that index, avoiding duplicate
distribution/index trees. First local planner stopped before downloads on an
encoded ++ path; URL decoding was corrected without changing metadata/hashes.
After Windows GUI compilation was confirmed terminal, root authorized one
ordinary persistent shell retry with --cd /, no additional shutdown/config
change. Session 54267 also terminated before guest commands, exit 1 and the same
CreateVm timeout. virtioproxy-retry-result.json preserves the exact terminal
error text (PTY control escapes omitted), command and observation. Failure after
the compiler cleared means concurrent Cargo alone cannot explain the outcome;
the actual cause remains unresolved. All guest installs remain unexecuted.
Distinct WslService reset hypothesis — 15:05 UTC
Root authorized a single restart of WslService only after preserving state.
Preflight found WslService Running, no WSL/Ubuntu/installer client processes,
and wsl --list --running --quiet exit 0 with no distro output. Current config
hash remained unchanged. Lxss event log was not found; accessing the Hyper-V
Compute Operational event log explicitly required elevated user rights, so no
failure-event diagnosis is claimed from that inaccessible log.
Restart-Service -Name WslService -ErrorAction Stop then failed at 15:05:23 UTC:
Cannot open 'WslService' service on computer '.'. The service remained Running.
This is a command-level service-access failure, distinct from the earlier
automatic approval rejection of file deletion. No elevation UI/workaround,
second service attempt or guest launch followed. HNS, vmcompute, network
adapters, firewall and VPN were not changed or restarted. Exact preflight,
running-distro result, denied event access and service result are preserved in
the private service-reset-* records.
Historical supported installation method and setup inputs
After coordinated capacity recovery, the successful installation used:
wsl --install Ubuntu-26.04 --no-launch --version 2
Its terminal result and real guest checks are recorded above. Interactive authentication/account choices stay with the user. No host security/features/boot changes or QEMU workaround are part of this task.
Repository setup inputs are README.md, rust-toolchain.toml, Cargo.toml and docs/linux-packaging.md. README requests build-essential, pkg-config, libxkbcommon-dev, libxkbcommon-x11-0, libwayland-dev, libvulkan-dev, libx11-dev, libxrandr-dev and libxi-dev; Mesa Vulkan runtime is needed for the documented software-adapter trial. rust-toolchain.toml selects stable with rustfmt/clippy; workspace MSRV is 1.90. The packaging document's Ubuntu 24.04 baseline is distinct from the newly requested Ubuntu 26.04 host and must remain explicit.
Ubuntu registration and a real root shell are now verified. Dependency installation, Rust toolchain, application build, package, GUI and service acceptance remain unestablished. No Cargo compilation was started.