迁移 Ubuntu
1.下载LxRunOffline工具

2. 解压到一个自己平时安装软件的目录,并配置环境变量
重启电脑,打开命令行工具,输入LxRunOffline,如果显示下面的提示证明已经安装成功了
(c) 2019 Microsoft Corporation。保留所有权利。
C:\Users\86188>LxRunOffline
[ERROR] No action is specified.
Supported actions are:
l, list List all installed distributions.
gd, get-default Get the default distribution, which is used by bash.exe.
sd, set-default Set the default distribution, which is used by bash.exe.
i, install Install a new distribution.
ui, uninstall Uninstall a distribution.
rg, register Register an existing installation directory.
ur, unregister Unregister a distribution but not delete the installation directory.
m, move Move a distribution to a new directory.
d, duplicate Duplicate an existing distribution in a new directory.
e, export Export a distribution's filesystem to a .tar.gz file, which can be imported by the "install" command.
r, run Run a command in a distribution.
di, get-dir Get the installation directory of a distribution.
gv, get-version Get the filesystem version of a distribution.
ge, get-env Get the default environment variables of a distribution.
se, set-env Set the default environment variables of a distribution.
ae, add-env Add to the default environment variables of a distribution.
re, remove-env Remove from the default environment variables of a distribution.
gu, get-uid Get the UID of the default user of a distribution.
su, set-uid Set the UID of the default user of a distribution.
gk, get-kernelcmd Get the default kernel command line of a distribution.
sk, set-kernelcmd Set the default kernel command line of a distribution.
gf, get-flags Get some flags of a distribution. See https://docs.microsoft.com/en-us/previous-versions/windows/desktop/api/wslapi/ne-wslapi-wsl_distribution_flags for details.
sf, set-flags Set some flags of a distribution. See https://docs.microsoft.com/en-us/previous-versions/windows/desktop/api/wslapi/ne-wslapi-wsl_distribution_flags for details.
s, shortcut Create a shortcut to launch a distribution.
ec, export-config Export configuration of a distribution to an XML file.
ic, import-config Import configuration of a distribution from an XML file.
sm, summary Get general information of a distribution.
version Get version information about this LxRunOffline.exe.
C:\Users\86188>
3.查看所有已安装的发行版
C:\Users\86188>LxRunOffline l
Ubuntu
docker-desktop
docker-desktop-data
C:\Users\86188>
4. 打开Windows10发者模式

5.移动子系统到指定文件夹
C:\Users\86188>LxRunOffline move -n Ubuntu -d D:\WinLinux
C:\Users\86188>LxRunOffline move -n docker-desktop-data -d D:\WinLinux\docker-desktop-data
C:\Users\86188>LxRunOffline move -n docker-desktop -d D:\WinLinux\docker-desktop
C:\Users\86188>
6.到指定文件夹下去看看,发现都多了一个ext4.vhdx文件


7.重启电脑校验迁移的功能是否正常
打开控制台输入 wsl -l -v 结果如下面所示说明子系统和docker都运行正常
C:\Users\86188>wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
docker-desktop Running 2
docker-desktop-data Running 2
C:\Users\86188>
WSL2扩容
1.在Linux中检查可用磁盘空间
使用 Linux df -h 命令检查随 WSL 2 一起安装的 Linux 分发版 VHD 中的可用磁盘空间量:

2.在Windows中检查
在Windows上检查可用磁盘空间,打开 PowerShell 命令行并输入此命令, (替换为 <distribution-name> 实际分发名称) :
wsl.exe --system -d <distribution-name> df -h /mnt/wslg/distro
输出将包括:
文件系统:VHD 文件系统的标识符
大小:磁盘的总大小 (分配给 VHD) 的最大空间量
已用:VHD 中当前使用的空间量
可用:VHD (分配大小中剩余的空间量减去)
Use%:已用/已分配大小(剩余磁盘空间的百分比)
装载位置:装载磁盘的目录路径
如图:
WSL 分配给 VHD 的磁盘空间量在最新版本的 WSL中始终显示默认最大为1TB,即使实际 Windows 设备上的磁盘空间量小于此大小。 WSL 将装载一个 VHD,该 VHD 将在使用时扩展其大小,因此 Linux 分发版会发现它可以增长到分配的最大大小 1TB。
3.扩展 WSL 2 虚拟硬盘的大小
(1)使用wsl.exe --shutdown 命令终止所有 WSL 实例
(2)查找 Linux 分发版的 .vhdx 文件和磁盘路径
打开 PowerShell 并使用以下脚本,将 distribution-name替换为实际分发名称:
(Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | Where-Object { $_.GetValue("DistributionName") -eq '<distribution-name>' }).GetValue("BasePath") + "\ext4.vhdx"
显示: %LOCALAPPDATA%\Packages\<PackageFamilyName>\LocalState\<disk>.vhdx的路径。当然,如果你的WSL 2不是装在C盘,则会显示:

将此目录路径复制到与计算机上安装的 Linux 分发版关联的 ext4.vhdx 文件。
(3)使用管理员权限打开 Windows 命令提示符,然后通过输入以下命令打开 diskpart 命令解释器:
diskpart
(4)现在会出现一个 DISKPART> 提示。 输入以下命令,将 pathToVHD替换为步骤 2中复制的与 Linux 分发关联的文件的目录路径 ext4.vhdx
Select vdisk file="<pathToVHD>"

(5)显示与此虚拟磁盘关联的详细信息,包括 虚拟大小,表示当前分配的 VHD 最大大小:
detail vdisk

(6)将虚拟大小转换为兆字节
例如,如果虚拟大小:1024 GB,则将其转换为 1024000。 你输入的新值必须大于此原始值。 例如,若要将 1024GB 的虚拟大小加倍到 2048GB,需要转换为 MB 并输入值 :2048000。
(7)使用 Windows 命令提示符 DISKPART> 提示输入要分配给此 Linux 发行版的新最大硬盘空间的值

(8)退出 DISKPART> 提示
exit
(9)启动此 Linux 分发版。确保它在 WSL 2 中运行。可以使用命令确认这一点: wsl.exe -l -v
(10)让 WSL 知道它可以通过从 WSL 分发命令行运行这些命令来扩展此分发的文件系统大小
sudo mount -t devtmpfs none /dev
mount | grep ext4
可能会看到以下消息,它响应第一个 mount 命令:mount: /dev: none already mounted on /mnt/wsl.可以放心地忽略此消息。

(11)复制10中得到的名称,用于修改硬盘空间大小
该名称类似于:/dev/sdX(X 表示任何其他字符)。 在下面的示例中,X 的值是 c:
sudo resize2fs /dev/sdc <sizeInMegabytes>M
使用上面的示例,我们将 vhd 大小更改为 2048000,因此命令为: sudo resize2fs /dev/sdc 2048000M
可能需要安装 resize2fs。 如果是这样,可以使用此命令进行安装:sudo apt install resize2fs
输出将类似于以下内容:
resize2fs 1.45.5 (07-Jan-2020)
/dev/sdc 上的文件系统已被挂载于 /;需要进行在线调整大小
old_desc_blocks = 128, new_desc_blocks = 250
/dev/sdc 上的文件系统大小已经调整为 524288000 个块(每块 4k)。
4.结果

本文介绍了如何使用LxRunOffline工具迁移Ubuntu在Windows10上的WSL2安装,包括查看已安装的发行版,移动子系统到指定文件夹,以及验证迁移后功能的正常性。此外,还详细讲解了如何检查和扩展WSL2的虚拟硬盘大小,涉及磁盘part命令和resize2fs命令的使用。

1万+

被折叠的 条评论
为什么被折叠?



