rcmdnk's blog
Last update

20160605_bashonubuntuonwindows_200_200

ちょっと前にWindowsがBashをサポートする と言う発表をして、今年の夏頃からサポートしたバージョンがWindows 10のアップデートで配布される 予定です。

現時点でも Windows Insider Program に参加することで現在進んでいるプロジェクトを先取りして使うことが出来、 その中にこのBashのサポートも既に含まれているので ちょっと使ってみました。

途中、インストールで躓いたところとかもあったのでその辺もメモしておきます。

Windows 10 Anniversary Update

追記: 2016/08/04

8月2日にAnniversary Updateと呼ばれる大型アップデートが提供開始され その中にBash on Ubuntu on Windowsも含まれています。

従って以下のWindows Insider Programなどへの参加はもう不要で、 開発者向け機能を使う以降の設定で使えるようになります。

追記ここまで

Run native Bash on Ubuntu on Windows

Bash on Ubuntu on Windows MSDN

以下の14316というビルドでBashをネイティブにWindows上で走らせる事が出来るようになっています。

Announcing Windows 10 Insider Preview Build 14316 Windows Experience Blog

このビルドを手に入れるためにはまず、 Windows Insider Program に参加する必要があります。

また、今回行っているのは64 bit版のWindows 10 Home Editionです。

Windows Insider Programへの参加

設定更新とセキュリティWindows Update から詳細オプションへ行き、Insider Previewビルドの入手というところで 開始するを押すと、Windows Insider Programにご参加くださいと言ったダイアログが出るので、 そこで登録を押しても上のページに行けます。

20160605_insiderpreviewstart.jpg

20160605_insiderpreviewjoin.jpg

また、アカウントを持ってるけどWindowsに登録してなかったり別のアカウントを使ってる様な場合、 ここでアカウントを切り替えたりすることも出来ます。

大概の場合、Windows 10を使っている場合はMicrosoftアカウントを登録してあると思うので そのアカウントでWebページでもログインし、Insider Programに参加します。

Webで参加登録後、先ほどのInsider Previewビルドの入手のところで 再び開始するを押すと実際に入手する作業に入れます。

ここでちょっと注意が必要なのは、Insider Previewビルドの入手を開始する前に、 プライバシーフィードバックの間隔 の設定をいじっている場合、フィードバックを求められる頻度及び デバイスのデータをMicrosoftに送信するをそれぞれデフォルトの 自動(推奨)完全(推奨)に戻しておく必要があります。

これを戻しておかないと、上の開始ボタンを押しても、 既にInsider Programに参加したアカウントを選んでいても延々と Windows Insider Programにご参加くださいのダイアログが出てきてしまいます。

Insider Programは正式配布前のビルドを試用してフィードバックをもらおう、というものなので 当然フィードバックありきの配布なわけで、ここをオフにしてたら使えない、というわけです。

20160605_feedback.jpg

上の絵はInsider Program開始後ですが、開始後はこれらのオプションが変更できない様になっています。

ここで結構悩んで途中で辞めそうになった…

Windows 10 Pro Insider Preview 再インストール - マイクロソフト コミュニティ

Insider Previewの入手、インストール

とういうことで、無事開始することが出来たら次はビルドの入手の設定をしておきます。

先ほどのWindows Update詳細オプションの所に 今度はInsiderのレベルを選んでください。設定を変更した後ではビルドの受け取りにしばらく時間がかかります。という項目があり、下にバーがあるので 一番右のMaxのファスト(Fast)にしておきます。

これは新しいビルドをどれだけ頻繁に入手するか、というオプションですが、 差し当たり早く欲しいのでファスト(Fast)に。 (ただ、最初の入手に関してどれだけ意味があるのかはちょっと良くわかってません。)

この設定をすると暫くすると入手するんですが、 これはWindows Update更新プログラムのチェックを押しても すぐに入手することは出来ません。

ネットにつながってる時に自動的にチェックして入手出来る様になるらしく、ここまで来たらしばらく待つ他ありません。

早ければ1時間以内、ヘタすると1日位かかるみたいですが、今回は 設定して1時間位したら入手できる様になりました。

