利用用途
リモートサーバーでの作業がメインだがたまにローカルで作業をした方が便利な時があり、そのための環境
背景
windows7環境からwindows10環境に移行した
windows7環境の時はvirtualbox+vagrantでローカルにubuntu環境を構築していた
windows10環境でもローカルにubuntu環境を構築したい
今回やること
- WSL(Windows Subsystem for Linux)を使ってubuntu環境を構築
- windows環境からファイルを操作できるようにホームディレクトリを変更する
- SSHで接続できるように環境を構築する
環境変更に伴う pros and cons
pros
- 環境構築がvirtualboxより楽
- windowsを起動するとubuntuも既に起動している
- SSH接続するときにわざわざVMを起動させなくてよい
cons
- 同じ環境を複数構築するのは大変そう(まだちゃんと調べられていない)
- バージョンやOSが違うならそんなに手間はなさそう
環境構築手順
1. WSL(Windows Subsystem for Linux)を使ってubuntu環境を構築
手順①「スタートボタン」を右クリック
手順②「アプリと機能」をクリック
手順③「プログラムと機能」をクリック
手順④「Windowsの機能の有効化または無効化」をクリック
手順⑤「Windows Subsystem for Linux」をクリック
手順⑥「microsoft store」を起動
手順⑦「ubuntu」を検索
手順⑧ 任意のバージョンを選択してインストール
手順⑨ 初回起動で「ユーザ名」と「パスワード」を入力する
2. windows環境からファイルを操作できるようにホームディレクトリを変更する
なぜ必要?
windows環境からubuntu環境にアクセスする方法はあるが、windows環境からubuntu環境配下で何か変更してしまうとubuntu環境が壊れてしまう。
ubuntu環境にはwindows環境の固定ドライブがマウントされている。
「C:」ドライブなら「/mnt/c」でubuntu環境からwindows環境へアクセスできる。
そこで、ubuntu環境での作業をwindows環境下で行うことでwindows環境から操作できるようにする
手順
※例:windowsのDocumentsに「ubuntu」というディレクトリを作成し、そこを新ホームディレクトリとする
手順① ubuntuを起動して、デフォルトのホームディレクトリにあるファイルをwindows環境の新ホームディレクトリに移動する
$ cd
$ cp -p .* /mnt/c/Users/***/Documents/ubuntu/
手順② 設定ファイルを開く
sudo vim /etc/passwd
手順③ 記載内容の変更
※「username」は初回起動時に設定したユーザ名
※変更前
「username」:x:1000:1000:,,,:/home/「username」:/bin/bash
※変更後
「username」:x:1000:1000:,,,:/mnt/c/Users/***/Documents/ubuntu:/bin/bash
手順④ ubuntuを再起動
3. SSHで接続できるように環境を構築する
なぜ必要?
正直なくても問題ないが、リモートサーバーに接続しているターミナルエミュレーターと同様に操作できるようにするため
手順
①ubuntu環境でopenssh-serverを立ち上げる
2018/07/16時点では既にインストールされているopenssh-serverをそのまま使うとエラーになるので、一度アンインストールする
sudo apt-get remove --purge openssh-server
sudo apt-get update --fix-missing
sudo apt-get install openssh-server
sudo service ssh start
②windows起動時にssh serverを自動起動するように設定する
以下ファイルを作成する。
※「password」は初回起動時に設定したパスワード
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe -c 'echo 「password」 | sudo -S /etc/init.d/ssh start'",0
このファイルをwindowsのスタートアップフォルダに置く。
※「username」は初回起動時に設定したユーザ名
C:\Users\「username」\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup