迁移 Ubuntu到任意盘与WSL2扩容

迁移 Ubuntu

1.下载LxRunOffline工具

迁移 Ubuntu到任意盘与WSL2扩容_第1张图片

 2. 解压到一个自己平时安装软件的目录,并配置环境变量

迁移 Ubuntu到任意盘与WSL2扩容_第2张图片 

迁移 Ubuntu到任意盘与WSL2扩容_第3张图片 

重启电脑,打开命令行工具,输入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发者模式

迁移 Ubuntu到任意盘与WSL2扩容_第4张图片

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 命令行并输入此命令, (替换为  实际分发名称) :

wsl.exe --system -d 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 '' }).GetValue("BasePath") + "\ext4.vhdx"

显示: %LOCALAPPDATA%\Packages\\LocalState\.vhdx的路径。当然,如果你的WSL 2不是装在C盘,则会显示:

在这里插入图片描述

将此目录路径复制到与计算机上安装的 Linux 分发版关联的 ext4.vhdx 文件。 

(3)使用管理员权限打开 Windows 命令提示符,然后通过输入以下命令打开 diskpart 命令解释器:

diskpart

(4)现在会出现一个 DISKPART> 提示。 输入以下命令,将 pathToVHD替换为步骤 2中复制的与 Linux 分发关联的文件的目录路径 ext4.vhdx 

Select vdisk file=""

 在这里插入图片描述

(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

使用上面的示例,我们将 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.结果

在这里插入图片描述

 

你可能感兴趣的:(ubuntu,linux,运维)