ここでも更新をチェックしても更新されないためにきちんと設定できてないんじゃないか? と疑ったりして、色々チェックしなおしたりしてましたが、 ここはもう待つしかありませんので暫くは忘れて放っておく位な気持ちで。

しばらくしてWindows Updateを見て、更新プログラムを利用できます。 の表示の下にWindows 10 Insider Preview XXXXX。の様な表示があれば Insider Previewを入手出来るようになってるので その下に出ている今すぐインストールボタンを押して インストールを開始します。

そうなってないかぎりは辛抱強く待つだけです。

20160605_insiderpreviewinstall.jpg

初めてInsider Previewを入れるときは差分が多くあるので結構時間がかかります。 (開始して寝ましたが多分最低1時間程度はかかっていた様です。)

インストールが終わったら再起動が必要ですが、再起動して更新するにも 結構時間がかかります。(数十分程度。) 途中で何回も再起動をしたりもするので、特にこちらの再起動の方は時間がある時に行う必要があります。 (入手するだけならバックグラウンドでも出来るので。)

Insider Previewのインストールが終わって再起動すると、 最初ログイン画面が青色一色になってたりログイン後にも しばらくマウスも使えない状態で待たされたりしますが、 一通り準備が終わると今まで通りの設定で使える様になります。

ただ、一部機能などがリセットされるらしく、 レジストリをいじって変更していたCapsLockAltCtrlの 交換1 はリセットされていました。 なのでこれは再び設定しておきました。

その他は今のところ特に気づいたところは特にありません。

設定の項目自体が色々と変更されてるのでその辺で細かい違いがあるかもしれません。

Windowsのバージョンの確認

Insider Preview版をインストールしましたが、ここでWindowsのバージョンの確認をしておきます。

Windowsの細かいバージョンを確認するには、 Win-Rファイルを指定して実行を起動するか Cortanaの検索を使い、winverを入力して実行します。

そうするとこんな画面が出てくるので、ここでビルドが14316より大きければ Bashの機能が使える様になっています。

20160605_winver.jpg

Insider Previewをインストールしていれば14000より大きなこんな数字になっていると思いますが、 現状の通常バージョン(Windows 10 Home Editionで確認)だと 10586.318になっていました。

もしこんな感じの数字であればまだインストールが出来ていないので、 入手が終了しているのであれば 設定Windows Updateなどに行くと再起動して更新、的なボタンが有るはずなので それを押して再起動、更新する必要があります。

デスクトップに表示が出る?

Insider Preview版をインストールすると強制的にデスクトップに表示が出るようです。

20160605_desktop.jpg

こんな感じで右下にInsider Previewの表示が出て、壁紙とかを変えても 常に表示される様な状態になっています。

ちょっと気になる人は気になるかも。。。

開発者向け機能を使う

Bashを有効化する前に、機能を使えうために開発者モードに設定する必要があります。

これは、設定更新とセキュリティ 開発者向けに行くと 開発者モードを選べる項目があるのでそれを選びます。

20160605_developer.jpg

Bashの有効化

ここまで来たらBashを有効化出来ます。

スタートボタンを右クリックするなどして出てくる項目からコントロールパネルを開き、 プログラムWindowsの機能の有効化または無効化を開きます。

20160605_winfunctions.jpg

Insider Previewが入っていて上の設定がきちんとできていれば、 ここにWindows Subsystem for Linux (Beta)という項目があるはずなので それにチェックを入れてOK

再起動を促されるので再起動します。

再起動したらコマンドプロンプトかPowerShellを起動してbashとコマンドを打ちます。 もしくはファイルを指定して実行などからbashを直接起動してもOK。 (C:\Windows\System32\bash.exeを実行する。)

そうするとBashをインストールするかどうか聞かれるのでyを入力するとBashのインストールが始まります。

20160605_bashinstall.jpg

インストールが終わるとBash用のユーザー名やパスワードの設定を促されます。 このユーザー名などはWindowsの物と同じでなくても構いません。 (PowerShellだと日本語表示になりますが、なんか表示が二重になってたりしておかしかったです。。。)

20160605_bashsetting.jpg

設定が終わるとBashが始まります。

その後は スタートアップにBash on Ubuntu on Windowsという項目が追加されているはずなので それを起動するといきなりBashなコマンドプロンプトが使えます。 (この項目自体はbash.exeへのショートカットになっていて、 引数として~を取る様な形になっています。)

