Bash on Ubuntu on Windowsで、Windowsフォルダを共有したかった

正式にはWindows Subsystem for Linuxって言うんだそうですね。

で、タイトルの件ですが、これって結構めんどくさいらしいですね。
といいつつ、Conohaに借りているサーバからデータを取り出したり、Pythonのコードを少し直してサーバにあげなおしたり、取り出したデータをWindows側アプリに引き渡したいときとか、Bash On Ubuntu on WindowsとWindows10との間のファイルのやり取りをどうしようか悩んでいました。

いろいろとディレクトリを見てみると、mntというディレクトリにCというデバイスがマウントされています。cd CとしてみるとWindows側のルートディレクトリが見えます。

ふむ。。。。

ネット上では、例えばWindowsのルートディレクトリにhomeというディレクトリを作り、Ubuntu側のホームディレクトリをそちらに切り替えてしまう方法が公開されています。
僕もいったんやってみたんですが、公開鍵認証でサーバと接続しようとするとsshにパーミッションと所有者が違うと怒られてしまい、これを解決できなかったのです。今回はConohaとスムーズに接続できることが大事。

ホームディレクトリがデフォルト状態ならば、少なくともsshで怒られることはないので、こちらの状態を優先して、なんとかWindows側ディレクトリを簡単に覗けるように試行錯誤してみました。

やってみたのは、cd /mnt/c でWindows側のルートディレクトリに移動して、そこにshareという共有ディレクトリを作ります。

次にホームディレクトリに戻り、シンボリックリンクを張りました。

ln -s //mnt/c/share win

Windows側のshareディレクトリにシンボリックリンクを張り、ホームディレクトリではwinと名付けました。lsコマンドを打つと、winというディレクトリ(シンボリックリンク)が出来ています。cdコマンドで直接Windows側のshareディレクトリに入ります。

Windows側ではテキストエディタの秀丸やAtomを使いますが、文字コードをデフォルトでUTF-8、改行コードはLFのみに設定して、文字化けや改行コードで問題が発生しないようにしてみました。

Windows側からWindows Subsystem for Linux側のファイルを弄ると壊れるらしいんですが、どうなるのかしばらく試してみようと思います。

0 件のコメント:

コメントを投稿