迁移 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.结果