20160605_bashonubuntuonwindows.jpg

コマンドプロンプトなりPowerShellでbashと打って始めることも出来ます。

これでWindowsでネイティブなBashが使えるようになりました。

現在インストールされているUbuntu/Bash

見てみるとこんな感じです。

$ lsb_release  -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.4 LTS
Release:        14.04
Codename:       trusty
$ uname -a
Linux DESKTOP-IIK93T3 3.4.0+ #1 PREEMPT Thu Aug 1 17:06:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux
$ bash --version
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Ubuntuなのでapt-getを使ってパッケージをインストール出来る様になっています。

ディレクトリ構造

Bashのホームディテクトリは、Windows上では C:\Users\<WindowsUserName>\AppData\Local\lxss\home\<UbuntuUserName> になります。

lxssディレクトリなのですが、エクスプローラーからだと 隠しファイルを表示する様になっていても表示されず、 Localまで行った後にアドレスバーに直接\lxssを追加すると中を見ることが出来ました。 (何やら初めて見る仕様です。。。)

追記: 2016/08/04

コメントで指摘していただきましたが、 これは初めて見る仕様、ではなく、もうひとつ、 保護されたオペレーティング・システムファイルを表示しないというフォルダオプションを切る必要があります。 このオプションは以前のWindowsバージョンからずっとあるものです。

隠しファイルよりもう一段階高いレベルで保護されてるファイル、フォルダの表示を設定する項目。

Windows 10ではエクスプローラーでフォルダを開いて上のタブの表示を押して表示に関するオプションを出すと、 隠しファイル等の表示を簡単に変更できる様になっています。

20160605_folderoption.jpg

ただ、ここに全てのオプションがあるわけではなく、 さらにオプションを起動して表示タブに行くと 詳細設定が出来る様になっています。

この中に隠しファイルの表示設定もありますが、 一番下に 保護されたオペレーティング・システムファイルを表示しないという項目があり、 デフォルトではチェックされています。

20160605_folderoptionprotect.jpg

このチェックを外すとlxssのフォルダも見える様になります。

エクスプローラーの表示の項目で簡単に隠しファイルとかの表示が変更できる様になってたので 昔ながらのオプションの変更はもう必要ない、と勘違いしてたのが気づかなかった理由です。

それでも表示のところにオプションと右に大きくあるのに 気付けなかったな、、、と。

追記ここまで

さらに C:\Users\<WindowsUserName>\AppData\Local\lxss\rootfsというデイxレクトリがあり ここにusrbinなどのLinuxファイルが入っています。 こちらにもhomeはあるんですが、 中は空でWindows側からなにか作ってもUbuntu側のhomeには反映されないので、 どうもhomeだけは\lxss\homeを使う仕様になってる模様。

これから分かるように、Bash on Ubuntu on Windowsでは各ユーザーごとに Linux環境を作る様になっているみたいです。

また、Bash側から Windowsのディレクトリを見るには、 /mnt/cなどからCドライブなどへアクセスが出来る様になっています。

日本語について

Bash上では今のところ日本語を打つことが出来ません。

PowerShellなんかだと日本語を使えるのですが、 bashを起動すると日本語に切り替えができなくなります。 (BashなPowerShellにフォーカスがあるかぎりIMEを直接ひらがなとかにしようとしても出来ない。)

ただし、日本語を表示することは可能らしく、 日本語の内容のファイルをcatしてみたり、 日本語のファイル名があるディレクトリでlsしてみたところ正しく表示されました。

日本語が打てないのでVimとかで開いても文字やコピーこそ一応出来ますが、 削除も半角毎に行ってるっぽい感じでまともに使えません。

無理やりファイル操作とかをしたい場合、PowerShellからbash -cとコマンドの形で呼んで、

> bash -c "mv このふぁいる あのふぁいる"

みたいな感じで操作しようと思えば出来ますが、まあ意味無いです。

root権限

root権限はユーザに与えられているのでapt-getなどはユーザーで直接できる、 みたいな話を見ましたが、apt-getしてみたところ Permission deniedでare you root?と聞かれてしまいました。

rootのパスワードなど設定してないのでsuしようが無いのですが、試しに

$ sudo apt-get update

としてみるとユーザーのパスワードを聞かれ、パスワードを入力すると行けました。

$ id
id=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev)

みたいになっていて、sudoグループに全権限が与えられてるので全てのコマンドを このユーザーでsudo出来るみたいです。

大文字小文字

上のポストに書いてあるとおり、 基本的にWindowsは大文字小文字を区別しません。

一方Linuxシステムでは区別します。

Bash on Ubuntu on Windowsの場合、/mnt/cなどからWindows領域に行って作業すると 基本的に大文字小文字だけが違う別のファイルを作る事は出来ません。

$ cd /mnt/c/Users/user
$ touch a A
$ du a A
0 a

としてもaというファイルだけが出来ます。 一方、Ubuntu領域に行くと、

$ cd
$ touch a A
$ du a A
0 a
0 A

と、aというファイルとAというファイルの2つができています。

実際エクスプローラーから覗いてみてもこの2つが確認できます。

Windowsは通常NTFSにフォーマットされたディスクを使いますが NTFS自体は大文字小文字を区別できますがWindowsがアプリケーションとして区別しないようにしています。 なのでこの場合、Ubuntu領域に限っては区別するような特別な処置をしているみたいです。

この辺なかなか複雑なことをしてる感があります。

ただ、エクスプローラーから見えるには見えるものの、正しくは扱えないみたいで、

$ echo aaa > a
$ cat a
aaa
$ cat A
$

な状態でエクスプローラーからaをメモ帳で開いて見ると空でした。 Aを削除してから再びaをメモ帳で開いてみるとaaaと言う内容が見れました。

どうもaAがある状態でエクスプローラーから開こうとしても 常に大文字の方だけをアプリケーションに名前として渡してしまう模様。

シンボリックリンク

また、Cygwinなんかでシンボリックリンクを使おうとすると結構ややこしいのですが、 Bash on Ubuntu on Windowsのシンボリックリンクはまた面倒な仕様です。

シンボリックリンクを作ってみたところ、Windows領域では 通常ファイルに見えますが、メモ帳とかで開こうとすると ファイルにアクセス出来ませんと出て開けません。

一方、Ubuntu領域で作ると開くことは出来ますが、中身には リンク元のファイル名が入っています。

$ touch a
$ ln -s a b

とすれば、bをメモ帳で開くとaとなっている状態。

ただし、開けますが内容を変更しようとすると プロセスはファイルにアクセスできません、別のプロセスが使用中です。 と言われて Windows側から変更を保存したりは出来ません。

というわけでWindows側とリンクを共有したり、そういった事は今のところ出来なそうです。

さらに、Ubuntu領域に対してWindows側からファイルを作ったりディレクトリを作った場合、 それらのものはBash側では見ることが出来ません。 (なので、上でHomeに作っても変換なし、と言った所はちょっと理解が違うかもしれません。)

どうもUbuntu領域は基本的にWindowsとは完全独立な体制にしたい感じになっています。

Xサーバー

Bash on Ubuntu on WindowsではXサーバーは直接サポートしないとなってますが、 自前でXサーバーを動かせばGUIなアプリも動かすことが出来ます。

Xmingなり CygwinのXサーバーなりなんでも良いんですが、 多分、今現在WindowsでXサーバーを立ち上げるのはMobaXtermを使うのが 一番簡単なのでそれでテスト。

MobaXtermが入ってればアプリを立ち上げるだけでXサーバーも起動します。 MobaXtermのローカルターミナルでDISPLAY変数を見てみると

$ echo $DISPLAY
127.0.0.1:0.0

となっているので、Bash on Ubuntu on Windowsのターミナルで、

$ export DISPLAY=127.0.0.1:0.0

とします。(デフォルトでは値は設定されていません。また、ローカルホストなので 実際にはexport DISPLAY=:0.0だけでもOKです。)

これでXなアプリも使える様になったはずなのでテストしてみます。 適当なものが無かったのでapt-getxclockなどXアプリをインストールして使ってみます。

$ sudo apt-get install x11-apps
$ xclock

MobaXtermを起動した状態でxclockを立ち上げれば 時計がきちんと出てくるはずです。

Xサーバーが動いてなければ

$ xclock
Error: Can't open display: 127.0.0.1:0.0

と言った感じのエラーが出ます。

もし本気でこのBash on Ubuntu on WindowsをXも含めて使いたい場合は Xmingとかを使うべきだとは思いますが、 取り敢えずXサーバーを動かせばXなアプリも使える様です。

GNU screen/tmux

追記: 2016/09/01

GNU screenやtmuxと言ったターミナルマルチプレクサなどは 色々と難しい点があるようで、 初期のBash on Ubuntu on Windowsでは両方共使えませんでした。

ただ、tmuxの方はAnniversary Update時にには使えるようになっていて、 GNU screenに関しても使える様になったみたいです。

追記ここまで

まとめ

ちょっと触ってみた感じでは単純なBashシェルとしては普通に使えました。

sshなども入っているので他のサーバーにログインして使ったりも出来ます。

ただ、Linux環境をそのまま入れようとし過ぎているのか、 基本、Windows環境と独立したものが単に入っている感じになっています。

一応/mnt/からWindows側のファイルを見ることは出来ますが、 システムが違う物を無理やり繋げてる感じがして 余り実用的ではありません。

Xに関しては一応使えますが別途自分で用意しなくてはいけないので Windowsネイティブ、という売りの意味が無くなってしまいます。

起動スピードに関してはCygwinやMobaXtermに比べて大分速く、 瞬時に立ち上がる感じがあるのは良い所だとは思います。

後は一応Ubuntuなのでapt-getでパッケージをインストールすることが出来、 Cygwin(またはMobaXterm)のapt-cygで用意されているものに比べれば パッケージが充実してるかな、という点はあります。

ですが、例えばCygiwnではcygstartというコマンドがあり、 所謂Macのopenコマンド的なファイルをOSのアプリを使って開いたり OSのアプリを実行するコマンドがありますが、 Bash on Ubuntu on Windowsではそのようなコマンドはありません。

これはそもそも思想が違うので今後出来るか、とわれると 根本的なコンセプトが変わらないかぎりは入ってこないと思います。

そもそもWindowsにBashが入る、ということでユーザーが求めるのは 個人的にWindowsをBashで管理する、ということだと思うのですが、 これだと単にWindowsの中でBashを使える、というだけで むしろCygwinやMobaXtermの単なる下位互換にしかならない感じです。

追記: 2016/06/06

WindowsをBashで管理するが欲しいのは個人的には Linux的な作業を行うのであれば手元のマシンで行うことがあまり無いからです。

基本Linuxサーバーが別にあってそこに入って作業します。 前までのWindowsマシンでは中にVM環境作って作業するにはきつかったし あまり現実的ではなかったですし。

今はWindowsだとそういう開発をするのに全部手元のマシンでVMを使う人も多いのでしょうかね? (Cygwinで開発してるというのは殆ど聞かないし、下に出したcoLinuxなんてのは 最近話にすら出てこないので。。。)

ただ、逆に今の端末はノートPCでも十分なスペックを持ってる事が多く、 手元で開発を行う様な人ならVMでLinux立ち上げても十分使える様なものを持ってる事が多いと思います。

だとすればやはりUNIXライクなコマンドが使えて嬉しいのは ホントにネイティブにWindows内のシステム等にUNIXなコマンドラインから アクセス出来る、というところだとは思うのですが。

MacとWindowsで差を感じるのはやはりその部分なので。 まあ、個人的にですが。

追記ここまで

取り敢えず入れてみた、感しか無いんですが、 今後、Windowsを管理するためのBash、として進化してくれることを祈りつつ、ちょっと見守る感じです。 (現状CygwinやMobaXtermの方が圧倒的に使えて、このBashを使う意味は全く無いという結論。。。)

追記: 2016/06/05

個人的な思いはともかく、実際どういったものを作ろうとしてるか、というのは Bash on Ubuntu on WindowsのFAQを見るとちょっと見えてきます。

Frequently Asked Questions MSDN

まず、これはWindows Subsystem for Linux (WSL)と呼ばれ Windows内にLinux環境のサブシステムを作るためのもの、とのこと。

Why would I use WSL rather than Linux in a VM?

WSL requires fewer resources (CPU, memory and storage) than a full virtualized machine. WSL also allows you to run Linux command-line tools and apps alongside your Windows command-line, desktop and store apps, and to access your Windows files from within Linux. This enables you to use Windows apps and Linux command-line tools on the same set of files if you wish.

特にこれを見ると仮想マシンでやってることをWindowsネイティブで出来る様にしたい、と行った感じです。 VM上で行うのに比べOS自体を立ち上げる必要がないため少ないリソースで Linux環境を作る事が出来る、と。

また優先度が高いものとして

1. A Bash environment for developers to run standard GNU command line tools such as grep, sed, awk
2. Provide access to the local hard drives through /mnt
3. Symlink support within the WSL environment
4. Linux user support
5. Provide the ability to run apt / apt-get for updates and package testing
6. Provide basic functionality for some languages:
* NodeJS / npm
* Python
* Perl
* Git
7. Command line editors / tools
* vi
* emacs
* ssh

が挙げられていますが、これらは大体出来てる感じです。

/mnt/からWindows領域を見ることはできるし シンボリックリンクもWSL内ではきちんと機能しています。

NodeやGit、またEmacsに関しては現状初期状態では入っておらず apt-getで取ってくる必要があります。

と言った感じで目指されてるのはWindowsでもVMなどを立ちあげなくてもパッと Unix系コマンドを使ってテストとか出来る様にしたい、という所みたいです。

これを使ってWindows側を管理したりどうこうする、なんてことは今のところ あまり無い模様。 その辺はやはりコマンドプロンプトなりPowerShellがあるでしょ、ということかもしれませんが。

むしろ領域を完全に分けて仮想状態を作ってる辺り、逆に Windows環境とは敢えて切り分けて置く、という考えもありそうな感じすらします。 シンボリックリンクとかWindowsの物とは全く別の物を使ったりしてるみたいなので 単に環境をまとめるのがまだ難しいだけかもしれませんが。

Bash on Ubuntu on Windowsに対する追加アイデアみたいなものは 下で投稿され、必要とされるものは取り入れられて行っている様です。

Command Prompt / Console / Bash on Ubuntu on Windows: Top (390 ideas) – Welcome to the Windows developer feedback site!: https://wpdev.uservoice.com/forums/266908-command-prompt/filters/top

また、GitHubにもIssue専用のREADMEだけのレポジトリが出来ていて、 問題などを見つけたたらこちらから報告するみたいです。

Issues · Microsoft/BashOnWindows

追記ここまで

WindowsでのサードパーティーLinux環境

追記: 2016/06/05

WindowsではサードパーティーなアプリでLinux環境を構築することが昔から行われています。

一番有名なのはやはり Cygwin

/blog/tags/cygwin/

シェルなどをWindows環境上で動くようにコンパイルしなおして UNIXライクな環境を作り出しています。

パッケージも apt-cyg というapt-getに似せたスクリプトを使ってインストールしたりすることが出来ます。 (ただし、apt-cyg自体はCygwin公式なものではなくてさらなるサードパーティースクリプトです。)

Cygwinと似たような物で MobaXterm というソフトも有ります。

こちらはBusyBoxというUNIXツールを一つのバイナリに詰めた軽量 ツールをベースに作られています。

Xサーバーとかがデフォルトで起動したり、sshの管理がGUIで簡単に出来たり、 PuTTYから設定をインポートできたり、 またMoshなどもサポートしていたり 結構色々充実しています。

ぱっと始めるのであればCygwinより手軽です。

後は余り使われてないと思いますが、 Cooperative Linux(coLinux) という、実際のLinux環境を仮想的にWindows内に作る物があります。

ただ、今はVMwareなりVirtualBoxなりで好きな仮想環境を作れるので 敢えて使う必要は無い感じです。 (昔のリソースが少ない環境でもcoLinuxは割りと負荷なく動いたのでそれはそれで結構便利でした。)

ただ、Bash on Ubuntu on Windowsの使用感としてはこのcoLinuxが一番近いように感じます。

追記ここまで

Sponsored Links
Sponsored Links

« TeamViewerで二要素認証の設定 BoseのノイズキャンセリングヘッドホンQuietComfortのワイヤレス版が発売された »

}