在windows自带的虚拟机上安装Linux系统,小而稳
文章目录前言开始安装安装有问题的情况Linux系统网络问题虚拟机服务和宿主机公用一个ipWSL进入休眠问题跨系统访问文件常用的wsl命令基础软件安装nvm安装安装Gitnginx源码安装wsl虚拟机硬件分配设置及使用说前言以前想要在电脑跑一个Linux系统比较麻烦还需要安装虚拟机软件还要自己去找系统镜像现在就不需要了windows系统自带了虚拟机并且内置了系统镜像。但是win系统默认是没有安装的需要自己手动去安装并且这个虚拟机很轻量Linux的文件系统与win的文件系统是隔离的当然他们两者之间可以相互访问对方的文件这个后面会说。并且可以在虚拟机上安装多个系统。win11和win10都支持。开始之前你可能需要打开你电脑主板的虚拟化支持主板品牌不一样进入主板设置页面方式也不一样可自行搜索适合自己电脑的方式。另外就是需要具备一定的Linux系统的知识判断电脑是否开启了虚拟化支持鼠标右击电脑下方的状态栏点检 任务管理器点击 CPU 会有显示。虽然没有什么吊用但是比以前装虚拟机那一套用起来舒服方便学习使用开始安装首先在开始菜单中搜搜PowerShell右击以管理员身份运行在终端里面输入以下命令安装虚拟机, 等待安装完成后会提示让重启电脑重启电脑后在继续(重启后重新打开PowerShell也要用管理员身份打开喔)wsl --install重启电脑后就可以安装系统镜像了这里你可以查看内置支持哪些镜像wsl --list --online # 会输出支持的镜像 # 如果你想要安装的系统在这里没有你需要自行找到系统镜像安装包进行安装 wsl --import CentOS-7 D:\WSL\CentOS7 D:\centos7.tar --version 2这里我安装的是Ubuntu-24.04直接用命令安装, 等待安装完成后会提示让你设置系统的用户名和密码用户名是明文显示输入的但是密码输入是不显示的直接输就可以了玩过Linux的不用多说设置完成后就直接进入系统了 终端的路径和样式都会变 比如 xiaomingxiaoming:/mnt/c/WINDOWS/system32$ 如果需要退出可以输入exit回车退出Linux系统的终端回到win系统的终端wsl --install Ubuntu-24.044.1. 输入exit退出了Linux终端并不代表Linux系统就关闭了其实它还在运行的安装有问题的情况如果你的主板没有开启虚拟化支持是不行的需要开启。如果安装完镜像后 显示让重启电脑重启电脑后可以输入以下命令查看镜像是否安装成功如果可以直接进入系统wsl --list # 查看已安装的镜像 wsl -d Ubuntu-24.04 # 进入系统 # 如果只有一个系统可以直接输入 wsl 回车进入系统如果镜像安装完成了电脑也重启了执行wsl --list没有显示有安装好的镜像那多半是安装出了点问题。可以尝试以下步骤# 现在开始菜单中搜索 **cmd**以管理员身份打开然后执行以下命令 DISM /Online /Cleanup-Image /RestoreHealth # 等待执行完成后在执行下面的命令(上面这个命令执行可能需要十多二十分钟如果时间太久卡住了可以关闭窗口在执行一次或者重新开一个窗口执行下面命令) Sfc /scannow # 等待扫描完成后 在次重新安装镜像Linux系统网络问题正常安装后网络基本是没有问题的但是我遇到过进入系统有网络但是DNS解析服务有问题导致安装不了软件解决如下# 在Linux终端执行如下命令 sudo tee /etc/wsl.conf /dev/null EOF [network] generateResolvConf false EOF # 在执行 sudo rm -f /etc/resolv.conf # 继续执行 sudo bash -c cat /etc/resolv.conf EOF nameserver 114.114.114.114 nameserver 8.8.8.8 EOF # 继续 sudo chmod 644 /etc/resolv.conf # 然后 退出wsl终端 exit # 在PowerShell 终端执行 wsl --shutdown # 关闭虚拟机 这一步很重要 # 然后重启 wsl虚拟机服务和宿主机公用一个ip有时候在Linux中启动了一个服务希望访问ip和宿主机ip保持一致方便访问主要是虚拟机里面启的服务在宿主机上通过访问虚拟机的ip端口访问不到不知道为啥。你需要在C:\Users\你的用户名下面创建一个**.wslconfig** 文件写入下面的内容[wsl2] networkingModemirrored dnsTunnelingtrue firewalltrue autoProxytrue [experimental] hostAddressLoopbacktrue # 关键参数允许通过主机的IP访问WSL服务保存并关闭后需要 exit 退出wsl终端 在win中执行 wsl --shutdown 退出wsl虚拟机在 wsl 重启虚拟机并进入系统重启服务进行测试。WSL进入休眠问题由于宿主系统进行休眠状态会让wsl也进入休眠了这样里面部署的服务就会停止解决方案如果经常这样可以配置 Windows 不让 WSL 休眠。在 Windows 用户目录下建 .wslconfig 文件写[wsl2] kernelCommandLine vsyscallemulate或者在 PowerShell管理员里跑Get-Service-NameLxssManager|Restart-Service更直接的办法是让 WSL跨系统访问文件开头提到了Linux系统和win系统可以相互访问对方的文件先说win访问Linux系统的文件。由于Linux系统是命令行内容写入和修改不是很方便这个时候就可以用win系统访问进行增删改查操作在win系统的资源管理器中顶部的路径栏输入\\wsl$\你的Linux系统镜像名称 # 例如 \\wsl$\Ubuntu回车就进入了Linux的文件系统了从Linux系统中访问win系统的文件cd mnt/d # d表示要进入的盘服这里我进入了d盘 # 要退出win系统的文件目录时 直接cd /就可以了 cd /常用的wsl命令任务分类命令说明安装与更新wsl --install安装 WSL 和系统镜像wsl --update手动更新 WSL 的 Linux 内核到最新版本 。wsl --help查看wsl命令的帮助文档和所有可用选项 。发行版管理wsl -l -v最常用的命令之一。以详细模式列出所有已安装的 镜像、当前运行状态以及使用的 WSL 版本wsl -l -o列出所有可以在线安装的 镜像如 Ubuntu, Debian, Kali 等。wsl --install -d DistroName安装指定的 镜像例如wsl --install -d Debianwsl -s DistroName将某个镜像设置为默认启动项 。wsl --unregister DistroName注销并卸载指定镜像其所有数据将被删除 。运行与交互wsl或wsl -d DistroName直接启动默认的或指定的镜像进入其终端 。wsl command直接在默认系统中运行一条 Linux 命令而不进入交互式终端。例如wsl ls -la可以列出当前目录内容 。wsl --terminate DistroName立即终止指定系统的所有运行进程 。wsl --shutdown立即终止所有正在运行的系统和 WSL 虚拟机 。高级操作wsl --status查看 WSL 的整体运行状态包括默认版本和内核版本信息 。wsl --set-version DistroName 2将指定的镜像转换为 WSL 2 版本 。wsl --export DistroName FileName.tar将指定的 Linux 镜像导出为一个.tar文件用于备份或迁移 。wsl --import DistroName InstallLocation FileName.tar将导出的.tar文件导入为一个新的 Linux 镜像 。基础软件安装个人是前端所以安装一些前端常用的软件nvm安装sudo apt update # 更新本地包索引 sudo apt install curl build-essential libssl-dev -y # 安装必要的依赖项 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash # 使用 curl 命令下载并执行nvm的官方安装脚本 source ~/.bashrc # 重新加载shell配置文件使nvm命令在当前终端会话中立即可用 nvm --version # 查询是否有版本号 验证是否安装成功 nvm install v18.17.1 # 安装一个node版本 nvm ls nvm use v18.17.1 node -v npm -v安装Git# 安装 sudo apt install git -y # 验证 git --versionnginx源码安装# 先安装所需的基础库 sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev -y # 进入安装目录 cd /usr/local/src # 这里可以改自己想要安装目录 # 下载Nginx源码 sudo wget https://nginx.org/download/nginx-1.26.2.tar.gz # 解压源码包 sudo tar -zxvf nginx-1.26.2.tar.gz cd nginx-1.26.2 # 配置编译选项 sudo ./configure --prefix/usr/local/nginx --with-http_ssl_module --with-http_v2_module # 编译与安装 sudo make -j4 sudo make install # 验证安装 # 启动Nginx sudo /usr/local/nginx/sbin/nginx # 查看版本及编译参数 sudo /usr/local/nginx/sbin/nginx -V配置文件常用的命令操作 命令启动 /usr/local/nginx/sbin/nginx快速停止 /usr/local/nginx/sbin/nginx -s stop优雅停止 /usr/local/nginx/sbin/nginx -s quit重载配置 /usr/local/nginx/sbin/nginx -s reload检查配置语法 /usr/local/nginx/sbin/nginx -twsl虚拟机硬件分配设置及使用说可以在开始菜单中搜索WSL Settings打开一些功能说明可以在这里看