差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
windows:wsl [2020/09/13 04:02] – ともやん | windows:wsl [2024/02/04 13:41] (現在) – ↷ 移動操作に合わせてリンクを書き換えました。 非ログインユーザー | ||
---|---|---|---|
行 4: | 行 4: | ||
{{: | {{: | ||
\\ | \\ | ||
- | Windows Subsystem for Linux 2 (以下 WSL 2) は、2019/ | + | Windows Subsystem for Linux 2 (以下 WSL 2) は、2019/ |
Linux カーネルが Windows に同梱されるのは、今回が初である。(Microsoft は過去にも 2018 年に [[https:// | Linux カーネルが Windows に同梱されるのは、今回が初である。(Microsoft は過去にも 2018 年に [[https:// | ||
\\ | \\ | ||
行 15: | 行 15: | ||
* そして何よりも VM の構成や管理が不要 | * そして何よりも VM の構成や管理が不要 | ||
WSL は、Linux の ELF フォーマット形式のバイナリ実行ファイルを Windows でネイティブ実行できるようにするための互換レイヤーであるが、WSL 1 では一部で互換性の問題があったが、WSL 2 では Linux カーネルを Windows に内臓したことで__**完全なシステムコールの互換性**__を提供すると伴に、__**ファイルシステムのパフォーマンスが劇的に向上**__している。\\ | WSL は、Linux の ELF フォーマット形式のバイナリ実行ファイルを Windows でネイティブ実行できるようにするための互換レイヤーであるが、WSL 1 では一部で互換性の問題があったが、WSL 2 では Linux カーネルを Windows に内臓したことで__**完全なシステムコールの互換性**__を提供すると伴に、__**ファイルシステムのパフォーマンスが劇的に向上**__している。\\ | ||
+ | |||
+ | {{INLINETOC wide 1-2}} | ||
+ | \\ | ||
===== インストール ===== | ===== インストール ===== | ||
+ | WSL 2 で Fedora を利用するためのおすすめの方法は、[[.wsl: | ||
+ | |||
[[.wsl: | [[.wsl: | ||
- | [[.wsl: | + | [[.wsl: |
- | ※**LxRunOffline** | + | <wrap em>※WSL 2 + **LxRunOffline** で利用するなら、**Fedora Remix** を購入する必要はない。</ |
[[.wsl: | [[.wsl: | ||
- | ===== 日本語環境に設定 | + | ===== 以下は Fedora Remix での過去の手順 ===== |
+ | |||
+ | ==== 日本語環境に設定 ==== | ||
標準のインストールだと日本語が **□** に文字化けする。\\ | 標準のインストールだと日本語が **□** に文字化けする。\\ | ||
これはターミナルのフォントが日本語フォントになっていない為である。\\ | これはターミナルのフォントが日本語フォントになっていない為である。\\ | ||
行 119: | 行 126: | ||
</ | </ | ||
- | ==== WSL 2 の systemd 問題 | + | === WSL 2 の systemd 問題 === |
システムロケール設定を **ja_JP.UTF-8** に変更する。\\ | システムロケール設定を **ja_JP.UTF-8** に変更する。\\ | ||
< | < | ||
行 154: | 行 161: | ||
現時点 (2019/09/16 現在) の WSL 2 では、**systemd** はサポートされていない。\\ | 現時点 (2019/09/16 現在) の WSL 2 では、**systemd** はサポートされていない。\\ | ||
+ | [[https:// | ||
[[https:// | [[https:// | ||
今後 Microsoft によって systemd が有効化される可能性はあると思う。\\ | 今後 Microsoft によって systemd が有効化される可能性はあると思う。\\ | ||
行 179: | 行 187: | ||
</ | </ | ||
- | ==== genie-systemd の fork ==== | + | === genie-systemd の fork === |
本家: [[https:// | 本家: [[https:// | ||
元ネタ: [[https:// | 元ネタ: [[https:// | ||
行 225: | 行 233: | ||
LC_ALL= | LC_ALL= | ||
</ | </ | ||
- | < | + | < |
- | === getty@tty1.service の無効化 | + | == getty@tty1.service の無効化 == |
本家のドキュメント [[https:// | 本家のドキュメント [[https:// | ||
<WRAP prewrap 100%> | <WRAP prewrap 100%> | ||
行 260: | 行 268: | ||
</ | </ | ||
- | === 毎回 genie -s を実行しなくても良い方法 | + | == 毎回 genie -s を実行しなくても良い方法 == |
WSL 2 を起動する度に systemd を有効化するのは手間である。\\ | WSL 2 を起動する度に systemd を有効化するのは手間である。\\ | ||
そこで以下のように bash 起動時に自動で有効化することが出来る。(お好みで...)\\ | そこで以下のように bash 起動時に自動で有効化することが出来る。(お好みで...)\\ | ||
行 275: | 行 283: | ||
</ | </ | ||
- | ===== 基本的なコマンドのインストール | + | ==== 基本的なコマンドのインストール ==== |
[[https:// | [[https:// | ||
- | ==== キャッシュのキープ | + | === キャッシュのキープ === |
お好みで以下の設定を行っておくと RPM パッケージがキャッシュされるようになる。\\ | お好みで以下の設定を行っておくと RPM パッケージがキャッシュされるようになる。\\ | ||
< | < | ||
行 302: | 行 310: | ||
</ | </ | ||
- | ==== パッケージのインストール | + | === パッケージのインストール === |
**tmux - 端末多重化ソフトウェア と htop - 高機能タスクマネージャー**\\ | **tmux - 端末多重化ソフトウェア と htop - 高機能タスクマネージャー**\\ | ||
\\ | \\ | ||
行 383: | 行 391: | ||
</ | </ | ||
- | ===== WSL 2 ファイルシステムへのアクセス | + | ==== WSL 2 ファイルシステムへのアクセス ==== |
WSL 2 のファイルシステムへのアクセスは PowerShell で **\\wsl$\< | WSL 2 のファイルシステムへのアクセスは PowerShell で **\\wsl$\< | ||
これは Plan 9 Network Provider (9p と省略) を利用して提供されるネットワーク共有である。\\ | これは Plan 9 Network Provider (9p と省略) を利用して提供されるネットワーク共有である。\\ | ||
行 413: | 行 421: | ||
割り当て解除は **net use x: /delete** で行う。\\ | 割り当て解除は **net use x: /delete** で行う。\\ | ||
- | ===== 技術情報 | + | ==== 技術情報 ==== |
[[https:// | [[https:// | ||
軽量VM と Windows Sandbox\\ | 軽量VM と Windows Sandbox\\ | ||
行 421: | 行 429: | ||
[[https:// | [[https:// | ||
- | ==== WSL1 のディスクイメージの場所 | + | === WSL 1 のディスクイメージの場所 === |
**wsl --set-version < | **wsl --set-version < | ||
< | < | ||
行 427: | 行 435: | ||
</ | </ | ||
- | ==== WSL2 のディスクイメージの場所 | + | === WSL2 のディスクイメージの場所 === |
**wsl --set-version < | **wsl --set-version < | ||
< | < | ||
行 467: | 行 475: | ||
</ | </ | ||
- | ==== その他参考文献 | + | === その他参考文献 === |
[[https:// | [[https:// | ||
- | ===== .NET Core ===== | + | ==== .NET Core ==== |
.NET Core を Fedora にインストールする方法は、以下を参照のこと。\\ | .NET Core を Fedora にインストールする方法は、以下を参照のこと。\\ | ||
- | [[linux:fedora_copr# | + | [[linux:fedora:copr# |
- | ===== Cloud9 SDK ===== | + | ==== Cloud9 SDK ==== |
[[javascript: | [[javascript: | ||
[[.: | [[.: | ||
- | ===== Fedora Remix の Upgrade | + | ==== Fedora Remix の Upgrade ==== |
**Fedora 30 → 31**\\ | **Fedora 30 → 31**\\ | ||
<WRAP prewrap 100%> | <WRAP prewrap 100%> | ||
行 491: | 行 499: | ||
</ | </ | ||
- | ==== 参考文献 | + | === 参考文献 === |
[[https:// | [[https:// | ||
- | ===== トラブルシューティング ===== | + | ==== トラブルシューティング ==== |
+ | |||
+ | === WSL 2 に接続できない場合 === | ||
+ | [[.: | ||
- | ==== System has not been booted with systemd as init system (PID 1). が発生する | + | === System has not been booted with systemd as init system (PID 1). が発生する === |
< | < | ||
System has not been booted with systemd as init system (PID 1). Can't operate. | System has not been booted with systemd as init system (PID 1). Can't operate. | ||
行 531: | 行 542: | ||
</ | </ | ||
- | === Process Monitor で WSL 2 の起動プロセスを追ってみた | + | == Process Monitor で WSL 2 の起動プロセスを追ってみた == |
コマンドプロンプトより bash を起動すると以下のような流れで WSL 2 環境がロードされている。\\ | コマンドプロンプトより bash を起動すると以下のような流れで WSL 2 環境がロードされている。\\ | ||
<WRAP prewrap 100%> | <WRAP prewrap 100%> | ||
行 554: | 行 565: | ||
おおよそこのような流れのようである。\\ | おおよそこのような流れのようである。\\ | ||
- | ==== genie-systemd の fork ==== | + | === genie-systemd の fork === |
[[# | [[# | ||
\\ | \\ | ||
行 601: | 行 612: | ||
</ | </ | ||
- | ==== genie-systemd (最初に試した時の資料です) | + | === genie-systemd (最初に試した時の資料です) === |
[[https:// | [[https:// | ||
<WRAP prewrap 100%> | <WRAP prewrap 100%> | ||
行 710: | 行 721: | ||
[[https:// | [[https:// | ||
- | ===== 参考文献 | + | ==== 参考文献 ==== |
[[https:// | [[https:// | ||
[[https:// | [[https:// |