wsl2みたいなやつを自分で作る方法(VirtualBox版)

はじめに

wsl2ありますよね、linux kernel使ってるやつ。

Docker for Windows ももしかしたら聞いたことがあるかもしれません。

これらを使うとvirtualboxが仮想環境の競合で使用不能になります。

wsl2とDocker for Windows はhyper-vを使用していますが、

hyper-v と virtualbox は排他的利用なためこうなっています。

virtualbox でwslっぽいもの作れれば、linuxだしdocker動かせるよねっていう

制約

残念ながら完全にwslを再現はできません。

(wsl1はwindowsのAPI変換なのでこれをlinuxで完全再現できたらwindowsいらない子になっちゃう)

再現できるもの

  • windowsのドライブマウント(samba)
  • linuxのドライブマウント(samba)
  • ターミナルアクセス(ssh)
  • USBの共有(排他的)

再現できないもの

  • localhostの共有
  • linux上でのwinアプリケーション起動(wineはありですか?)

追加される機能

  • スナップショット

環境の構築

インストールイメージの確保

今回はUbuntu Server 18.04.3 LTSを使用します。

こちらからダウンロードします

virtualboxの設定

インストールが完了すると以下の画面になります。

ホストオンリーアダプターの作成

windowsとlinuxが通信するブリッジのようなものを作成します。

ホストネットワークマネージャを選択します。

作成を選択します

作成されると以下のような表示になります

IPアドレス範囲が192.168.136.1/24 を覚えていて下さい。

仮想マシンの作成

この画面の新規を選択します

以下の画面が表示(エキスパート)されるので、仮想マシンの名前、メモリを設定します。

メモリは後で変更ができます。

仮想マシンの記録容量を設定します。

linuxは新規インストール時に8GBほど使用します。

32GBあれば十分だと思います。

これは後で変更するとめんどくさいので変更しないつもりで設定して下さい。

作成できると仮想マシンが追加されています。

仮想マシンの設定

作成された仮想マシンを右クリックして、設定を選びます。

システム→プロセッサーを選びます。

シングルコアだとlinuxのインストールに時間がかかるので増やします。

PAE/NX も有効にしておきましょう

ストレージを開きます

コントローラ:IDEにぶら下がっているものが光学ドライブです。

ここにubuntuのインストールイメージを読み込ませます。

イメージが選択できると以下のように認識されます。

ネットワーク→アダプター2を開きます

  • ネットワークアダプターを有効
  • ホストオンリーアダプター
  • おそらく一つしかない名前を選択

をすると以下のようになります

ここまでできたらokでダイアログを閉じます。

linuxのインストール

起動をクリックします

新しいウインドウに次のような表示がされます。

はい、linuxのインストールを行って下さい。

以下はインストールの風景です

ネットワーク設定画面が出てきました。

インストール完了後にやろうと思っていましたが、ここでネットワークの設定を行っておきます。

アドレスの振られていないアダプターを選択します

ipv4を編集します

192.168.136.1/24を 192.168.136.0/24で入力

IPアドレスを 192.168.136.2とします

設定ができるとIPアドレスを振ることができます

この時点でwindowsからlinuxにpingを通せるとネットワークの設定ができています。

sshサーバーをインストールします。

スペースで選択ができます。

この時点でサーバーアプリケーション入れられるとは・・・

これでインストールが終わりました。

インストールイメージをアンマウントしておきます。

接続してみる

192.168.136.2にsshで接続することができます。

wslのようなショートカットを作成

このままだとsshで毎回コマンドを実行しなければいけません。

めんどくさいのでrloginでショートカットを作成します

以下のように接続情報を記録させます。

ショートカット作成を選びます

するとrloginのあるところに、ショートカットが作成されます

今度からはこれを実行するだけでコンソールにアクセスできます。

仮想マシンの自動起動

このままでは毎回virtualboxを起動しなければいけません

また、仮想マシンをheadlessで起動しないと画面が邪魔なのでこれを行います。

スタートアップのフォルダを開きます。win+rで以下のディレクトリを指定すると開けます。

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

拡張子がbatのファイルを作成します。

batファイルに以下のコマンドを保存します。

 "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "ubuntu wsl MODOKI" --type headless

samba設定

以下を参考にして下さい。

おすすめのファイル転送

rloginにはSCPファイル転送機能があります。