Hyper-Vに開発用UbuntuLinux22.04環境を作るときに参考にしたサイトのメモです。
想定OSは、Windows11Proです。

このエントリでは、以下の点についてメモを残しています。

  • Hyper-V・UbuntuLinuxのセットアップ
  • Windowsとの運用環境
    • ネットワーク
    • WSLとの接続
    • Windows TerminalからのSSH接続
    • XServer(VcXsrv)の導入
    • 日本語環境
    • Windowsショートカット
  • ファイル共有
    • Windows ← Ubuntu (UbuntuからWindowsのファイルを操作)
    • Ubuntu ← Windows (WindowsからUbuntuのファイルを操作)
    • Ubuntu ← Windows ← WSL (WSLからWindows経由でUbuntuのファイルを操作)
    • Ubuntu ← WSL (WSLからUbuntuのファイルを操作)
    • OneDrive
  • ミドルウェア・アプリケーションのインストール
    • Chrome (Webブラウザ)
    • pcmanfm (ファイルマネージャ)
    • docker (コンテナ基盤)
    • Visual Studio Code (テキストエディタ)
    • IntelliJ (統合開発環境)

Hyper-V・UbuntuLinuxのセットアップ

まずはHyper-Vの有効化、
Windowsの設定→アプリ→Windowsのその他の機能→Hyper-Vにチェックを入れてインストールする。

Windows 11でより使いやすくなったHyper-V。サクッと無料で仮想環境を作ってみる | PC Watch
https://pc.watch.impress.co.jp/docs/column/win11tec/1381698.html

Ubuntuのインストール手順は、以下を参考に実施する。

Windows10のHyper-V上でUbuntuを動かす | ぼったんの技術系ブログ
https://blackbird-blog.com/hyper-v-ubuntu-setup

イメージは、以下から「Ubuntu Server 22.04.2 LTS」を取得し、仮想マシンに接続する。
Desktop版はインストール時の画面解像度が低くて見にくいので、Serverをインストールした。
ネットワーク設定は、ひとまずDefault Switchで良い。

Ubuntuを入手する | Ubuntu
https://jp.ubuntu.com/download

Windowsとの運用環境

ネットワーク

Windows側からアクセスする時に都合が良いので、UbuntuホストのIPアドレスを固定したい。
以下を参考にして、仮想ネットワークスイッチを作って、Windows側の設定を行う。

Hyper-Vの仮想マシンで固定IPを使う | パソコン鳥のブログ
https://pcvogel.sarakura.net/2023/02/21/37981

Ubuntu側は、普通にnetplanでIPアドレスを設定する。

Linuxメモ: Netplan で Ubuntu のネットワーク設定を行う | まくろぐ
https://maku.blog/p/7q3dnx8/

先ほどのブログのように、
Windows側を「192.168.24.1」としていた場合は、次のような設定になる。

/etc/netplan/00-installer-config.yaml

network:
  ethernets:
    eth0:
      addresses: [192.168.24.2/24]
      nameservers:
        addresses: [8.8.8.8]
      routes:
        - to: default
          via: 192.168.24.1
  version: 2

WSLとの接続

WSLとHyper-VのUbuntu間でsshなどの通信を行いたい場合は、
次のサイトを参考に、ネットワークインターフェイス間のフォワーディングを有効にする。

WSL2とHyper-V仮想マシンの間で通信ができるようにする | メモの日々
http://ogawa.s18.xrea.com/tdiary/20201208p01.html

Windows TerminalからのSSH接続

WindowsTerminalからUbuntuにSSH接続したい場合は、次のサイトを参考に設定をする。

Windows Terminal で SSH 接続 | Unity Indies
https://www.create-forever.games/windows-terminal-ssh/

新しいプロファイルを追加して、コマンドラインを次のように指定すればよい。
C:\Windows\System32\OpenSSH\ssh.exe ※ユーザ名※@※IPアドレス(Ubuntu側)※

XServer(VcXsrv)の導入

WindowsにVcXsrcを導入して、Xを利用できるようにする。
次のサイトを参考に、Windows側のセットアップを行う。

x server VcXsrv(Xサーバー)をWindowsにインストールしLinuxのGUIをリモート操作する設定方法 | りんかネット
https://rin-ka.net/windows-x-server/

VcXsrv自体は、以下からダウンロードする。

VcXsrv Windows X Server | SourceForge
https://sourceforge.net/projects/vcxsrv/

セットアップ後、Ubuntu側にxtermを入れて起動できるかを試してみる。
Windows側にxtermのウィンドウが開けば成功。

sudo apt-get install xterm
export DISPLAY=※IPアドレス(Windows側)※:0.0
xterm

日本語環境

フォントが無いと、Xで日本語が表示できないので、以下のようにしてフォントをインストールする。

sudo apt install -y fonts-noto

次のサイトのように、使えるフォントはいろいろある。とりあえずはnotoで良いかと。

Ubuntu 18.04 の apt で入れられる日本語フォントまとめ | Neo’s World
https://neos21.net/blog/2020/04/13-03.html

日本語の入力環境(mozc)は、以下のサイトを参考に設定する。
「3.2. 日本語フォントを読み込む」はWSL2固有なので、実施しない。

Win11のWSL2 (WSLg)を日本語化 & Mozcで日本語入力 | AsTechLog
https://astherier.com/blog/2021/07/windows11-wsl2-wslg-japanese/

Windowsショートカット

特にX前提のアプリケーションは、
Windowsにショートカットを作って、直接起動できると都合がよい。

作成したショートカットのリンク先を、次のように指定すればよい。
C:\Windows\System32\OpenSSH\ssh.exe ※ユーザ名※@※IPアドレス(Ubuntu側)※ ※起動プログラム※

Ubuntu側に以下のようなシェルスクリプトを作って、
Windowsショートカットから、シェルスクリプトを呼ぶようにすれば、
Xや日本語入力が利用できる状態で起動できる。

#!/bin/bash
. ~/.profile
export DISPLAY=※IPアドレス(Windows側)※:0.0
/usr/bin/xterm

ファイル共有

全て試した訳ではないけれど、Ubuntu-Windows間はさまざまなファイル共有方法がある。

Windows ← Ubuntu (UbuntuからWindowsのファイルを操作)

Windowsで共有したフォルダを、Ubuntu側から操作したい場合は、
次のサイトを参考に、cifsでマウントする。

【Linux】【Windows】Hyper-vのLinuxにWindowsの共有フォルダをマウントする | なんだかGoodVibes
https://nandakagoodvibes.hatenablog.com/entry/2021/05/09/164212

Ubuntu ← Windows (WindowsからUbuntuのファイルを操作)

Ubuntuで共有したフォルダを、Windows側から利用したい場合は、sambaを使えば良い。

Ubuntu 22.04にsambaをインストールしてファイルサーバにする(Linuxユーザーのホームディレクトリを共有) | qiita
https://qiita.com/murakami77/items/caf431b4fb5c4d67053d

Ubuntu ← Windows ← WSL (WSLからWindows経由でUbuntuのファイルを操作)

Ubuntu(Hyper-V)でsamba共有したフォルダを、WSLから利用したい場合は、cifsでマウントすればよい。

SMB/CIFS→可能 | UbuntuをWindows11上で動かす その6: NASのファイルを利用する | メモ置場のブログ
https://scratchpad.jp/ubuntu-on-windows11-6/#toc6

Ubuntu ← WSL (WSLからUbuntuのファイルを操作)

Ubuntuのファイルを、WSLから利用したい場合は、sshfsでマウントで利用できる。

OpenSSH : SSHFS を利用する | Server World
https://www.server-world.info/query?os=Ubuntu_20.04&p=ssh&f=8

OneDrive

UbuntuにOneDriveを入れてクラウド経由で共有するという方法もある。

LinuxでOneDriveを使用する | 気まぐれブログ
https://minokamo.tokyo/2022/01/28/4370/

ミドルウェア・アプリケーションのインストール

Chrome (Webブラウザ)

Chromeブラウザは、次のコマンドでインストールできる。

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb

【コマンドだけで一番楽】ubuntu 20.04LTS にChromeをインストール | Inno-Tech-Life
https://inno-tech-life.com/dev/linux/ubuntu_chrome/

pcmanfm (ファイルマネージャ)

pcmanfmは、次のコマンドでインストールできる。

sudo apt-get install pcmanfm

docker (コンテナ基盤)

以下のサイトのとおり、Dockerのリポジトリを追加してaptでインストールする。

Install Docker Engine on Ubuntu | docker docs
https://docs.docker.com/engine/install/ubuntu/

Visual Studio Code (テキストエディタ)

以下のサイトのとおり、Microsoftのリポジトリを追加してaptでインストールする。

Visual Studio Code on Linux | Visual Studio Code Docs
https://code.visualstudio.com/docs/setup/linux

IntelliJ (統合開発環境)

以下のサイトのとおり、snapでインストールする。

Install as a snap package on Linux | Install IntelliJ IDEA
https://www.jetbrains.com/help/idea/installation-guide.html#c6e80e95

Install as a snap package on Linux | Install PyCharm
https://pleiades.io/help/pycharm/installation-guide.html#snap

実行ファイルが、/snap/binの下に作られる。

以上。