非系统盘安装linux,Windows10 Linux子系统安装/迁移到非系统盘(示例代码)

2023-11-17

oboth@DESKTOP-BUFOEB1:/mnt/c/Users/luoz$ /mnt/d/LxRunOffline.exe

一、通过wsl命令迁移、备份Linux分发

操作步骤

wsl(.exe)命令用法:

wsl -h

命令行选项无效:-h

版权所有 (c) Microsoft Corporation。保留所有权利。

用法: wsl.exe [参数] [选项...] [命令行]

用于运行 Linux 二进制文件的参数:

如果未提供命令行,wsl.exe 将启动默认的 shell。--exec, -e 执行指定的命令而不使用默认的 Linux shell。--按原样传递剩余的命令行。

选项:--distribution, -d 运行指定的分发。--user, -u 以指定用户身份运行。

用于管理适用于 Linux 的 Windows 子系统的参数:--export 将分发导出到 tar 文件。

对于标准输出,文件名可以是-。--import [选项]

将指定的 tar 文件作为新分发进行导入。

对于标准输入,文件名可以是-。

选项:--version 指定用于新分发的版本。--list, -l [选项]

列出分发。

选项:--all

列出所有分发,包括当前正在

安装或卸载的分发。--running

只列出当前正在运行的分发。--quiet, -q

只显示分发名称。--verbose, -v

显示有关所有分发的详细信息。--set-default, -s 将分发设置为默认值。--set-default-version 更改新分发的默认安装版本。--set-version 更改指定分发的版本。--shutdown

立即终止所有正在运行的分发和 WSL2轻型工具虚拟机。--terminate, -t 终止指定的分发。--unregister 注销分发。--help

显示用法信息。

在这之前可以通过wsl --terminate 的方式来先关闭相关的分发,以免后续造成不必要的问题。

然后通过wsl --export 选项导出Linux子系统.:

wsl--export Ubuntu-18.04 d:/Ubuntu-18.04.tar

Tips:此命令等效于:

cd /mnt/c/Users/luoz/AppData/Local/Packages/CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc/LocalState/rootfstar -cf /mnt/d/Ubuntu-18.04.tar ./*

等待数十分钟,生成tar文件,文件结构如下:

20200509192441643562.png

执行完后我们再通过wsl --unregister Ubuntu-18.04来注销这个分发,以便避免存在重复的分发,当然也可以不这样做,只是下面的命令需要指定一个不同的DistributionNam.

接下来通过wsl --import 来导入之前export完的分发:

wsl --import Ubuntu d:/install/tools/Ubuntu d:/Ubuntu-18.04.tar

此时我们就能通过wsl --list看到新导入的Linux分发了。

重新导入后的Linux分发版不再以APP的形式出现于开始菜单中:

这样操作以后不能像原来一样在开始菜单点击图标启动此Linux分发,其他并未改变。可以通过wsl -s Ubuntu命令、Windows terminal程序等方式启动。或者将其设为默认分发版,通过wsl、bash启动。

另一方面,不能像原来那样在应用商店里更新。

不存在原来那样的Ubuntu804.exe这样的命令。

如何配置wsl -import后的实例,默认以非root账户启动

在注册表中找到HKEY_USERSxxxSoftwareMicrosoftWindowsCurrentVersionLxss

xxx为你当前用户在注册表中的代号:

20200509192442042015.png

S-1-5-18:代表SYSTEM

S-1-5-19:代表LocalService

S-1-5-20:代表NetworkService

接下来的S-1-5-21-.....便是代表当前用户了。

接下来在Lxss下找到需要更改默认账户的分发版:

20200509192442139675.png

通过修改Lxss下的实例配置中的DefaultUid的值来修改wsl默认的用户。

可用的目标值可以通过在wsl中运行cat /etc/passwd获取,比如我这里用的是1000,换算成对应的16进制数字是3e8。

20200509192442236358.png

20200509192442284211.png

此时就大功告成,默认启动不再是root用户了。

二、通过LxRunOffline实现

个人分析此命令是通过修改注册表里面的路径以实现无损迁移的。

在项目地址里下载得到LxRunOffline命令。

LxRunOffline的功能很多,迁移只是功能之一:

oboth@DESKTOP-BUFOEB1:/mnt/c/Users/luoz$ /mnt/d/LxRunOffline.exe

[ERROR] No action is specified.

Supported actions are:

l, list List all installed distributions.

gd, get-default Get the default distribution, whichis used by bash.exe.

sd, set-default Set the default distribution, whichis used by bash.exe.

i,installInstall 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 distributionina new directory.

e, export Export a distribution‘s filesystem to a .tar.gz file, which can be imported by the "install" comm

and.

r, run Run a commandina distribution.

di, get-dirGet the installation directory of a distribution.

gv, get-version Get the filesystem version of a distribution.

ge, get-envGet the default environment variables of a distribution.

se, set-envSet the default environment variables of a distribution.

ae, add-envAdd to the default environment variables of a distribution.

re, remove-envRemove 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 fordetails.

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 fordetails.

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.

可以看到LxRunOffline.exe包含了很多wsl.exe的功能。

开始迁移:

首先用LxRunOffline.exe list或者wsl.exe -l命令查看你可以使用子系统名称。

然后使用 lxrunoffline move 进行迁移 , -n 指定你要迁移的系统名 ,-d 指定你新系统的迁移路径。

.LxRunOffline.exe move -n Ubuntu -d d:installoolsUbuntu

迁移过程会出现WARNING 不用管, 等待一段时间结束就算迁移完成了。

20200509192442336948.png

使用LxRunOffline.exe get-dir 查询系统目录,可见已经更改成功。

PS C:Usersluoz> d:LxRunOffline.exe get-dir -n Ubuntu

d:installoolsUbuntu

三、不同发行版镜像交换/迁移

由于我最开始在应用商店下载了Ubuntu18.04 LTS,后来在子系统内升级到了Ubuntu20.04 LTS。但是名字还是显示Ubuntu18.04,并且后续也不能在应用商店内跟随升级。

但应用商店内的Ubuntu确一直保持在最新LTS版本,可以在应用商店内保持更新。

20200509192442409216.png

迫于强迫症的我,想要换到Ubuntu包,但又想保持Ubuntu18.04内的最新镜像和软件。于是试出了以下方法。

1、首先将Ubuntu和Ubuntu1804都转换为wsl2。

PS D:> wsl --set-version Ubuntu 2PS D:> wsl --set-version Ubuntu1804 2

2、进到各自的目录交换ext4.vhdx文件。

20200509192442452187.png

3、大功告成。若出现unregister错误只需用LxRunOffline重新注册一下即可。

PS C:Usersluoz> d:LxRunOffline.exe register -n Ubuntu-18.04 -d D:installoolsUbuntu1804

至此,镜像已经交换啦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

非系统盘安装linux,Windows10 Linux子系统安装/迁移到非系统盘(示例代码) 的相关文章

  • java web项目答辩答辩题总结(书本网上语言答辩+自己的语言答辩)

    答辩每个人的总分为1 5分 每个人主要问3个问题 开发流程 系统架构 项目模块 功能 项目得失重定向与转发 九个隐式对象 get与post的区辨 jsp有静态包含 动态包含 两者的区辨 什么是MVC web系统架构 java web项目答辩
  • 虚拟机ubuntu18.04桥接模式详解

    背景 虚拟机ubuntu18 04桥接模式下 配置静态ip 配置静态ip vim etc network interfaces 具体配置如下 auto lo iface lo inet loopback auto ens33 iface e
  • 算法题Day6-第三大的数

    给定一个非空数组 返回此数组中第三大的数 如果不存在 则返回数组中最大的数 要求算法时间复杂度必须是O n 示例 1 输入 3 2 1 输出 1 解释 第三大的数是 1 示例 2 输入 1 2 输出 2 解释 第三大的数不存在 所以返回最大
  • SQL查询结果按照指定内容排序

    一般来说 我们在开发SQL脚本的时候 遇到需要排序的内容 用order by需要排序的字段就可以满足我们排序的需求 asc为升序 desc为降序 不指定关键字默认为升序 但是有时候 我们需要的排序不仅仅是升序和降序 asc与desc并不能满
  • Kibana 7.X 导出CSV报告

    背景 由于有时候需要基于日志做一些处理 由官网得知 ES7 3 0发布的新特性 从保存的搜索中导出CSV 我们的Kibana刚好是7 3 0 于是将自己的使用经验及解决的问题 分享给有需要的小伙伴 一 使用步骤 1 1 保存搜索 Disco
  • Spring Cloud 与 Dubbo 冲突吗——强强联合

    微服务开发选型 到底是基于 Dubbo 还是 Spring Cloud 相信不少开发的小伙伴都有拿这两个项目作过作比较的经历 本章节就带你走近这两个项目 二者究竟是竞争发展还是融合共赢 项目发展简介 我们还是先来看看 Dubbo 的发展历史
  • (递归)杨辉三角实现

    问题描述 杨辉三角形又称Pascal三角形 它的第i 1行是 a b i的展开式的系数 它的一个重要性质是 三角形中的每个数字等于它两肩上的数字相加 下面给出了杨辉三角形的前4行 1 1 1 1 2 1 1 3 3 1 思路 可以用二维数组
  • c++ string替换指定字符串

    string fnd dataset string rep labels string buf d data dataset ii jpg buf buf replace buf find fnd fnd length rep 去掉由于wi
  • ubuntu不息屏、隐藏其他软件图标 小技巧

    1 有时想安静的写写代码 但是这时候ubuntu老是自动进入休眠状态 这是你可以进入 设置 gt system setting gt power gt Brightness Lock 或者直接搜索Brightness Lock 将Turn
  • Latex学习笔记二——Overleaf在线练习

    锵锵 本文是基于Overleaf的Latex学习的第二部分 目录 1 结构化文档 2 添加图表 让论文更生动可读 2 1 Graphics 2 2 Floats 2 3 Tables 3 Bibliographies 1 结构化文档 这一部
  • SQl语句查询重复数据 只显示其中一条

    SQL查询重复数据 只显示其中一条 有重复数据主要有以下几种情况 1 存在两条完全相同的纪录 这是最简单的一种情况 用关键字distinct就可以去掉 example select distinct from table 表名 where
  • 电子专业 英语词汇大全(持续更新)

    文章目录 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 序号 词汇的领域 1 软件 软件开发 2 计算机 计算机网络 多媒体 3 单片机 电子 电子仪器 通信 A 序号 词汇 描述
  • GD32 和 ST32的区别

    TIM重载寄存器 复位值不一样 xxx xxx xxx xxxx
  • 服务器如何查询配置信息吗,如何查看linux服务器的配置信息

    如何查看linux服务器的配置信息 内容精选 换一换 本节介绍如何查看云服务器的mac地址 云服务器的mac地址不支持修改 登录Linux云服务器 执行以下命令 查看云服务器的mac地址 ifconfig查看MAC地址ifconfig登录L
  • 解决子盒子把父盒子撑破问题

    场景 div class demo 父盒子 div class box div 子盒子 div 当你设置子盒子的padding和border的时候就会把父盒子撑破 因为子盒子的宽度是100 而浏览器的默认盒模型为content box 即内
  • 遇到argument of type ‘Word2Vec‘ is not iterable不要慌。。。

    重要的事开头说 不要以为是返回值的问题或参数的问题 因为很有可能你学的那个是个老文档 现在已经改变函数了 报这个错我这里的原因是word2vec构造出来的模型不能遍历 原来代码 if word in model model就是用word2v
  • 设计模式【精简概述, 应用场景】(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 Gof23设计模式分为三类 创建型模式 负责组件的创建 结构型模式 负
  • C++实现裴波那契数列——自顶向下递归

    随便写一下 没有整理 注释比较多 大家按需自取 include
  • gitlab 12.0.3_GitLab 13.0强调安全性

    gitlab 12 0 3 GitLab已发布其devops平台的13 0版 该平台集成了用于软件开发 部署和项目管理的工具 GitLab 13 0添加了许多新的安全性和协作功能 GitLab结合了Git开源分布式版本控制系统 持续集成和持

随机推荐

  • C/C++2019秋招面试题集合01

    C C 2019秋招面试题集合01 8 19 腾讯 提前批 客户端开发 1 给定一个字符串数组 和一个子串 求字符串中是否存在子串 如果存在则返回首个匹配到的索引位置 否则 返回 1 不能调用库函数 例如 字符串数组 Integrity P
  • 【小练习】windows与linux进行socket文件传输

    在Windows与Linux使用socket通信基础上 添加文件传输功能 需要进行简单的交互 目录 程序效果 实现流程 样例代码 测试用例 参考资料 程序效果 Windows客户端可以从Linux服务器端索要文件 也可以发送文件至Linux
  • matlab算法集

    matlab 算法集 自定义函数 1 高斯消去法 注 高斯消元法可以用来找出一个可逆矩阵的逆矩阵 设A 为一个N N的矩阵 其逆矩阵可被两个分块矩阵表示出来 将一个N N单位矩阵 放在A 的右手边 形成一个N 2N的分块矩阵B A I 经过
  • HTML的作用与功能,css是什么?有什么作用?

    css是什么 有什么作用 下面本篇文章就来给大家介绍一下CSS样式表 让大家对CSS有一个简单的了解 希望对大家有所帮助 一 CSS定义与解释 CSS是Cascading Style Sheets 层叠样式表单 的简称 CSS就是一种叫做样
  • 生成式对抗网络(GANs)综述

    GAN GAN简介 生成式对抗网络 Generative adversarial networks GANs 的核心思想源自于零和博弈 包括生成器和判别器两个部分 生成器接收随机变量并生成 假 样本 判别器则用于判断输入的样本是真实的还是合
  • main() 方法为什么必须是静态的

    静态 如果您声明方法 子类 块或静态变量 则将其与类一起加载 在Java中 只要需要调用 实例 方法 就应该实例化 包含它的 类并调用它 如果我们需要不实例化地调用方法 则它应该是静态的 此外 静态方法与类一起被加载到内存中 对于main方
  • EduSoho网校系统安装教程(三):nginx配置

    Ubuntu下nginx的配置 安装nginx sudo apt get install nginx 配置Nginx sudo vim etc nginx nginx conf 在http 添加 client max body size 1
  • mysql复制表的几种方式

    mysql复制表的几种方式 所描述的方法还请实际测试一下再使用 1 复制表结构及数据到新表 CREATE TABLE 新表SELECT FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来 当然我们可以用delete from
  • Exception对性能的影响

    我们知道 当程序发生异常时 会通过new调用异常的构造方法 在堆内存区域创建一个异常实例 而构造方法都是默认调用基类的Throwalbe的构造方法 下面我们看一下代码 public Throwable fillInStackTrace pu
  • webpack4 devserver 如何拦截请求 添加请求headers

    v4官网 https v4 webpack docschina org configuration dev server devserver proxy devServer 配置 devServer host 127 0 0 1 https
  • 使用ffmpeg将mp4转为m3u8并播放

    ffmpeg 下载地址 https ffmpeg zeranoe com builds 这个是我自己的ffmpeg 有积分的大佬可以任性下载 ffmpeg压缩包 下载解压之后需要将ffmpeg添加到环境变量中 cmd中输入 ffmpeg v
  • R语言与数据分析实战4-变量的创建与修改

    第1关 创建新变量 在进行实际的数据分析时 我们会经常需要创建新变量或者为当前存在的变量变换新的取值 这就好比你是一个厨师 现在你要创新菜式 需要做一些新的厨房模具或者是改良当前已有的厨具来进行烹饪 对于创建新变量 其实原理非常简单 大家只
  • shell-2-文本处理工具

    主题 文本处理工具 一 grep grep 全局搜索正则表达式 固定字符表示通用匹配 whatis grep man grep 查看grep用法 正则表达式分为两种 传统 扩展正则表达式 对应的 有两个命令 grep 传统 和 egrep
  • nginx应用指南

    一 nginx基本简述 最新更新 请点击这个里1 概念 nginx是一个开源且高性能 可靠的HTTP中间件 代理服务 开源 直接获取源代码 高性能 支持海量并发 2 nginx应用场景 静态处理 反向代理 负载均衡 资源缓存 安全防护 访问
  • Gson解析JSON数据中动态未知字段key的方法

    有时在解析json数据中的字段key是动态可变的时候 由于Gson是使用静态注解的方式来设置实体对象的 因此我们很难直接对返回的类型来判断 但Gson在解析过程中如果不知道解析的字段 就会将所有变量存储在一个Map中 我们只要实例化这个ma
  • 严格模式和非严格模式区别

    严格模式和非严格模式有什么区别 严格模式对正常的 JavaScript语义做了一些更改 首先 严格模式通过抛出错误来消除了一些原有静默错误 其次 严格模式修复了一些导致 JavaScript引擎难以执行优化的缺陷 有时候 相同的代码 严格模
  • mutex 互斥

    文章目录 互斥 mutex 类 要求 公共方法 注意 lock unlock try lock 相关参考 互斥 互斥算法避免多个线程同时访问共享资源 这会避免数据竞争 并提供线程间的同步支持 mutex 类 mutex 类是能用于保护共享数
  • 【程序开发】手把手教你写一个Python爬虫

    经常听音乐的的人有一个苦恼 很多自己喜欢的歌曲 因为各种原因无法进行免费下载 很多人没办法 只能咬咬牙开个会员 都是自己辛苦挣的人民币啊 幸好 我们还有爬虫 通过爬虫 我们可以很轻易 很快速的获取互联网上的资源 不管是音乐视频 还是工作和商
  • PPPoE协议详解

    PPPoE协议详解 PPPoE协议的工作流程包含发现和会话两个阶段 发现阶段是无状态的 目的是获得PPPoE终结端 在局端的ADSL设备上 的以太网MAC地址 并建立一个惟一的PPPoESESSION ID 发现阶段结束后 就进入标准的PP
  • 非系统盘安装linux,Windows10 Linux子系统安装/迁移到非系统盘(示例代码)

    oboth DESKTOP BUFOEB1 mnt c Users luoz mnt d LxRunOffline exe 一 通过wsl命令迁移 备份Linux分发 操作步骤 wsl exe 命令用法 wsl h 命令行选项无效 h 版权