2025-12-07

Windows(WSL) で Ubuntu を動かす

ここ で Windows 上に python 環境を作るのに msys2 を使ってみたけど、

つまり、そこで msys2 で unix 環境ができたわけだけど、

 

やっぱネイティブな? 

純粋な unix 環境で、いろいろ試したいこともあるので、VM で unix 環境を作ることにした

 

やったことを記しておきます

 

1. WSL をインストールする

wsl --install

wsl --set-default-version 2

2. Microsoft Store から Ubuntu 24.04.1 LTS をインストールする

 ※ 24.04.1 LTS は 現時点(2024/11/03)最新と思われるので指定した

  WSL のネットワークは 標準で NAT になっているらしい

 ※これだけで ubuntu が動くと思っていたけど、うごかなくて、手順3, 4, 5 をした

3. HyperV を有効にする

dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V -All /norestart

 4. WSL を有効化する

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /norestart
dism.exe /online /enable-feature /featurename:WindowsSubsystemForLinux /norestart ※エラーした

5. 再起動する

6. メニューから ubuntu を起動する

7. 初期設定&ssh サーバー起動する

apt update

apt upgrade

 

apt install -y openssh-server

 

# ssh サーバー起動

service ssh start

# ssh サーバーの自動起動設定

systemctl enable ssh

# ssh サーバーの起動状態の確認

service ssh status

 8. root パスワードの設定&ユーザー追加(&sudo 設定)する

passwd

 

useradd <ユーザー名>

passwd <ユーザー名>

 

usermod -aG sudo <ユーザー名>

9. マシン名を変える

 /etc/wsl.conf に以下の行を追加する

[network]
hostname = new-hostname

 ※ wsl 上の ubuntu の IP は起動するたびに変化するらしい

  仮想環境であることが原因なので、固定IP運用も難しいみたい

  調査していこう・・・

10. お好みで・・・

apt install net-tools

!!注意!!

 ・Windows の終了で、 ubuntu は自動で終了するらしい

  ただし、ubuntu 上のプロセスは終了させられるので、動作保証が・・・

  明確に手動で終了させる場合は PowerShell で以下のように打つようだ

wsl --shutdown

   ubuntu のシェルで exit しても終わるようだ

 ・Windows の起動で、 ubuntu は自動起動しない

  以下のようにタスクスケジューラを設定したらいいみたい(未試行なので、メモ・・・)

  • 「タスクスケジューラ」を開き、「基本タスクの作成」から新しいタスクを作成します。
  • 「トリガー」で「Windows にログオンしたとき」を選択。
  • 「操作」で wsl.exe を実行するよう設定します。

 ・Windows のファイルは /mnt/<ドライブ名> で見える♪ (・ω・)ノシ


以下、まだやっていないけど、そのうち、必要になるような気がするのでメモしておく (;^ω^)

 

Appendix.A ポートフォワード設定 ★まだ、うまく動かない・・・

A1. PowerShell にて以下のコマンドで設定ができる

netsh interface portproxy add v4tov4 listenport=<Windowsのポート番号> listenaddress=0.0.0.0 connectport=<WSLのポート番号> connectaddress=127.0.0.1

A2. 設定の確認

netsh interface portproxy show v4tov4

A3. 補足:設定を削除する場合

netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=<ホスト側のポート番号>

A4. ファイアーウォールの設定

New-NetFirewallRule -DisplayName "WSL Web Server Port" -Direction Inbound -Protocol TCP -LocalPort 8081 -Action Allow



0 件のコメント:

コメントを投稿

ご訪問をありがとうございます ✨✨✨

八百茄子 は ソフトウェアエンジニア1名による小さな工房です 週末に スキルアップ と 八百茄子 向けのコンテンツ作成に勤しんでおります ご提供コンテンツ tools  にて 八百茄子 の作成したツールをご紹介しています knowhow  にて、 2x年の組込み系ソフトウェア開発...