Ubuntu-24.04 on WSL2

事前準備

J:\WSL2\Ubuntu-24.04>wsl.exe --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
Ubuntu-24.04                           Ubuntu 24.04 LTS    ☆これ!
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed
  • インストールオプションではインストール先を指定できないようなので、一旦所定の場所にインストールしてからエクスポートしてインポートするという手順を取ることになりそう。実際には、シャットダウン -> ext4.vhdxをコピー、wslコマンドでディストリビューションを削除 -> wslコマンドでディストリビューションを登録でなんとかなりそうな気がする。
   --install [ディストリビューション] [オプション...]
       Linux 用 Windows サブシステム ディストリビューションをインストールします。
       有効なディストリビューションの一覧を確認するには、'wsl.exe --list --online' を使用します。

       オプション:
           --no-launch, -n
               インストール後にディストリビューションを起動しません。

           --web-download
               Microsoft Store ではなくインターネットからディストリビューションをダウンロードします。

           --no-distribution
               必要なオプションのコンポーネントのみをインストールし、ディストリビューションをインストールしません。

           --enable-wsl1
               WSL1 サポートを有効にします。

手順

インストール済みディストリビューションの一覧表示

  • wsl.exe -l -v
J:\WSL2>wsl.exe -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         2

不要なディストリビューションを削除する

  • wsl.exe --unregister Ubuntu-22.04
J:\WSL2>wsl.exe --unregister Ubuntu-22.04
登録解除。
この操作を正しく終了しました。

Ubuntu 24.04をインストールする

  • wsl.exe --install Ubuntu-24.04 --no-launch
J:\WSL2>wsl.exe --install Ubuntu-24.04 --no-launch
インストール中: Ubuntu 24.04 LTS
Ubuntu 24.04 LTS がインストールされました。
この操作を正しく終了しました。

Ubuntu 24.04の初期設定をする

  • 設定 -> アプリ -> Ubuntu 24.04をクリックして起動
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: #######
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 24.04 LTS (GNU/Linux 5.15.153.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Sun Jun 16 13:48:11 JST 2024

  System load:  0.26                Processes:             59
  Usage of /:   0.1% of 1006.85GB   Users logged in:       0
  Memory usage: 1%                  IPv4 address for eth0: 172.31.123.91
  Swap usage:   0%


This message is shown once a day. To disable it please create the
/home/#######/.hushlogin file.
#######@5950X:~$
  • wsl.exe -l -v
J:\WSL2>wsl.exe -l -v
  NAME            STATE           VERSION
* Ubuntu-24.04    Running         2

Ubuntu 24.04をエクスポートする

  • wsl.exe --shutdown
  • wsl.exe --export Ubuntu-24.04 E:\\20240616-Ubuntu-24.04.tar
J:\WSL2>wsl.exe --shutdown

J:\WSL2>wsl.exe --export Ubuntu-24.04 E:\<PATH>\20240616-Ubuntu-24.04.tar
エクスポートが進行中です。これには数分かかる場合があります。
この操作を正しく終了しました。

Ubuntu 24.04をアンインストールする

  • 設定 -> アプリ -> Ubuntu 24.04をアンインストール

Ubuntu 24.04をインポートする

J:\WSL2>mkdir Ubuntu-24.04

J:\WSL2>wsl.exe --import Ubuntu-24.04 J:\WSL2\Ubuntu-24.04 E:\<PATH>\20240616-Ubuntu-24.04.tar
インポート中です。この処理には数分かかることがあります。
この操作を正しく終了しました。

J:\WSL2>wsl.exe -l -v
  NAME            STATE           VERSION
* Ubuntu-24.04    Stopped         2

J:\WSL2>wsl -u #######
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

#######@5950X:/mnt/j/WSL2$ exit
logout

J:\WSL2>wsl.exe -l -v
  NAME            STATE           VERSION
* Ubuntu-24.04    Running         2

初期設定

システムを最新にする

  • sudo apt update
  • sudo apt upgrade

/etc/wsl.confの設定

[boot]
systemd=true

[automount]
enabled= true
root= /mnt/
options= "metadata,umask=22,fmask=11"
mountFsTab= false

# Enable DNS – even though these are turned on by default, we'll specify here just to be explicit.
# [network]
# # generateHosts= true
# # generateResolvConf= true

プログラムをインストールする

fetchmailの設定

$ touch .fetchids
$ touch .fetchmailrc
$ chmod 700 .fetch*
$ ls -la .fetch*
-rwx------ 1 ####### ####### 0 Jun 16 14:43 .fetchids
-rwx------ 1 ####### ####### 0 Jun 16 14:43 .fetchmailrc
  • .fetchmailrc
poll <mailserver>
protocol pop3
uidl

user <pop3 username>
pass <password>
keep
fetchsizelimit 0
no rewrite
no fetchall
no mimedecode
mda "/usr/bin/procmail"
ssl

procmailの設定

$ touch .procmailrc
$ chmod 640 .procmailrc
$ ls -la .procmailrc
-rw-r----- 1 ####### ####### 225 Jun 16 14:48 .procmailrc
  • .procmailrc
MAILDIR=$HOME/Mail
DEFAULT=$MAILDIR/

LOGFILE=$MAILDIR/log/`date +%Y%m%d.log`
LOCKFILE=$MAILDIR/.lockmail

FOLDER=`date +%Y%m`

:0 ic
* ? test ! -d inbox/$FOLDER
| mkdir inbox/$FOLDER

:0:
inbox/${FOLDER}/.
MAILDIR=/mnt/e/EFS/Winbin/WSL2/mail
    • 保存先のオーナーを変更する
$ sudo chown -R #######:####### /mnt/e/EFS/Winbin/WSL2
[sudo] password for #######:

mail.sh

#!/bin/sh
/usr/bin/date
/usr/bin/fetchmail --fetchmailrc /home/#######/.fetchmailrc -v 

.bash_profile

/home/#######/mail.sh

cron/crontab

  • wsl.exe -u root -- service cron start
  • crontab
# m h  dom mon dow   command
* * * * * echo "Cron test at $(date +\%Y-\%m-\%d\ \%H:\%M:\%S)" >> /home/#######/crontest.txt 2>&1
59 8,23 * * * /home/#######/mail.sh >>/mnt/e/EFS/Winbin/WSL2/log/cron/`date +\%Y\%m\%d.log` 2>>/mnt/e/EFS/Winbin/WSL2/log/cron/error.log

バックアップ

  • wsl.exe --export Ubuntu-24.04 E:\\20240616-Ubuntu-24.04.tar
Z:\>wsl.exe --export Ubuntu-24.04 E:\<PATH>\20240616-Ubuntu-24.04.tar
エクスポートが進行中です。これには数分かかる場合があります。
この操作を正しく終了しました。

Error code: Wsl/Service/CreateInstance/MountVhd/HCS/E_ACCESSDENIED

参考資料

qiita.com

現象

  • Windows 10を再インストールしたらWSL2のcronが動いていないことが発覚。起動用バッチファイルを動かしても動かない。
  • エラーメッセージを調べてみると、WSL2にディストリビューションが正しく登録されていないことが原因なので、再登録が必要になるらしい。
E:\Bin>wsl -u root -- service cron start
ディスク 'J:\WSL2\Ubuntu-22.04\ext4.vhdx' を WSL2 にアタッチできませんでした: アクセスが拒否されました。
Error code: Wsl/Service/CreateInstance/MountVhd/HCS/E_ACCESSDENIED

E:\Bin>wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-22.04 (既定)

E:\Bin>wsl --unregister Ubuntu-22.04
登録解除。
この操作を正しく終了しました。
  • 登録解除して再登録しようと思ったら、指定されたパスが見つかりません...だと?
C:\Windows\system32>wsl --update
更新プログラムを確認しています。
Linux 用 Windows サブシステムの最新バージョンは既にインストールされています。

C:\Windows\system32>wsl --import-in-place Ubuntsu-22.04 j:\WSL2\Ubuntu-22.04\
指定されたパスが見つかりません。
Error code: Wsl/ERROR_PATH_NOT_FOUND

C:\Windows\system32>dir j:\WSL2\Ubuntu-22.04\
 ドライブ J のボリューム ラベルは TOSHIBA です
 ボリューム シリアル番号は 1A51-5D20 です

 j:\WSL2\Ubuntu-22.04 のディレクトリ

2024/06/16  10:56    <DIR>          .
2024/06/16  10:56    <DIR>          ..
               0 個のファイル                   0 バイト
               2 個のディレクトリ  215,308,496,896 バイトの空き領域
  • 仮想ストレージのext4.vhdxがストレージから無くなってるのですが、どういうことですか!?さすがに想定外すぎる。
  • かなりへたったSSDを使っているとは言え、他のファイルは問題ないので何らかの事故で消えちゃったとしか思えない。
  • 仕方ないのでバックアップから復元と思ったら、このドライブのバックアップ取って無いことが発覚。orz
  • 再インストール手順はメモに残しているので最初からやり直しかと思ったら、あったよバックアップ!
C:\Windows\system32>dir e:\efs\_Backup\WSL2
 ドライブ E のボリューム ラベルがありません。
 ボリューム シリアル番号は 66F8-DFAE です

 e:\efs\_Backup\WSL2 のディレクトリ

2023/07/02  08:24    <DIR>          .
2023/07/02  08:24    <DIR>          ..
2023/07/02  08:24     1,864,970,240 20230702-Ubuntu-22.04.tar
               1 個のファイル       1,864,970,240 バイト
               2 個のディレクトリ  1,733,945,237,504 バイトの空き領域

復旧手順

   --import <ディストリビューション> <インストール先> <ファイル名> [オプション]
       指定された tar ファイルを新しいディストリビューションとしてインポートします。
       stdin の場合はファイル名に - を使用できます。

       オプション:
           --version <バージョン>
               新しいディストリビューションに使用するバージョンを指定します。

           --vhd
               指定されたファイルが tar ファイルではなく .vhdx ファイルであることを指定します。
               この操作により、指定されたインストール先に .vhdx ファイルのコピーが作成されます。
  • wsl.exeのimportオプションを読むと、tarからのインストール先を指定できるらしい。これをJ:\WSL2\Ubuntsu-22.04にすればよさそう。
:\Windows\system32>wsl.exe --import e:\EFS\_Backup\WSL2\20230702-Ubuntu-22.04.tar J:\WSL2\Ubuntu-22.04
Copyright (c) Microsoft Corporation.All rights reserved.
この製品のプライバシー情報については、https://aka.ms/privacy をご覧ください。

使用方法: wsl.exe [引数] [オプション...] [コマンドライン]
  • あれ、何か失敗したっぽい。
  • あ、引数を書く場所が逆だ。あぶねえ。
C:\Windows\system32>wsl.exe --import  J:\WSL2\Ubuntu-22.04 e:\EFS\_Backup\WSL2\20230702-Ubuntu-22.04.tar
Copyright (c) Microsoft Corporation.All rights reserved.
この製品のプライバシー情報については、https://aka.ms/privacy をご覧ください。

使用方法: wsl.exe [引数] [オプション...] [コマンドライン]
C:\Windows\system32>wsl.exe --import Ubuntu-22.04 J:\WSL2\Ubuntu-22.04 e:\EFS\_Backup\WSL2\20230702-Ubuntu-22.04.tar
インポート中です。この処理には数分かかることがあります。
この操作を正しく終了しました。

C:\Windows\system32>dir J:\WSL2\Ubuntu-22.04
 ドライブ J のボリューム ラベルは TOSHIBA です
 ボリューム シリアル番号は 1A51-5D20 です

 J:\WSL2\Ubuntu-22.04 のディレクトリ

2024/06/16  11:31    <DIR>          .
2024/06/16  11:31    <DIR>          ..
2024/06/16  11:31     2,059,403,264 ext4.vhdx
               1 個のファイル       2,059,403,264 バイト
               2 個のディレクトリ  213,249,028,096 バイトの空き領域
  • おお、うまくいったっぽい。後はインストール手順を最初からやり直せばよかろう。
C:\Windows\system32>wsl.exe --update
更新プログラムを確認しています。
Linux 用 Windows サブシステムの最新バージョンは既にインストールされています。

C:\Windows\system32>wsl.exe -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-22.04 (既定)

C:\Windows\system32>wsl.exe -v
WSL バージョン: 2.2.4.0
カーネル バージョン: 5.15.153.1-2
WSLg バージョン: 1.0.61
MSRDC バージョン: 1.2.5326
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26091.1-240325-1447.ge-release
Windows バージョン: 10.0.19045.4529

C:\Windows\system32>wsl.exe -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         2

C:\Windows\system32>dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.3636

イメージのバージョン: 10.0.19045.4529

機能を有効にしています
[==========================100.0%==========================]
操作は正常に完了しました。

C:\Windows\system32>dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.3636

イメージのバージョン: 10.0.19045.4529

機能を有効にしています
[==========================100.0%==========================]
操作は正常に完了しました。

C:\Windows\system32>wsl.exe --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2
 を参照してください
この操作を正しく終了しました。

C:\Windows\system32>wsl.exe --set-version Ubuntu-22.04 2
WSL 2 との主な違いについては、https://aka.ms/wsl2
 を参照してください
変換中です。これには数分かかる場合があります。
ディストリビューションは既に、要求されているバージョンです。
Error code: Wsl/Service/WSL_E_VM_MODE_INVALID_STATE

C:\Windows\system32>wsl.exe -u root -- service cron start

C:\Windows\system32>wsl.exe -u #######
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.153.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


This message is shown once a day. To disable it please create the

.bash_profileが自動実行されない件

  • 原因を探ってみると、ログインシェルがbashになっていないっぽい。
  • echo $SHELLするとbashが返ってくるけど、ターミナルに色付いてないし。
  • 手動でコマンドをたたけば動くところまでは確認したので、一から再インストールした方がよいかな...
  • 気がついたらUbuntu-24.04がリリースされているようなので、こっちで試してみましょうか。

再インストールしたら直った!

  • よく分からない状態になったら、解決策を考えるよりもさっさと再インストールした方が速いという教訓でありました。:-)
  • もしかしてext4.vhdxが消えたのは、wsl --unregister Ubuntu-22.04を実行したからだったりするのか?まさか仮想ストレージを物理消去するコマンドだとは思ってもみませんでした。なんてこったい。orz
  • 消してしまったのは大問題だし、バックアップ取ってなかったのもよくないですが、どのみちおかしなことになっていたのは回避できなかったでしょうから、結果オーライと思うことに使用。

