admin 管理员组

文章数量: 887021

在Windows10上安装CentOS7子系统

由于客户使用的服务器主要是linux的系统,redhat或centos等,而日常办公更多的是使用windows系统,这样就导致有时候做一些调试或者问题复现,需要再申请一台虚拟机,搞得很麻烦。偶尔可能由于网络问题,也无法正常链接到公司的网络,就会导致问题处理效率下降。本文介绍一种在Win10的PC机上安装CentOS7子系统的方法。


准备资料

PowerShell

windows命令行工具。本文所述操作,大多在PowerShell上执行。

LxRunOffline

由于我们安装的CentOS系统在微软商店上没有官方镜像,我们需要使用此工具完成安装。下载后安装到本机备用。

  • LxRunOffline-gitee下载

  • LxRunOffline-github下载

CentOS7的docker镜像

用于安装wsl子系统的镜像包。

  • centos-7-docker.tar.xz

  • centos7官方镜像

WSL2更新包

为了解决部分权限问题,我们需要升级到wsl2。 wsl_update_x64.msi

关于wsl,可以查阅官网资料:什么是适用于 Linux 的 Windows 子系统 | Microsoft Docs

关于wsl1和wsl2的区别,可以查阅官网资料:比较 WSL 1 和 WSL 2 | Microsoft Docs

安装WSL

启用适用于 Linux 的 Windows 子系统

需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。

以管理员身份打开 PowerShell 并运行:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

检查WSL2的运行要求

若要更新到 WSL 2,需要运行64位Win10系统:版本 1903 或更高版本。

查看版本的方法,powershell执行:winver

启用虚拟机功能

安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。

以管理员身份打开 PowerShell 并运行:dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重新启动 计算机,以完成 WSL 安装并更新到 WSL 2。

安装WSL2的Linux内核更新包

运行WSL2更新包 wsl_update_x64.msi。 (双击以运行 - 系统可能提示你需要提升权限,选择“是”以完成此安装。)

将 WSL 2 设置为默认版本

打开 PowerShell,将 WSL 2 设置为默认版本:wsl --set-default-version 2

安装WSL2子系统centos7

安装centos7

使用lxRunOffline安装WSL子系统。

命令格式:LxRunOffline install -n 自定义系统别名 -d 安装目录路径 -f 安装包路径.tar.xz

执行命令完成安装(注意替换系统别名、安装路径、安装包路径):LxRunOffline install -n centos7 -d D:\wsl -f F:\Download\centos-7-docker.tar.xz

安装失败或者不再使用此wsl,也可以卸载:LxRunOffline.exe uninstall -n 待卸载的系统别名

安装后的确认

安装完成后,使用wsl的查询命令查看已安装的wsl子系统列表和运行状态:wsl -l -v

也可以使用LxRunOffline list查看已安装的wsl子系统列表

如果查到的wsl列表中version为1,则表示该子系统为wsl 1的版本。

使用wsl --set-version centos7 2转换为wsl 2版本。注意,centos7是已安装的系统别名,需要根据实际情况替换名称,下文亦如此,不再赘述

如果安装了多个wsl子系统,可以使用wsl --set-default centos7设置centos7为默认的子系统。

启动

使用wsl或bash命令启动默认的子系统。

使用wsl -d centos7启动指定的子系统。

关闭

使用wsl --shutdown关闭所有wsl子系统。

使用wsl --shutdown -n centos7关闭指定的wsl子系统。

安装Windows Terminal原生工具

打开Microsoft Store搜索并安装Windows Terminal。安装完成后根据个人喜好配置和优化。

Windows Terminal帮助说明

请参考官方资料:Windows 终端安装 | Microsoft Docs

善后工作

注意:使用官方镜像安装后,root用户缺少环境变量,需要自行配置。一种简单的方法是创建一个新用户,把该用户的.bash开头的文件拷贝过来。操作命令依次是useradd testxcp /home/testx/.* /root/source .bash_profile

设置root密码

打开wsl后,使用passwd设置root用户密码。

修改hosts文件

首先使用ip addr或者ifconfig命令查看当前服务的ip地址,使用hostname查看主机名。

然后编辑/etc/hosts文件,修改后参考:

 127.0.0.1       localhost #仅保留这一条127.0.0.1的配置
 192.168.111.111 H1-11111WSC #根据上边查到的ip hostname设置这一条记录
 # The following lines are desirable for IPv6 capable hosts,以下ipv6的配置如不使用ipv6可以不管
 ::1     ip6-localhost ip6-loopback
 fe00::0 ip6-localnet
 ff00::0 ip6-mcastprefix
 ff02::1 ip6-allnodes
 ff02::2 ip6-allrouters

修改yum源

 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun/repo/Centos-7.repo
 curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun/repo/epel-7.repo
 # 改点东西
 sed -i -e '/mirrors.cloud.aliyuncs/d' -e '/mirrors.aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
 # 刷新缓存
 yum makecache

更新本地包

 yum update -y

安装一些常用的包

 yum install -y NetworkManager net-tools bind netstat ncat iptables
 yum install -y abrt alias alias-lib autoconfig autoconf ModemManager lrzsz mlocate bash-completion
 yum install -y libaio color-filesystem colord epel-release file gcc gcc-c++ http-parser java lshw lsof
 yum install -y man nmap ntp openssh-server pciutils perf python3 rsyslog tcpdump telnet-server telnet
 yum install -y traceroute tracker unzip usermode vim xml xml-common yum-langpacks zip gdb htop iproute

配置ssh服务

修改/etc/ssh/sshd_config文件,新增如下内容:

 设置开放的ssh端口,默认是22,防止和主机冲突,我们设置为2222
 Port 2222
 # 允许root远程登录
 PermitRootLogin yes   
 # 允许密码验证登录
 PasswordAuthentication yes     
 # 远程登录时的用户名
 AllowUsers root 

生成密钥:

 ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
 ssh-keygen -t ecdsa -b 256 -f /etc/ssh/ssh_host_ecdsa_key
 ssh-keygen -t ed25519 -b 256 -f /etc/ssh/ssh_host_ed25519_key

启动sshd服务:

 /usr/sbin/sshd

注意事项

由于wsl是部署在windows系统上的linux子系统,资源与windows系统共享,所以,涉及系统底层管理的命令会被禁用,请知悉。譬如:systemctl、hostnamectl等。

本文标签: 子系统