You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
5.3 KiB
124 lines
5.3 KiB
\chapter{WSL2 安装配置}
|
|
|
|
\section{WSL2 系统导入导出}
|
|
在 powershell 或者 cmd 窗口进行 wsl2 系统的导入导出:
|
|
\begin{enumerate} [(1),nosep]
|
|
\item 查看子系统是否运行:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
wsl -l --running
|
|
\end{minted}
|
|
\item 终止子系统运行:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
wsl -t <子系统名>
|
|
\end{minted}
|
|
\item 备份子系统:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
wsl --export <子系统名> <保存路径>
|
|
\end{minted}
|
|
例如:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{pwsh}
|
|
wsl --export Ubuntu-22.04 e:\ubuntu-22.04-wsl2.zip
|
|
\end{minted}
|
|
\item 注销子系统:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
wsl --unregister <子系统名>
|
|
\end{minted}
|
|
|
|
\item 恢复子系统:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
wsl --import <子系统名> <子系统安装路径> <子系统保存路径>
|
|
\end{minted}
|
|
例如:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{pwsh}
|
|
wsl --import Ubuntu-22.04 e:\wls2\ubuntu2204 e:\ubntu-22.04-wsl2.zip
|
|
\end{minted}
|
|
\item 修改默认登录用户:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
wsl --distribution Ubuntu-22.04 --user <user>
|
|
\end{minted}
|
|
或者:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
<子系统名>.exe config --default-user <默认用户名>
|
|
\end{minted}
|
|
例如:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
ubuntu2204.exe config --default-user <默认用户名>
|
|
\end{minted}
|
|
\end{enumerate}
|
|
|
|
\section{vhd 文件挂载}
|
|
\subsection{Windows 下用 WSL 工具}
|
|
使用 Microsoft Store 中的 WSL 可以直接挂载:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
wsl --mount --vhd <pathToVHD>
|
|
\end{minted}
|
|
例如:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small,style=bw]{pwsh}
|
|
wsl --mount --vhd e:\wsl2\rk3588\rk3588.vhdx --partition 1 --name rk3588
|
|
\end{minted}
|
|
|
|
\subsection{linux 下用 qemu-nbd}
|
|
安装 qemu-nbd 工具:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
apt-get install qemu-utils
|
|
\end{minted}
|
|
加载 nbd 驱动:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
modprobe nbd nbds_max=64
|
|
\end{minted}
|
|
用 qemu-nbd 加载:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
qenum-nbd -c /dev/nbd0 /path/to/vhdx
|
|
\end{minted}
|
|
|
|
\section{USB 设备共享}
|
|
在 windows 上安装 \href{https://github.com/dorssel/usbipd-win/releases}{usbipd-win}。使用方法可以参考这里:\\
|
|
\url{https://learn.microsoft.com/zh-cn/windows/wsl/connect-usb}。
|
|
|
|
共享 usb 设备可以按以下步骤进行:
|
|
|
|
\begin{enumerate}[(1), nosep]
|
|
\item 通过以管理员模式打开 PowerShell 并输入以下命令,列出所有连接到 Windows 的 USB 设备。 列出设备后,选择并复制要附加到 WSL 的设备总线 ID:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
usbipd list
|
|
\end{minted}
|
|
\item 在附加 USB 设备之前,必须使用命令 usbipd bind 来共享设备,从而允许它附加到 WSL。 这需要管理员权限。 选择要在 WSL 中使用的设备总线 ID,然后运行以下命令。
|
|
运行命令后,请再次使用命令 usbipd list 验证设备是否已共享:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
usbipd bind --busid 2-1
|
|
\end{minted}
|
|
\item 若要附加 USB 设备,请运行以下命令。 (不再需要使用提升的管理员提示。)确保 WSL 命令提示符处于打开状态,以使 WSL 2 轻型 VM 保持活动状态。
|
|
请注意,只要 USB 设备连接到 WSL,Windows 将无法使用它。 附加到 WSL 后,任何作为 WSL 2 运行的分发版本都可以使用 USB 设备。
|
|
使用 usbipd list 验证设备是否已附加。 在 WSL 提示符下,运行 lsusb 以验证 USB 设备是否已列出,并且可以使用 Linux 工具与之交互:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
usbipd attach --wsl --busid 2-1
|
|
\end{minted}
|
|
\item 打开 Ubuntu(或首选的 WSL 命令行),使用以下命令列出附加的 USB 设备:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
lsusb
|
|
\end{minted}
|
|
\item 在 WSL 中完成设备使用后,可物理断开 USB 设备,或者从 PowerShell 运行此命令:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
usbipd detach --busid <busid>
|
|
\end{minted}
|
|
\end{enumerate}
|
|
|
|
\section{Windows 端口转发}
|
|
按下面的步骤进行设置:
|
|
\begin{enumerate}[(1), nosep]
|
|
\item 管理员权限启动windows powershell,运行如下代码。这里以设置80端口转发WSL的地址的80端口为例:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{pwsh}
|
|
netsh interface portproxy add v4tov4 listenport=80 \
|
|
listenaddress=0.0.0.0 connectport=80 \
|
|
connectaddress=172.19.11.104 protocol=tcp
|
|
\end{minted}
|
|
\item 查看端口转发情况:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{bash}
|
|
netsh interface portproxy show all
|
|
\end{minted}
|
|
\item 删除端口转发:
|
|
\begin{minted}[bgcolor=lightgray!30,fontsize=\small]{pwsh}
|
|
netsh interface portproxy delete v4tov4 listenport=80 \
|
|
listenaddress=0.0.0.0
|
|
\end{minted}
|
|
\end{enumerate}
|
|
|