原文地址:Window10安装linux子系统及子系统安装1Panel面板 – Stars-One的杂货小窝

最近看到halo博客发布了2.10.0,终于是新增了个备份功能,于是有了念头想要升级下

但是目前我还是使用halo1.5版本,所以跨版本迁移可能会有问题,官方提议还是先用个测试环境进行测试验证是否有问题

但由于2.x版本之后,官方是不提供jar包方式,而是改用docker来进行部署,对于docker不太熟悉的我选择了1Panel面板来安装(不过1Panel面包和宝塔类似,都是属于Linux系统的管理工具)

所以首先得有Linux系统,但手头没有Linux系统,服务器生产环境不太想乱动,也不太想安装个虚拟机,之前有了解过window10系统新增了linux的子系统可以使用,于是就有了这篇文章

本篇文章包含window10系统安装子系统Linux以及如何把Linux系统迁移到其他盘(默认是安装C盘)

由于我是研究成功之后才根据之前的做法回想做的记录,可能有些步骤没写全,各位仅供参考

安装步骤1.前提配置和资源下载

开启配置:

下载安装下面的msi文件:
wsl_update_x64.msi文件下载: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

下载并更新wsl为wsl2版本,到Releases · microsoft/WSL手动下载最新版本的安装包wsl.2.0.4.0.x64.msi,之后安装即可(这个因为后面我安装1Panel面板需要用到systemd命令,需要更新环境才成功启动1Panel)

下载Unbuntu22.04的镜像,之后备用:
https://www.crxsoso.com/store/detail/9PN20MSR04DW

可以将上面的配置开启和软件都安装后,重启电脑再进行下一步

2.安装镜像

上面的Unbuntu22.04镜像文件,实际就是微软应用商店的安装包,我们直接安装就可以(它会默认安装到C盘,之后我们再讲如何将它移动到其他盘)

安装的时候会弹出一个powershell的命令行窗口,之后会提示我们输入一个默认账号和密码(下面的截图因为当时是研究迁移,所以有报错,不过重点就是后面输入账号的部分,错误提示可以忽略哈)

之后输入完密码后,就可以启动系统了(上安装完后命令行是自动帮我们启动了系统)

之后我们设置下root账号的密码即可,linux命令如下

sudo passwd root

上面的命令会先让我们输入上面我们设置的默认账号密码,之后才是输入root的账号密码和二次密码确认

之后切换到root账号命令:

su root

输入我们上面的root账号的密码即可切换成功(即左边的$变为#)

PS: 可以通过开始菜单的Ubuntu22.04来启动或者通过输入wsl来启动,这个命令可以在cmd命令行或者powershell命令窗口输入

3.Linux系统使用国内仓库源

由于账号需要使用到ifconfig来查看IP地址信息,所以要先设置下使用国内的Linux软件仓库源

1、将系统源文件复制一份备用

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2、用vi编辑器打开源文件

sudo vi /etc/apt/sources.list

3、找到国内源复制粘贴

阿里源地址https://developer.aliyun.com/mirror/?spm=a2c6h.12883283.1364563.38.6c69201cmnp0oi

输入49dd清除全部内容,如果你的是22.04版本,可以直接复制下面内容

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

在vim编辑器按下shift+insert实现粘贴

输入:wq 保存并退出

更新系统仓库源:

sudo apt-get -y update && sudo apt-get -y upgrade

4.Linux安装ifconfig

由于我们需要查看ip地址,需要需要先安装此工具

sudo apt-get install net-tools

查询ip地址命令

ifconfig

下面截图得到我们的IP地址

迁移系统

上面我们成功了安装完Linux系统,但是由于它是默认放在C盘,为了防止C盘爆红,所以决定将其迁移到D盘

刚开始参考的一篇文章教程,先是使用的wsl,然后再切换为wsl2,步骤很多,到最后,迁移是成功了,但是却午无法启动Linux系统了…

他的思路也就是利用了wsl支持导出和导入,于是基于他的思路尝试了下,发现居然完美成功了

1.导出wsl系统

  1. 设置当前wsl版本为wsl2
wsl --set-default-version 2

设置的时候可能会出错,原因就是你没有按照上面配置开启window平台的虚拟化平台

如果开启了还报错,可以试着输入下面2个命令其中之一(我这里是没有报错的)

报错输入下面的命令,2选一bcdedit /set hypervisorlaunchtype autobcdedit /set hypervisorlaunchtype off
  1. 导出子系统镜像备份
查看镜像实例名wsl -l -v打包输出备份,导出到D盘,文件名为export.tarwsl --export Ubuntu-22.04 D:/export.tar注销实例,实际会将磁盘里的子系统文件删除wsl --unregister Ubuntu-22.04

上面的Ubuntu-22.04就是从查询得到的,如果你是安装的其他版本,记得要爱夏

  1. 导入子系统镜像备份
重新安装,第一个目录就是你要将子系统安装的目录位置wsl --import Ubuntu-22.04 D:\app\dev\Ubuntu_22_04\ D:\export.tar --version 2设置默认子系统wsl --setdefault Ubuntu-22.04 启动wsl -d Ubuntu-22.04 

之后可以发现迁移已完成

安装1Panel

Ubuntu系统安装命令:

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

启动失败说明

上面已经说了,因为要安装1Panel需要sytemd,需要更新下wsl环境即可,之后的是我一些随手记的问题和资料文章,随便看看就好

但是启动的时候提示失败了

查看官方文档操作系统相关 – 1Panel 文档

给出的建议是我们需要升级wsl,输入wsl --version,看了下自己的版本比较低的

This change is only available in the Microsoft Store version of WSL version 0.67.6 and higher

因为我不想开启window更新设置,所以可以到Releases · microsoft/WSL手动下载安装包,之后安装即可

WSL需要是从Microsoft Store下载安装的版本(即上面的Github链接的),而不是Windows自带的WSL
在命令行执行:

C:>wsl –version
如果结果没有显示如下的输出,而是提示参数使用错误的信息,那使用的WSL是Windows自带的版本,不是可用的版本,需要替换(即上面说的更新wsl)

WSL 版本: 1.0.3.0内核版本: 5.15.79.1WSLg 版本: 1.0.47MSRDC 版本: 1.2.3575Direct3D 版本: 1.606.4DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hypWindows版本: 10.0.19045.2486

此命令查看是否systemd可用

systemctl status | cat

遇到的问题1.初次安装系统的时候出现Wsl/Service/0x8007273d

window wsl2 打开 出现 Wsl/Service/0x8007273d

原因是用了安装了VPN代理软件导致虚拟网卡被占用,卸载即可解决

或者是可以考虑降低wsl2为1(不推荐此做法)

参考

  • 在 Win11安装 Ubuntu20.04子系统 WSL2 到其他盘(此处为D盘,因为C盘空间实在不能放应用)-CSDN博客
  • WSL 的基本命令 | Microsoft Learn
  • 旧版 WSL 的手动安装步骤 | Microsoft Learn
  • Windows安装Linux子系统_windows 安装linux子系统_小白华的博客-CSDN博客
  • Windows下Linux子系统(WSL)完美安装流程 – 简书
  • wsl2更新后,报错0x8007273d解决方案-CSDN博客
  • 在WSL中使用systemd – 简书
  • 1Panel – 现代化、开源的 Linux 服务器运维管理面板
  • 在Windows10 WSL 2 上启用微软官方支持Linux GUI和systemd – 知乎

提问之前,请先看提问须知点击右侧图标发起提问或者加入QQ群一起学习TornadoFx学习交流群:1071184701<!––>