ニコニコ動画(Re:仮) 2007年

www.nicovideo.jp

togetter.com

www.nicovideo.jp

  • あまりに懐かしくて、何年ぶりかでコメントしてしまった!

www.nicovideo.jp

  • 梶浦由紀のメドレーは今でもドライブの定番であります。.hack//Liminalityはいい曲が揃ってる。
  • 我ながら驚きなのは、未だに梶浦語で全部歌えるのだよねえ。

www.nicovideo.jp

  • 今でもマイリストのに残ってるやつ!

www.nicovideo.jp

  • はじまりの動画だ...

www.nicovideo.jp

  • ウッーウッーウマウマ(゚∀゚)の爆心地ってこれなの?

www.nicovideo.jp

  • あれ、ドリフは!?

www.nicovideo.jp

  • みくみくにしてあげる♪

www.nicovideo.jp

  • これ知ったのだいぶ後だったなあ。
  • 甥っ子www

www.nicovideo.jp

  • 愚民の皆さ~ん、こんばんは~!

www.nicovideo.jp

  • 令和になってあの弾幕をもう一度見る日が来ようとは。

www.nicovideo.jp

  • なんでヴォーカルないのかと思ったら、もしかしてオリジナルはメロディーだけだったのか!?

www.nicovideo.jp

  • メッチャ懐かしい。

www.nicovideo.jp

  • MMDじゃないってまじですか!?

www.nicovideo.jp

www.nicovideo.jp

  • メロディーラインはしっかり覚えてましたよ!

www.nicovideo.jp

  • OSTER_projectさんの名曲引き当てましたよ!
  • ミクさんの曲では今でもNo.1だと思う。

www.nicovideo.jp

www.nicovideo.jp

www.nicovideo.jp

  • 中村屋!久しぶりに聞いたら腹痛え。

www.nicovideo.jp

  • ニコニコ動画で初めて視聴した動画だった気がする。アイマスとか知らなかったのでなんだこれ???状態になりつつ、妙な中毒になった記憶が。

www.nicovideo.jp

  • 2007年の大晦日にどはまりした神MAD!今視ても素晴らしい!!

www.nicovideo.jp

  • メッチャ画質いいな!

www.nicovideo.jp

  • sm9一桁台は伊達じゃないな。

www.nicovideo.jp

  • なんか覚えてた。

www.nicovideo.jp

  • やっぱり、動画はコメントをしたりコメントを見たりしながらと言うのがいいなあ。
  • 復旧してくれたらもう一回プレミアム入ってみようかも。

www.nicovideo.jp

  • 2024年だからこそびびるやつ。

最近の京都

  • 最近の京都ってこんな状況になってるのか...
  • コロナ渦でみんな引きこもっていた頃に頑張って行っておくべきでした。

ANKER Soundcore P40i

Soundcore P40iwww.ankerjapan.com

  • と言うわけで、代替機種はこちらに決定しました。
  • しばらく前にアンケート回答で入手した15%offクーポンと、放置して失効しそうになっていたポイントの合わせ技で25%off位で購入できたのでお得なお買いものだったと思います。
  • 先代のA25iは予備として手元に置きつつ、自宅で仕事する&ノイズキャンセリング全開にするとまずい場合に使うことにしましょう。

使用感

  • 届いたのでさっそく使ってみました。
  • イヤーパッドのサイズが絶妙にかみ合いませんが、標準のMサイズをしばらく使ってみましょう。
  • A25iはぴったりはまったのでノイズキャンセリング無かったにも係わらず外音が入ってこない程だったけど、P40iはそこまでフィットしないので何かの拍子で落としそうな怖さがあります。
  • iPhoneとPCから接続して使っていますが、違和感なく使えるし音質も大変よろしい。ちょっと高音が目立つ感じですが、イコライザーでどうにかなるだろうか。
  • 総じて、よい買い物だったと思います。二度とエアダスターは使わないぞ!

ANKER Soundcore A25i

Soundcore A25iwww.ankerjapan.com

  • ちょうど一年前に購入したワイヤレスイヤホンですが、ごみが入ったのを取り除こうとしてエアダスターで掃除したらフィルタが剥がれてしまい、瞬間接着剤で貼り付けたら左右デオとのバランスが狂ってしまいました。さすがにちょっと違和感が拭えないので、代替品に買い換えることにします。orz
  • 移動中にニュースを聞けたらよいかなと思って、当時最新最安値の製品を買ってみましたが特段文句は無かったので残念です。同じものを買い換えてもよいですが、せっかくなので原稿ラインナップから選んでみましょう。
  • 教訓、イヤホンの掃除にエアダスターを使ってはならぬ。

Thinkpadの緊急用リセットホール

support.lenovo.com

  • 電源ボタン長押しなどでリセットできなくてどうしようも無い場合の緊急用リセットホールなるものがあることをいまさらながらに知りました。
  • 以前はバッテリーを物理的に取りはずせばよかったですが、バッテリー内蔵型の場合こういう措置が必要なのですな。