効率爆上げ!WSLで簡単にOSイメージを複製する方法

WSL用の作業イメージを作ってガシガシテストしたいなと思ったことはないですか?

自分は普段はDockerを使用している事が多いのですが、Xっぽいアプリのある作業になると現状ではWSL版のUbuntuイメージのほうが作業しやすかったりします。(例えばEclipseのインストールが必要だったり🥲)ただ、WSLでは同じOSのイメージのインストールではできないようで、といっても古いバージョンを改めてつくるというのも変な感じです。そこで、現状あるイメージのコピーを作成する方法を自分の為にまとめておきます。

WSLのOSイメージの複製方法

今回はインストール済のWSLのOSをコピーする方法になります。サンプルに使用するのはWSL版Ubuntu24.04 LTSです。

作業手順は以下になります。

  1. wsl --exportを使用してOSイメージを出力(tarファイルの作成)
  2. wsl --importを使用して、先程作成したOSイメージを取り込む
  3. wsl --distributionを使用して作成したOSイメージを起動する
  4. (作業イメージが不要になったら)wsl --unregisterでOSイメージごと削除する

という順に作業を行います。

初期状態の確認

作業を行う前にまずターミナル(cmdpowershellどちらでもいいと思いますが、個人的にはpowershellの方がおすすめ)を開いてwsl -l -vを実行して確認します。

PS> wsl -l -v

現状ではWSLのデフォルトのディストリビューションUbuntu24.04LTSになっています。今回はこれを流用して新しいイメージを作成します。

wsl --exportを使用してOSイメージを出力

ではUbuntu24.04 LTSに対して wsl --exportを使用してtarファイルの作成を行います。exportコマンドはサブオプションとして直接ディスクイメージを作成する--vhdもありますが、デフォルトのtarファイルのほうが使いやすそうです。

まず、WSLで作成するイメージの置き場となるフォルダを作成しておきます。わかりやすくするためにCドライブのルートにwsl_imagesフォルダを作成し、その下に今回格納するubuntu_javaフォルダを作成します。作成後はフォルダに移動しておきます。

PS> cd \
PS> mkdir .\wsl_images
PS> mkdir .\wsl_images\ubuntu_java
PS> cd .\wsl_images\ubuntu_java

続いてwsl --exportを使用してOSイメージを出力します。今回は新しく作ったイメージにJavaのインストールするのでエクスポート名をUbuntu22.04-Java.tarとしました。

実行の一般系は以下の様になります。

wsl --export 【対象とするOSイメージ】【tarファイル】

PS> wsl --export Ubuntu-22.04 Ubuntu22.04-Java.tar

実行するとカレントフォルダにファイルが生成されます。

wsl --importを使用して、先程作成したOSイメージを取り込む

tarファイルができたら、wsl --importを実行してWSLに取り込みます。 実行の一般系は以下の様になります。

wsl --import 【作業イメージ名】 【イメージの保存フォルダ】【tarファイル】

PS> wsl --import Ubuntu22.04-Java C:\wsl_images\ubuntu_java\ .\Ubuntu22.04-Java.tar

実行が成功するとフォルダにext4.vhdxが生成されます。

wsl -l -vコマンドでも認識されていることが確認できるほか

エクスプローラーのナビゲーション表示のLinuxをみると作成したインポートしたイメージが追加されています。

wsl --distributionを使用して作成したOSイメージを起動する

ここまできたら後は作成したイメージをwsl --distributionで起動します。

実行の一般系は以下の様になります。

wsl --distribution 【作業イメージ名】 または wsl -d 【作業イメージ名】

wsl -d Ubuntu22.04-Java

これで新しく作成したイメージでの作業が実行できるようになりました。

(作業イメージが不要になったら)wsl --unregisterでOSイメージごと削除する

作業後にもし不要となった場合にはwsl --unregisterを実行することでOSイメージの削除とともにWSLからの登録も削除されます。

実行の一般系は以下の様になります。

wsl --unregister【作業イメージ名】

PS> wsl --unregister Ubuntu22.04-Java

tarファイルや作成フォルダに関しては削除されないので、必要があれば削除してください。

おわりに

WSLの既存イメージをコピーして作業用のイメージ作成しました。これで失敗を恐れずガシガシ設定をいじることができるかなと思います。

また、今回の過程で作成したtarファイルはバックアップファイルとしても使用できるので助かりますね。

【メモ】UbuntuにNVIDIA Container Toolkitをインストールする

GPUを持つUbuntuでDocker経由でCUDAを使用する場合に必要となるNVIDIA Container Toolkitをインストールします。

使用したUbuntuのバージョンはUbuntu22.04LTS。下記リンクを参照しインストールを行う。

docs.nvidia.com

$ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg   && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list |     sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' |     sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

$ sudo apt-get update

$ sudo apt-get install -y nvidia-container-toolkit

# 念の為dockerを再起動
$ sudo systemctl restart docker

インストール後の動作確認は、Ubuntu 側のnvidia-smiコマンドの結果と以下のリンクからバージョンとイメージの確認し、

https://hub.docker.com/r/nvidia/cuda/tags?page=1

今回の例ではバージョンが12.5で、処理系がUbuntu22.04なのでnvidia/cuda:12.5.0-base-ubuntu22.04のコンテナイメージを使用して、以下のように実行し、コンテナ内でnvidia-smiコマンドが実行されるのを確認する。

$ docker run  --rm --gpus all nvidia/cuda:12.5.0-base-ubuntu22.04 nvidia-smi

参考

docs.nvidia.com

https://hub.docker.com/r/nvidia/cuda/tags?page=1

【メモ】UbuntuにVisualStudioCodeをインストールする

UbuntuにVisualStudioCodeをインストール

UbuntuのバージョンはUbuntu22.04LTS。 debパッケージをダウンロードして、dpkgコマンドでインストールする方法もありますが、 今回はaptコマンドでインストールしています。

Ubuntu22.04LTSにVisualStudioCodeをインストールする

参考

code.visualstudio.com

【メモ】UbuntuにDockerをインストールする

UbuntuにDockerをインストールするメモ

今回のバージョンはUbuntu24.04LTSにDockerをインストールしています。 以下のスクリプトでインストールまで可能。インストール後は再起動をしたほうが楽です。

Ubuntu22.04LTSにDockerをクリーンインストールする

参考

docs.docker.com

初めてのIBM Db2コンテナ作成体験談!Dockerで簡単データベース構築

先日、ネットをみていたところ下記のようなイベントがあり、興味があったのですが仕事がごたついていたときだったので参加できず、資料で我慢するかな~と思っていたのですが、

ibm-developer.connpass.com

資料を見るとあーDb2のライセンスいるのかってことでソっと閉じ…できません😎ということで、今回は自分も初めて使用するIBM Db2Dockerコンテナを使用してみようと思います。今回使用するのではDb2 Community Edition for Dockerになります。Community Editionはビジネスでは使用できないのであくまでも勉強用ということをお忘れなく。

Db2 Community Edition Dockerのイメージには、以下の制限があります。 * メモリー制限: 16GB * コア制限: 4コア

今回は以下の情報を参考にWindows上のDocker Desktopを使用しています。(Docker Desktopも個人ユーザ向けということで使用していきます)

www.ibm.com

以下のリンクが詳しいです。アクセスすると日本語訳にしてくれます(便利🤩)

www.ibm.com

続きを読む
/* -----codeの行番号----- */