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

前回までは上海のMi Storeで購入した製品の紹介をしてきました。

今回からは話題を変えて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以降で利用可能です。

ビルド番号は「設定」→「システム」→「バージョン情報」で確認できます。

build

この数値が「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が有効になっているかどうかを確認しましょう。

管理者権限で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回入力する必要があります。

ユーザの作成

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

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

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

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

となります。

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

ユーザの作成完了

環境の確認

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

まずはDebian GNU/Linuxとしてのバージョンです。これは9.3でした。

$ cat /etc/debian_version
9.3

Linuxカーネルは4.4.0でした。

$ cat /proc/version
Linux version 4.4.0-43-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #1-Microsoft Wed Dec 31 14:42:53 PST 2014

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

$ free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        6.9G        8.9G         17M        223M        9.0G
Swap:          8.0G         68M        7.9G

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

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          1.9T  1.6T  304G  84% /
none            1.9T  1.6T  304G  84% /dev
none            1.9T  1.6T  304G  84% /run
none            1.9T  1.6T  304G  84% /run/lock
none            1.9T  1.6T  304G  84% /run/shm
none            1.9T  1.6T  304G  84% /run/user
C:              1.9T  1.6T  304G  84% /mnt/c
D:              233G  159G   75G  68% /mnt/d

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環境を整備していきます。