DebianをWindows10上で動かす その1: 準備とインストール

2019/04/13 更新

Windows10 バージョン1809 (October 2018 Update)で再インストールしたので、それに合わせて記事を見直しました。

前回までは中国でのSIMカードの話題を紹介をしてきました。

今回からは話題を変えてWindowsとDebian GNU/Linuxの話題です。

Debian GNU/Linuxについて

Debian GNU/LinuxはLinuxをカーネルとするオープンソースのオペレーティングシステムです。

というより老舗のLinuxのディストリビューションという方がわかりやすいかもしれません。

公式サイトは下記になります。

私はLinuxを使い始めた頃にたまたまDebianを選択し、その縁でLinuxを使い続けてきました。もう15年になるでしょうか。

DebianはLinuxのディストリビューションの一つで、5年以上前から愛用しています。 Debianの特徴は強力なパッケージングシステムで、 ディストリビューション全体のアップグレードも再インストール無しに行うことが出来ます。 実際、私は再インストールしたことが一度もありません。 以前は、Redhad, Turb...

このブログ用のサーバでもDebianを利用しています。

今回はお名前.com VPSを初期化してDebian 7(64bit)をインストールしなおします。 インストールはGUIでも行えますし、ネットワークのスピードも速いのであっという間に終わります。パーティションの設定をもっと簡素にすれば数分で終わってしまうかもしれません。

Windows Subsystem for Linux

Windows Subsystem for LinuxはLinuxアプリケーション(ELFバイナリ)をWindows 10上で動かすための互換レイヤーです。

イメージとしてはWindows 10がLinuxカーネルのふりをするためのソフトウェアという感じです。

これまでWindows上でLinuxにちかい環境をそろえようとすると、VirtualBoxのような仮想マシンを使うか、Cygwinという互換環境を使う必要がありました。

しかし、仮想マシンはRAM等のリソースを多く消費しますし、Cygwinはバイナリ互換性がないなど一長一短という印象です。

以前はCooperative Linux (coLinux)というLinux上で動く軽量な環境があったのですが、開発が停止してしまったようです。

Cooperative Linux(通称: coLinux)は、 Windows 2000/XP上で動作するLinuxカーネルです。 もちろん、オープンソース・フリーソフトです。従来、1台のPCでWidnowsとLinuxを同時に使用するには、 VMWare Playerや VirtualBox, Bochs, Q...

Windows Subsystem for Linuxは、MicrosoftがWindowsとLinuxの相互運用性を高めるために開発したシステムで第三の選択肢(むしろ第一の選択肢)となることが期待できます。

この機能は2017年からWindowsの正式機能となり(有効化する設定が必要ですが)、利用できるディストリビューションとしてUbuntu・Suse等がありました。

UbuntuはDebianベースなのでUbuntuをインストールしても良かったのですが、最近DebianもサポートされたのでDebianをインストールしてみることにしました。

ちょうどWindows上でプログラミング環境を整備したかったの、Windows Subsystem for Linuxが使えるかどうか期待したいところです。

インストールまでの準備

Windows Subsystem for Linuxを使うには少し手順が必要です。

なお、公式の案内は下記になりますが英語です。

Installation instructions for the Windows Subsystem for Linux on Windows 10.

Windowsのバージョンの確認

Windows Subsystem for LinuxはWindows 10のBuild 16215以降で利用可能です。

ビルド番号は、Windwsキー+Rを押して「winver」を実行すると確認できます。

Windowsのバージョン情報

この数値が「16215」以上であることを確認しましょう。普通にアップデートしていればこの条件は満たしているはずです。

それ以下の場合はWindows UpdateをしてOSを更新しましょう。

Windows Subsystem for Linuxの有効化

Windows Subsystem for LinuxはWindowsの正式機能となりましたが、手動で有効にする必要があります。

まずWindowアイコン(スタートメニュー)を右クリックして「アプリと機能」を選択します。

スタートメニュー

アプリと機能の画面が開いたら、アプリ一覧の部分をずっと下にスクロールしていくと関連設定のところに「プログラムと機能」があります。

これを選択します。

アプリと機能

これでプログラムと機能画面が開くので「Windowsの機能の有効化または無効化」を選択します。

プログラムと機能

これで「Windowsの機能」の画面が開くので「Windows Subsystem for Linux」のチェックボックスをONにします。

Windowsの機能

OKを選択すると、ちょっとした処理が走り、下記のような画面になったら再起動すれば準備完了です。

変更の完了

GUIでなくてもPowerShellを使うと簡単に設定することができます。

管理者権限でPowerShellを開き、下記を実行してから再起動するとGUIでWindows Subsystem for Linuxを有効にしたのと同じになります。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

実はこちらが公式の方法ですので、コマンドライン(PowerShell)が苦手でない人は、この方法でWindows Subsystem for Linuxを有効にすることをお勧めします。

確認

再起動したら念のためWindows Subsystem for Linuxが有効になっているかどうかを確認しましょう。

Windowsアイコンを右クリックして「Windows PowerShell (管理者権限)」を選択して開いた画面で、下記を実行します。

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

これで次のようにStateが「Enabled」と表示されれば問題ありません。

WSL有効化の確認

Debian GNU/Linuxのインストール

準備で問題なければインストールしていきます。

Microsoft Storeでの検索

あとはMicrosoft Storeでディストリビューションを見つけるだけです。

これはMicrosoft Storeアプリを立ち上げて「Linux」で検索すると候補が表示されます。

Microsoft Store

これで好きなディストリビューションを選べばインストールできることになります。

インストール

今回はDebian GNU/LinuxをインストールするのでDebian GNU/Linuxを選択して表示された画面で「入手」を選択します。

Debian GNU/Linux

インストールが完了すると「入手」が「起動」に変わるのでこれを選択しましょう。

これで「Debian GNU/Linux」というタイトルのウィンドウが起動します。初回起動時はインストール作業があるので数分待ちます。

Debianのインストール中

インストール作業が終わるこのDebian GNU/Linux用のユーザ作成を要求されます。

ここではアルファベットからなるユーザ名とパスワードを入力します。パスワードは確認を含めて2回入力する必要があります。

SnapCrab_Debian GNULinux_2019-4-10_2-39-4_No-00

このユーザ名はあくまでもこのLinux環境用のユーザ名となります。

Windows Subsustem for Linuxとして別のLinux環境を構築した場合は、また新たなユーザ名を作成する必要があります。

なお、ここで作成したユーザは

  • デフォルトのユーザ ・・・ スタートメニューからLinux環境を起動したときに自動的にログインするユーザ
  • Linux環境の管理者 ・・・ sudoグループのメンバー

となります。

ユーザの作成に成功すると次のようにbashのプロンプトとなります。

ユーザの作成完了

環境の確認

これでbashが使えるようになったのでちょっと試してみました。

まずはDebian GNU/Linuxとしてのバージョンです。これは9.7でした。半年前が9.4だったので更新されています。

$ cat /etc/debian_version
9.7

Linuxカーネルは4.4.0でした。半年前と同じバージョンですがビルド番号が上がっています。またビルド日も2019/3/6と最近になっています。

$ cat /proc/version
Linux version 4.4.0-17763-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #379-Microsoft Wed Mar 06 19:16:00 PST 2019

メモリはWindows10のメモリが全部見えるようです。この辺は専用のメモリを確保する仮想マシンと違うところです。

$ free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        3.6G         12G         17M        223M         12G
Swap:           48G          0B         48G

半年前は起動直後で7GBぐらいメモリを消費していたのですが、今回は3.6GBになっています。最適化が進んだのでしょうか。また、スワップファイルがかなり大きめになっています。

HDDを確認すると、Cドライブ・Dドライブは/mntの下にマウントされてます。ただルートディレクトリの空き容量などを見ると、WindowsのCドライブがそのまま見えているようです。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          446G   72G  375G  17% /
none            446G   72G  375G  17% /dev
none            446G   72G  375G  17% /run
none            446G   72G  375G  17% /run/lock
none            446G   72G  375G  17% /run/shm
none            446G   72G  375G  17% /run/user
C:              446G   72G  375G  17% /mnt/c
D:              1.9T  1.8T   82G  96% /mnt/d
E:              233G  113G  121G  49% /mnt/e

CPUを確認して見るとこちらもWindows10のCPUがそのまま見えています。

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 16
model           : 10
model name      : AMD Phenom(tm) II X6 1065T Processor
stepping        : 0
microcode       : 0xffffffff
cpu MHz         : 2900.000
cache size      : 512 KB
physical id     : 0
siblings        : 6
core id         : 0
cpu cores       : 6
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 16
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow pni monitor cx16 popcnt
bogomips        : 5800.00
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
以下省略 

こうして見るとWindows Subsystem for LinuxはWindowsが動いているリソース(CPU・HDD・メモリ)を直接利用してることがわかります。

このことから仮想マシンを使うよりオーバヘッドがなく、高速に動くことが期待できます。

まとめ

今回はWindows Subsystem for Linuxを使ってWindows10にDebina GNU/Linuxをインストールしてみました。

さすがに正式版の機能となっているだけあってインストールは簡単です。面倒なのはWindows Subsystem for Linuxを有効化するところだけでしょう。

次回は今回インストールしたDebian環境を整備していきます。