<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Windows and WSL on errno</title><link>https://errno.jofrey.eu/categories/windows-and-wsl/</link><description>Recent content in Windows and WSL on errno</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 14 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://errno.jofrey.eu/categories/windows-and-wsl/index.xml" rel="self" type="application/rss+xml"/><item><title>The new Teams keeps its local chat cache in WV2Profile_tfw, not Default</title><link>https://errno.jofrey.eu/posts/new-teams-local-cache-is-not-in-the-default-profile/</link><pubDate>Mon, 14 Sep 2026 00:00:00 +0000</pubDate><guid>https://errno.jofrey.eu/posts/new-teams-local-cache-is-not-in-the-default-profile/</guid><description>&lt;h2 id="symptom"&gt;Symptom&lt;/h2&gt;&#10;&lt;p&gt;I wanted a copy of my own chat history out of the new Teams desktop client. Not somebody else&amp;rsquo;s messages,&#10;not the whole tenant — mine, for archiving, in a form I could grep. No administrator available to help.&lt;/p&gt;&#10;&lt;p&gt;Two walls, in this order. The first is the documented API. A device-code flow against a first-party client&#10;id, asking for the delegated &lt;code&gt;Chat.Read&lt;/code&gt; scope, gets as far as the sign-in page and then stops:&lt;/p&gt;</description></item><item><title>The Windows drives WSL2 cannot reach: Google Drive returns ENODEV, mapped network drives are simply absent</title><link>https://errno.jofrey.eu/posts/windows-drives-wsl2-cannot-reach/</link><pubDate>Wed, 19 Aug 2026 00:00:00 +0000</pubDate><guid>https://errno.jofrey.eu/posts/windows-drives-wsl2-cannot-reach/</guid><description>&lt;h2 id="symptom"&gt;Symptom&lt;/h2&gt;&#10;&lt;p&gt;I needed a report out of a Google Drive folder from inside WSL2. The drive letter exists in Windows, the&#10;mount exists in Linux, and every single access fails:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ls /mnt/g&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ls: reading directory &amp;#39;/mnt/g&amp;#39;: No such device&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ stat /mnt/g&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stat: cannot statx &amp;#39;/mnt/g&amp;#39;: No such device&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;From Python the same thing reads as &lt;code&gt;os error 19&lt;/code&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;OSError: [Errno 19] No such device: &amp;#39;/mnt/g&amp;#39;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;At the exact same moment &lt;code&gt;/mnt/c&lt;/code&gt;, &lt;code&gt;/mnt/d&lt;/code&gt; and &lt;code&gt;/mnt/e&lt;/code&gt; list normally. Windows interop works. Nothing else&#10;is broken. And the mount is &lt;em&gt;there&lt;/em&gt; — it looks indistinguishable from a working one:&lt;/p&gt;</description></item><item><title>WSL2: /mnt/c fails with "Input/output error (os error 5)" after the laptop sleeps</title><link>https://errno.jofrey.eu/posts/wsl2-mnt-input-output-error-os-error-5-after-sleep/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://errno.jofrey.eu/posts/wsl2-mnt-input-output-error-os-error-5-after-sleep/</guid><description>&lt;h2 id="symptom"&gt;Symptom&lt;/h2&gt;&#10;&lt;p&gt;The laptop was suspended with a WSL2 session open. After resume, every path under &lt;code&gt;/mnt&lt;/code&gt; is dead:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ls /mnt/c&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ls: reading directory &amp;#39;/mnt/c&amp;#39;: Input/output error&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ cat /mnt/d/some/file&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat: /mnt/d/some/file: Input/output error&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Python, Node and anything else that touches those paths reports the same thing as &lt;code&gt;os error 5&lt;/code&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;OSError: [Errno 5] Input/output error: &amp;#39;/mnt/c&amp;#39;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Native Linux filesystems are unaffected. &lt;code&gt;/&lt;/code&gt;, &lt;code&gt;/home&lt;/code&gt;, &lt;code&gt;/mnt/wsl&lt;/code&gt; and &lt;code&gt;/mnt/wslg&lt;/code&gt; behave normally, and&#10;long-running processes that never touch &lt;code&gt;/mnt&lt;/code&gt; keep going.&lt;/p&gt;</description></item></channel></rss>