WSLで同一のLinuxディストリビューションを複数インストールする方法

Table of Contents

WSLにUbuntu 16.04を複数インストールしたときの備忘録です.WSLでUbuntu16.04の複数の異なる環境を持っておきたいときに便利です.ChocolateyとLxRunOfflineをインストールします.

Chocolateyのインストール

ChocolateyはWindowsでパッケージを管理するソフトで,Ubuntuのapt,CentOSのyumのようなものです. 管理者権限を持つコマンドプロンプトを立ち上げます.こちらのサイトでInstall with cmd.exeRun the following command:の右にあるマークをクリックして,コマンドテキストをコピーし,コマンドプロンプトにペーストし,実行します.

LxRunOfflineのインストール

管理者権限を持つコマンドプロンプトでLxRunOfflineをインストールします.

choco install lxrunoffline

コマンドプロンプトを再起動します.

Linuxパッケージのインストール

Linuxパッケージのダウンロード

インストールしたいLinuxのパッケージをダウンロードします.例えば,MicrosoftのUbuntu 16.04のダウンロードは次のように,の部分を,こちらを参考にして設定します.

# https://lxrunoffline.apphb.com/download//
https://lxrunoffline.apphb.com/download/UbuntuFromMS/16

なお,MicrosoftのUbuntu 18.04はまだ用意されていないようです.

パッケージのインストール

パッケージがC:\Users\username\Downloadsにダウンロードされたとします.次のようにインストールします.なお,Ignoring an unsupported fileといったWarningが多数出ましたが,無視しました.

# lxrunoffline install -n <ディストリビューション名> -d <インストール先のフォルダ> -f <ダウンロードしたパッケージのPATH>
lxrunoffline install -n ubuntu1604_1 -d C:\WSL\ubuntu1604 -f C:\Users\username\Downloads.04.2-server-cloudimg-amd64-root.tar.gz

ちなみにuninstallするには以下のようにします.ディストリビューション名は仮にubuntu1604としておきます.

# lxrunoffline uninstall -n <ディストリビューション名>
lxrunoffline uninstall -n ubuntu1604

Linuxの実行と初期設定

インストールしたディストリビューションを実行します.

# lxrunoffline run -n <ディストリビューション名>
lxrunoffline run -n ubuntu1604

現在のコマンドプロンプトがLinuxのshellに変化し,rootでloginした状態になります.以下の通り,初期設定をしておきます.

apt update
apt upgrade
apt install sudo vim-tiny
adduser <ユーザ名>
gpasswd -a <ユーザ名> sudo

次にloginユーザをrootから変更します.

login <ユーザ名>
id

このユーザのuidを覚えておきます.exitを2回実行してWSLから抜けてコマンドプロンプトに戻り,以下の通りuidに対応したユーザでloginします.

lxrunoffline su -n ubuntu1604 -v <uid> 
lxrunoffline run -n ubuntu1604

最後にデスクトップに以下の内容を持つショートカットを作っておきます.

lxrunoffline run -n ubuntu1604

以上の手続きで,<ディストリビューション名>を変えて,複数インストールすれば,同一ディストリビューションの複数のインスタンスを同時にインストールできるようになります.

参考資料

  1. LxRunOffline url
  2. stackoverflow url
  3. WSL+LxRunOfflineでシステムドライブ外に環境構築,Qiita. url

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください