Windows(WSL2)でMacOSXを動かす

2022年11月10日

目的

  • WindowsからOSXのエミュレーションを行う
  • WindowsからOSXを使った開発環境を整える

環境

  • Windows11 (22000.1098)
    (参考サイトに You must have Windows 11 installed with build 22000+ (21H2 or higher). との記述あり)

手順

OSXのセットアップ

  1. WSL2をインストール
  2. .wslconfigファイルを作成
    • C:/Users/<Your_Name>.wslconfigというファイルを作成
    • .wslconfigに下記の内容を追加して保存
      [wsl2]
      nestedVirtualization=true
  3. Windows Subsystem for Linux Previewをインストール
  4. WSL2のUbuntuを起動
    • もしすでに起動していたら、Powershellでwsl --shutdownの後、再度Ubuntuを起動する
  5. Dockerをインストール
  6. 下記コマンドを実行
    docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    sickcodes/docker-osx:auto
  7. QEMUが起動し下記の画面が表示される

開発環境

  • 前節7.の画面が表示されている状態で、VSCodeのWSLウインドウを開き、VSCodeのターミナルで作業する想定
  • マウントしたいフォルダをVSCodeで開いておいて、VSCodeでターミナルを二つ開き、ssh接続とファイルマウントをそれぞれで実行するとやりやすい

ssh接続

  1. VSCodeのターミナルで下記コマンドを実行
    $ ssh user@localhost -p 50922
    • 初回実行時は、Are you sure you want to continue connecting (yes/no/[fingerprint])?と聞かれるのでyesを入力
    • Passwordはデフォルトでalpine
  2. user@users-iMac-Pro ~ % と表示されることを確認
    • Macにログインした状態でVSCodeのターミナルからGUI関連の処理も実行できる
      例)% open -a Safariを実行すると、前節7.の画面でSafariが立ち上がる

ファイルマウント

  1. 下記のコマンドを実行し、sshfsをインストール
    $ sudo apt update
    $ sudo apt install sshfs
  2. 下記のコマンドでマウントを実行
    $ sshfs user@localhost:/ -p 50922 <path-on-WSL>
    • <path-on-WSL> にWSLのパスを設定する

参考

手順MacOSX,WSL2,Docker

Posted by ttnt