<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wsl on heppoko blog</title><link>https://blog-0847c6.gitlab.io/tags/wsl/</link><description>Recent content in Wsl on heppoko blog</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><lastBuildDate>Tue, 20 Feb 2024 00:00:00 +0900</lastBuildDate><atom:link href="https://blog-0847c6.gitlab.io/tags/wsl/index.xml" rel="self" type="application/rss+xml"/><item><title>WSL で使用しているディスクスペースを解放する</title><link>https://blog-0847c6.gitlab.io/posts/2024/02/20/wsl/</link><pubDate>Tue, 20 Feb 2024 00:00:00 +0900</pubDate><guid>https://blog-0847c6.gitlab.io/posts/2024/02/20/wsl/</guid><description>&lt;p&gt;WSL 上の Ubuntu で docker を使っていたのですが、ストレージの空き容量が少なくなってきたので docker イメージを削除しても空き容量が変化しませんでした。&lt;/p&gt;
&lt;p&gt;調べてみたところ、どうやら仮想ディスクの最適化まで行わないとディスクスペースは解放されないようです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://01futabato10.hateblo.jp/entry/2022/12/02/095031" target="_blank" rel="noopener"
 &gt;https://01futabato10.hateblo.jp/entry/2022/12/02/095031&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://qiita.com/siruku6/items/c91a40d460095013540d" target="_blank" rel="noopener"
 &gt;https://qiita.com/siruku6/items/c91a40d460095013540d&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただ、私の PC はストレージ容量が少なく、頻繁に Docker イメージを消して容量を確保しているため、都度コマンドを打つのは面倒ということで、スクリプト化しました。&lt;/p&gt;
&lt;p&gt;コマンドとしては、diskpart を使う方法と、Optimize-VHD を使う方法があるみたいですが、Optimize-VHD は Hyper-V を有効化する必要があり、Windows Home では使えないということで、今回は diskpart を使うことにしました。&lt;/p&gt;
&lt;p&gt;diskpart でスクリプトを実行する方法は以下に記載されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/diskpart-scripts-and-examples" target="_blank" rel="noopener"
 &gt;https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/diskpart-scripts-and-examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="サンプル"&gt;&lt;a href="#%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab" class="header-anchor"&gt;&lt;/a&gt;サンプル
&lt;/h2&gt;&lt;p&gt;まずは diskpart で実行するスクリプトを作成します（ここでは &lt;code&gt;sample.txt&lt;/code&gt; としました）。&lt;/p&gt;
&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;select vdisk file=&amp;#34;%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;attach vdisk readonly
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;compact vdisk
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;detach vdisk
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;file&lt;/code&gt; のパスは環境によって異なると思うので、以下を参考に調べてください。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://01futabato10.hateblo.jp/entry/2022/12/02/095031" target="_blank" rel="noopener"
 &gt;https://01futabato10.hateblo.jp/entry/2022/12/02/095031&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;そのうえで、以下のバッチファイルを作成します。&lt;/p&gt;
&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;wsl --shutdown
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;diskpart /s sample.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;あとはこのバッチファイルを実行するだけで OK です。&lt;/p&gt;
&lt;h2 id="参考-url"&gt;&lt;a href="#%e5%8f%82%e8%80%83-url" class="header-anchor"&gt;&lt;/a&gt;参考 URL
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://01futabato10.hateblo.jp/entry/2022/12/02/095031" target="_blank" rel="noopener"
 &gt;https://01futabato10.hateblo.jp/entry/2022/12/02/095031&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://qiita.com/siruku6/items/c91a40d460095013540d" target="_blank" rel="noopener"
 &gt;https://qiita.com/siruku6/items/c91a40d460095013540d&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://dev.classmethod.jp/articles/windows-virtual-disk-compression/" target="_blank" rel="noopener"
 &gt;https://dev.classmethod.jp/articles/windows-virtual-disk-compression/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>WSL でディストリビューションを削除して再インストール後に起動エラーになる</title><link>https://blog-0847c6.gitlab.io/posts/2023/07/14/wsl/</link><pubDate>Fri, 14 Jul 2023 00:00:00 +0900</pubDate><guid>https://blog-0847c6.gitlab.io/posts/2023/07/14/wsl/</guid><description>&lt;p&gt;スタートメニューから Ubuntu 20.04 をアンインストールして、再度 MS ストアからインストールして起動しようとしたら以下のエラーが表示されました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ps" data-lang="ps"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;Error&lt;/span&gt; &lt;span class="nf"&gt;code:&lt;/span&gt; &lt;span class="nf"&gt;Wsl&lt;/span&gt;&lt;span class="nv"&gt;/Service/CreateInstance/MountVhd/ERROR_FILE_NOT_FOUND&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;まず、インストールされているディストリビューションを確認します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ps" data-lang="ps"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;wsl&lt;/span&gt; &lt;span class="nf"&gt;-l&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;Linux&lt;/span&gt; &lt;span class="nf"&gt;用&lt;/span&gt; &lt;span class="nf"&gt;Windows&lt;/span&gt; &lt;span class="nf"&gt;サブシステム&lt;/span&gt; &lt;span class="nf"&gt;ディストリビューション:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;Ubuntu-20.04&lt;/span&gt; &lt;span class="s"&gt;(既定)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;アンインストールしたはずのディストリビューションが残っていると思うので、以下のコマンドで登録を解除します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ps" data-lang="ps"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;wsl&lt;/span&gt; &lt;span class="nf"&gt;--unregister&lt;/span&gt; &lt;span class="nf"&gt;Ubuntu-20.04&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで、再度ディストリビューションを起動すれば OK です。&lt;/p&gt;
&lt;h2 id="参考-url"&gt;&lt;a href="#%e5%8f%82%e8%80%83-url" class="header-anchor"&gt;&lt;/a&gt;参考 URL
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.techgaku.com/fix-ubuntu-boot-error-on-wsl-after-reinstall/" target="_blank" rel="noopener"
 &gt;https://www.techgaku.com/fix-ubuntu-boot-error-on-wsl-after-reinstall/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Microsoft ストア版の WSL をインストールする</title><link>https://blog-0847c6.gitlab.io/posts/2023/07/06/wsl/</link><pubDate>Thu, 06 Jul 2023 00:00:00 +0900</pubDate><guid>https://blog-0847c6.gitlab.io/posts/2023/07/06/wsl/</guid><description>&lt;p&gt;WSL について、Windows のコンポーネント（組み込み）として提供されているものと、Microsoft Store で提供されているものがあるのを知りました。&lt;/p&gt;
&lt;p&gt;きっかけは、WSL2 上の Ubuntu で systemd を使おうとしたら使えなかったことで、調べていくと WSL 自体のバージョンが 0.67.6 以降だと systemd が使えることがわかりました。&lt;/p&gt;
&lt;p&gt;WSL 自体のバージョンは以下のコマンドで確認できるらしいのですが、&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ps" data-lang="ps"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;wsl&lt;/span&gt; &lt;span class="nf"&gt;--version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;私の環境ではバージョンが表示されず、コマンドの説明が表示されてしまいました。&lt;/p&gt;
&lt;p&gt;これは、どうやら WSL のバージョンが古いのが原因らしく、最新版は Microsoft Store からインストールできるらしいと。&lt;br&gt;
ここで、2022年11月に正式版としてリリースされたストア版の WSL を知り、自分が使っていたのは「Windows の機能の有効化または無効化」からインストールしたコンポーネント版で、古いプレビュー版の WSL だということを知りました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://qiita.com/omu_kato/items/f9a6b5a02e25f5f2a487" target="_blank" rel="noopener"
 &gt;https://qiita.com/omu_kato/items/f9a6b5a02e25f5f2a487&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ストア版の WSL は普通に Microsoft Store で検索すれば見つかるので、そこでインストールするだけです。&lt;/p&gt;
&lt;p&gt;尚、既にコンポーネント版を使っていてもストア版をインストールして使えるようですが、私の環境では Ubuntu 22.04 を起動しようとすると &lt;code&gt;Error code: Wsl/Service/CreateInstance/MountVhd/ERROR_FILE_NOT_FOUND&lt;/code&gt; のエラーが出てしまいました。&lt;/p&gt;
&lt;p&gt;これについては、以下を参考に WSL から Ubuntu 22.04 の登録を解除すれば直りました。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.techgaku.com/fix-ubuntu-boot-error-on-wsl-after-reinstall/" target="_blank" rel="noopener"
 &gt;https://www.techgaku.com/fix-ubuntu-boot-error-on-wsl-after-reinstall/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="参考-url"&gt;&lt;a href="#%e5%8f%82%e8%80%83-url" class="header-anchor"&gt;&lt;/a&gt;参考 URL
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://qiita.com/omu_kato/items/f9a6b5a02e25f5f2a487" target="_blank" rel="noopener"
 &gt;https://qiita.com/omu_kato/items/f9a6b5a02e25f5f2a487&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://qiita.com/hiromasa-masuda/items/355fe0c882a1a0abe1e1" target="_blank" rel="noopener"
 &gt;https://qiita.com/hiromasa-masuda/items/355fe0c882a1a0abe1e1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.techgaku.com/fix-ubuntu-boot-error-on-wsl-after-reinstall/" target="_blank" rel="noopener"
 &gt;https://www.techgaku.com/fix-ubuntu-boot-error-on-wsl-after-reinstall/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>