【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【200ヶ国以上に対応】グローバル eSIM「beSIM(ビーシム)」

【200ヶ国以上に対応】グローバル eSIM「beSIM(ビーシム)」

【中国法人に対応】中国クラウド / サーバー構築・運用保守

【中国法人に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

評価版のBash on Ubuntu on Windowsを試してみる

こんにちは。
開発チームのワイルド担当、まんだいです。

今夏最大のトピックは、Windows10でのBashサポートだと個人的には思っているのですが皆さんはいかがでしょうか。

Build 2016で発表されて以来、大した情報もなくてどうなんだろうと思っていたら、Windows10のプレビュー版をインストールすることで開発中のBashが試せるということで早速試してみましたのでレポートしたいと思います。


 

プレビュー版がインストールされる環境に設定する

通常のWindows10環境では正式版がインストールされるまで待つことになるので
LAVIE Hybrid ZEROでいち早くBash on Ubuntu on Windowsを体験する | デジタル生活部の記事を参考に、Windows Insider Previewプログラムへ参加手続きを行います。
細かい設定等はリンク先の情報を全面的に信用して設定するとうまくいきました。

実際最新版の開発者プレビューが案内されるまで数日掛かると書いてありましたが
なんと次の日最新版の開発者プレビューへのアップデート通知が来たのでびっくりしました。

幾度か再起動を繰り返すと、無事インストールが完了しました。

insider_preview_version

 

Please enter a UNIX user nameで悩む

いざbashを起動するぜということで、Windowsキーを押して「bash」と入力すると、「Bash on Ubuntu on Windows」という文字が!
起動すると、コマンドプロンプトとなんら変わらないコンソール画面が表示されます。

ただ、日本語環境は中途半端で、文字化けしまくっていて何が書いてあるのか分からず、「Please enter a UNIX user name」という表記で悩みました。

bash_01

結論から言うと

rootと打つとノンパスでログインできる!

ということでした。まぁ、プレビュー版ですしね。
細かいことは気にしないで行きましょう。

 

windowsのCドライブは/mnt/c以下にマウントされている

なんだかディレクトリ構成がキモチワルいですね。
/mnt/cがCドライブだったら、/ は一体どの位置にあるんだ?という疑問は尤もだとおもいますが、プレビュー版ですしね。

rootの割にはDocuments and Settings以下にはアクセスできないスーパーユーザーぶり(Permission denied)です。

 

ファイル名が日本語のものはlsすると途中で切れる

全般的にですが、全般的にマルチバイト文字のサポートは未実装のようです。
dfコマンドも上手く動いておらず、確認できません。
カーネルはLinuxではないので仕方ないのでしょうか。
この辺りも色々見えるようになると、かなり便利ですね。

 

psを打つとほとんどプロセスが動いていない

psコマンドにタスクマネージャのような機能を期待してはいけません。
Bash環境とWindows環境は完全に別で管理されているようです。

ps_aux

 

実際どこまでできるのか

それでは、今の段階でどの程度まで使えるものなのか、幾つかソフトウェアをインストールしてみました。

 

ssh

リモートホストへのアクセス可能。鍵を使った認証も問題なく動作しました。

 

sed

デフォルトでインストール済み。問題なく動作します。

 

awk

デフォルトでインストール済み。問題なく動作します。

 

vi

デフォルトでインストール済み。問題なく動作します。

 

top

デフォルトでインストール済み。動作しますが、PID以外の情報は取れていません。

bash_2

 

grep

デフォルトでインストール済み。問題なく動作します。

 

wget

デフォルトでインストール済み。問題なく動作します。

 

curl

デフォルトでインストール済み。問題なく動作します。
FTPなどのHTTP以外の通信は未テストなので要注意。

 

ping

デフォルトでインストール済み。
「ping icmp open socket: Socket type not supported」という表示が出て、pingを送信する事はできない。

ping

 

netstat

デフォルトでインストール済み。問題なく動作します。
ただし、ソケット通信はできないのが原因なのか、何も表示されず。

 

シェルスクリプト

bash、dashが用意されています。
ちなみにubuntuからの移植なので、/bin/shは/bin/dashへのシンボリックリンクになっています。(この辺りはUbuntuと同じ)

 

apache

インストールはできたけど動かず。
ソケットがうまく作れない的なエラーで起動できず。

apache2_start

 

PHP

apt-get install php5

 
でインストール可能。
php5-curlなどもapt-getからインストール可能なので、コマンドラインツールなら問題なく動作しそう

 

コンソールからメールを配信してみる

mailコマンドがインストールされていないので、以下のコマンドでインストール。

apt-get install mailutils

 
ただ、mailコマンドは上手く動かず。

 

mysql

以下のコマンドでインストール可能。

apt-get install mysql-server

 
動く!(それも普通に)

ただし、以下のエラーが表示される。

/etc/init.d/mysql start
df: Warning: cannot read table of mounted file systems: No such file or directory
/lib/lsb/init-functions.d/50-ubuntu-logging: line 5:    46 Aborted                 (core dumped) plymouth --ping > /dev/null 2>&1
 * Starting MySQL database server mysqld                                                                                /lib/lsb/init-functions.d/50-ubuntu-logging: line 5:   485 Aborted                 (core dumped) plymouth --ping > /dev/null 2>&1
                                                                                                                 [ OK ]
 * Checking for tables which need an upgrade, are corrupt or were not closed cleanly.

mysql_start

 

まとめ

curlやwgetが普通に動くのにはびっくりですが、apt-getでソフトウェアをインストールできるのを考えると、TCP/IP通信はできるレベルなのかと。
ただ、pingコマンドが使えないのは驚きでした。
普段何気なく使っているコマンドが、どのように動いているかわかっていないのがバレましたね。

MySQLが普通に動いているのには衝撃を受けました。
ただ、MySQL serverの起動時にエラーが出ているので完全な動作は期待できないかも知れません。
stop → startした後もデータは残っていましたし、PCの電源を落としてもデータは残っていたので一応は動いているようです。

この調子だと、コンソールからPHPとMySQLを連携させたツールなどは動くような気もしています。
ただ、my.cnfに書かれているソケットファイルは生成できていないし、netstatを見ても3306ポートを掴んでいる形跡はありません。
エラーログもバンバン出ているので、動作はかなり不安定なんだろうというのは推測できます。

 

今できそうなこと

簡単なバッチ処理の確認? いやいや、まだテストできる環境でもありません。SSHがcygwinやgit bash不要でできるようになったくらいでしょうか。
MSP的な立ち位置からbash on Ubuntu on Windowsを使うのは、監視用途で確認作業がLinuxと同じようにできるくらいなのかと思いますが、それすらできていない現状では、評価は難しいですが、大きな一歩だと思います。
うまく動くようになれば、Windowsの監視方法をガラリと変えることになりそうです。

 
以上です。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
268
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

萬代陽一

ソーシャルゲームのウェブ API などの開発がメイン業務ですが、ありがたいことにマーケティングなどいろんな仕事をさせてもらえています。
なおビヨンド内での私の肖像権は CC0 扱いになっています。