Dualbootで既存のオペレーティングシステムをWSLとして実行する

Dualbootで既存のオペレーティングシステムをWSLとして実行する

grubが管理するWindows 11およびArch Linuxの既存のデュアルブート設定があります。

私のArchシステムをWindowsでWSLとして使用できますか?

$ lsblk -f
NAME FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
|
|-nvme0n1p1
|    vfat   FAT32       73A8-FF43                             451.3M    12% /boot
|-nvme0n1p2
|    swap   1           23fe1eb0-971a-455f-bb80-301c0eb7eed5                [SWAP]
|-nvme0n1p3
|    ext4   1.0         702789b8-6895-4117-98f3-56908ea027d0  180.4G     3% /
`-nvme0n1p4
     ext4   1.0         9ac9ebb5-c604-4d89-875d-89590ff43db6    672G     0% /home
nvme1n1
|
|-nvme1n1p1
|    vfat   FAT32 SYSTEM
|                       BABE-8522
|-nvme1n1p2
|
|-nvme1n1p3
|    ntfs         Windows
|                       EC0AC1070AC0CFAE                      402.8G    15% /windows
`-nvme1n1p4
     ntfs         WinRE_DRV
                        0EFEC19BFEC17C09

答え1

私が知っている限り、現時点では実際には方法がありません。ブートローダー最初にWSLによって「初期化」されなかったドライブのWSLインスタンス。

しかし、少なくとも2つの可能な解決策があります。どちらもWindows 11または少なくともWindows 10の開発者/ビルドバージョンが必要です。

  1. ただ訪問したい場合文書他のWSL2インスタンス内でArchパーティションにアクセスするのは非常に簡単です。次のコマンドを使用して、既存の物理パーティションをマウントできます。ここに記載されているマイクロソフトの指示

  2. 本当に欲しいなら使用WSL2のArchパーティションの場合、状況はもう少し複雑ですが、chroot別のWSL2インスタンスからアクセスできるように設定しても可能です。

    これはいくつか付属しています巨大指示:

    • WSL2はSystemdを直接サポートしません。動作させる方法はたくさんありますが、すべて古い解決策です。
    • 関連 - Archシステムは起動時にSystemdに依存する可能性が高いため、必要なサービスのほとんどを他の方法で直接起動する必要があります。
    • Systemdを実行しても、物理ハードウェアを使用できる必要があるいくつかのタスクを実行します。たとえば、X/Wayland を起動しようとします。 WSLの場合、これはWSLgインスタンスで処理する必要があります。

    このパスを選択するには、次の手順を実行する必要があります。

    • 必要なLinuxパーティションをマウントします。パーティションディスクのマウントに使用されたのと同じWSL2文書に従います。

    • 最小の「ブートストラップ」WSL2インスタンスを作成します。これが長期的なソリューションであれば、おそらく「ライト」なので、デフォルトのディストリビューションとしてAlpineを使用します。しかし、Same as Ubuntuのように、もう少し「完璧な機能」(すぐに利用可能)で始めるのが最も簡単な方法です。私はchroot過去に既存のUbuntuディストリビューションを使って同様のことをしました。

    • chroot用のディレクトリを作成します。

    • sudo mount --bind(バインドマウント)マウントされたパーティションは、デフォルトの場所(通常は/mnt/wsl)から適切な場所(つまり、rootfsパーティションのchrootディレクトリ自体と/homeパーティションのホームディレクトリ)に移動されます。

    • 最も要求の厳しい部分は、すべてのWSL特殊マウントとソケットをchrootで使用できるようにすることです。私は以前に文書に記載されているようにこれを行ったことがあります。ここ、Archの場合も同様でなければなりません。つまり、必要に応じて、デュアルブートで再利用できるように「元に戻す」ことができるように、すべての変更を記録してください。

      WSLは通常、プロセスを介してこのタスクの大部分を設定します/initが、Aではchroot手動で実行する必要があります。関連するディレクトリ、ファイル、ソケットは少なくとも次のとおりです。

      • /mnt/wsl: resolv.confWSL 生成を含む
      • /etc/resolv.conf:生成されたバージョンへのシンボリックリンクが必要です。
      • /mnt/wslg:グラフィカルアプリケーションを実行するためにWSLg Westonディストリビューションと通信するために使用されます。
      • mnt/wslg/.X11-unix/(Xソケット)
      • /run/WSL:Windowsとの相互運用性のため
      • /dev
      • /proc
      • /dev/pts
      • /sys
      • /binfmt_misc: .exeWindowsを実行している場合

関連情報