ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Windows折腾指南:从重装到WSL、端口与存储池的实用清单

Windows折腾指南:从重装到WSL、端口与存储池的实用清单 Windows这块系统越是用得久的人越容易在“基础操作”上翻车。你可能重装过二十次系统、能背出各种开机快捷键但一遇到端口被占、WSL装到一半报错、存储池掉盘照样得满世界搜索。这篇我把这两年自己折腾Windows的脚本、命令和坑位整理成一份清单不灌鸡汤只说怎么做、为什么这么做、踩过哪些坑。无论你是刚转Windows开发的、日常帮同事修电脑的还是被各种报错折磨的普通用户这份清单应该能覆盖大半高频场景。1. 系统重装与镜像选择先做对“三件套”1.1 微PE里Windows安装器和CGI备份还原到底选哪个很多人进微PE后盯着两个选项发呆一个是“Windows安装器”WinNTSetup一个是“CGI备份还原”。这俩长得像实际用途完全不同。WinNTSetup的本质是把install.wim或install.esd镜像直接释放到目标分区并自动处理引导CGI则更偏“整机备份-还原”适合你之前备份好了一个系统镜像现在要原样恢复。我的建议是如果你手里拿的是原版ISO镜像想干净安装一个系统优先用Windows安装器。它能明确指定引导分区、系统分区和版本尤其在UEFIGPT环境下引导修复要比CGI稳得多。CGI那套我早年试过用来安装原版镜像结果引导写错了进系统直接蓝屏折腾半天才靠bcdboot救回来。后来养成习惯装新系统只用Windows安装器CGI只用来恢复我做好的备份。操作时注意三点。第一目标分区一定选对别把放资料的D盘当成C盘格了这个真见过。第二引导分区选择要看主板模式UEFI启动时要选ESP分区Legacy启动时引导分区一般是C盘。第三安装器里勾选“自动修复引导”这类选项然后等进度条走完重启前拔掉PE盘。1.2 终结版镜像、树莓派XP与镜像校验心态热搜里有个“Windows 7 SP1 2026年1月终结版镜像”类似的“最终版”镜像每隔几年就会冒出来一次。本质逻辑很朴素Win7早已停止主流支持但工控机、老笔记本、某些行业软件还在用它所以社区里总有人制作整合补丁和驱动的最终版。这里最怕的不是“Win7还能不能用”而是你下载的镜像是不是被人改过——捆绑推广、植入后门、精简过头导致功能缺失这些都是常见坑。所以不管从哪下载镜像第一件事就是校验哈希。拿Win7也好、Win10、Win11也好装系统前用PowerShell算一下SHA256Get-FileHash -Path .\你的镜像.iso -Algorithm SHA256然后拿这个值去比对发布方提供的官方哈希。不一致直接删掉没什么好犹豫的。我见过有人刻好U盘才发现镜像被改过白折腾一小时。至于“树莓派安装Windows XP”这种属于典型的折腾型项目。不是说不可以玩但心里要有数ARM上的XP是个实验品驱动、性能、稳定性都谈不上生产力真正收获的是对镜像封装和引导过程的了解。想体验老系统虚拟机里装一个比真机省心得多。2. 端口、服务与驱动解决“能用就行”背后的三座大山2.1 查找并关闭占用端口的标准流程“端口被占用”是Windows日常里出现频率最高的问题之一。启动Elasticsearch时报“端口被占用”Docker起不来报端口冲突Navicat连不上MySQL……我都遇过。标准流程其实就两句话一条命令查占用一条命令杀进程。先打开cmd或PowerShell查一下8080端口替换成你实际用的端口netstat -ano | findstr :8080输出长这样TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 12345最后一列就是进程PID。先看这个PID是什么进程别手滑杀了系统进程tasklist /FI PID eq 12345确认是可杀的进程后管理员权限的终端里执行taskkill /PID 12345 /F这里有个关键点taskkill必须要管理员权限否则可能提示“拒绝访问”。PowerShell版本也能干这事而且可读性更好Get-NetTCPConnection -LocalPort 8080 | Select-Object LocalAddress, LocalPort, OwningProcess拿到OwningProcess后同样用Stop-Process -Id xxx -Force结束它。实际使用中有几个容易被忽略的细节。一个是TIME_WAIT状态的端口进程明明退出了端口还被“半连接”占着过一会儿才能释放。另一个是有些开发工具自带多个进程杀掉主进程后子进程还占着端口这时候排查要连父进程一起看。还有一点我在Win11上遇到过PID每次都不一样、端口被“System”进程占用的情况查出来往往是Windows自带的功能比如IIS或Http.sys这时候别急着强杀先看看是不是自己开过什么功能。2.2 服务启动失败的通用排查思路非提权终端、Windows Installer报错热搜里“error: start the windows daemon from a non-elevated terminal; shared clients”这类报错说白了就是“你需要用管理员身份运行终端”。很多守护进程、Docker守护程序、开发用daemon在Windows上都有一个经典脾气普通终端启动就会报错。解决办法很简单右键终端图标选“以管理员身份运行”或者把Windows Terminal默认配置里的“以管理员身份运行”打开一劳永逸。另外那个“Visual Studio Installer: Windows Installer服务不可用请重启系统”的报错迷惑性很强因为提示让你重启但问题根源往往是“Windows Installer服务被禁用了”。步骤是WinR输入services.msc找到“Windows Installer”msiserver双击看启动类型是否被改为“禁用”改成“手动”后启动服务。如果服务启动时提示依赖服务不存在再去事件查看器里看具体是哪个依赖挂了。这里我建议记一条通用排查顺序先services.msc看服务状态再去事件查看器看错误日志最后才是百度/谷歌。事件查看器里的信息往往是精准答案比如事件ID 7000是服务启动超时、7023是服务崩溃、7036是服务状态意外变化。看懂了这些比瞎猜快得多。2.3 驱动数字签名验证失败的临时与根治方案“Windows无法验证此设备所需的驱动程序的数字签名”这句话通常出现在装老网卡驱动、USB转串口驱动、或者其他没有微软WHQL签名的驱动时。Win11 24H2之后内核强制驱动签名的力度更大了老驱动集体遭殃是常态。临时方案是设置→系统→恢复→高级启动→疑难解答→启动设置→重启然后在启动选项里选“禁用驱动程序强制签名”。这样能进系统把驱动装上但注意这个状态是一次性的下次重启又恢复强制。根治方案永远是去硬件厂商官网找支持你系统版本的新驱动。别在第三方驱动站乱下载那些站长挂驱动的同时挂什么你猜不到。有些人为了省事去开测试模式bcdedit /set testsigning on我个人不建议这个降低了系统安全性一旦被恶意驱动盯上代价远比省那几分钟大得多。3. 开发环境快速搭建从“官网下载”到“命令行一键装”3.1 wingetWindows原装包管理器装Git只需一条命令很多人还在“官网找下载按钮→下.exe→一路下一步”的路径里其实Windows早就内置了winget只是知道的人不多。它就像Linux上的apt一条命令装软件、升级软件、卸载软件。装Git传统方式是去git-scm.com下载用winget的话是winget install --id Git.Git -e --source winget --accept-package-agreements --accept-source-agreements跑完Git自动进PATH新开终端就能用git --version。装其他软件同理比如装Python、Node.js、7-Zip、PowerShell 7先搜一下包名winget search python然后挑对ID安装就行。日常维护时升级所有已装软件winget upgrade --all列一下已装的软件winget list用的时候有个注意点默认有两类源winget源和msstore源。msstore对应微软商店里的应用有些软件只上了msstore没上winget源winget源更常用优先指定--source winget避免装错来源。另外安装路径里有空格或中文时部分老旧软件会出问题遇到这种安装后跑不起来的优先检查是不是路径问题。3.2 WSL安装提前结束从BIOS到功能的排查清单“Windows Linux更新子系统安装向导提前结束由于错误”这个报错我前前后后帮人处理过七八次。总结下来就三个原因。第一个是CPU虚拟化没开启。打开任务管理器→性能→CPU看右下角“虚拟化”是否显示“已启用”。如果是“已禁用”重启进BIOS找“Intel Virtualization Technology”或“AMD SVM Mode”打开后保存重启。第二个是Windows功能没启用。管理员身份打开PowerShell执行Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux, VirtualMachinePlatform -All这条会开启WSL和虚拟机平台两个功能完成后重启。第三个是老版本Windows的WSL版本默认设置不对。重启后执行wsl --set-default-version 2如果提示需要更新WSL内核再跑一遍wsl --update即可。装WSL最容易被忽视的一点别在C盘用户目录下乱建文件坑自己。WSL的虚拟磁盘文件默认存在C盘久了会很占空间。想迁移到D盘可以用wsl --export和wsl --import把发行版搬到别的分区这是后话但提前知道能帮你避免C盘爆红的惨案。3.3 Docker Desktop与“daemon提权报错”的处理Windows上装Docker其实有三条路。默认是WSL2后端容器跑在WSL2的轻量虚拟机里另一条是Hyper-V后端适合没装WSL的老机器还有Windows容器模式专门跑Windows容器镜像和Linux容器不通用。我的建议是别纠结直接默认WSL2后端兼容性和资源占用都比较均衡。热搜里那个“start the windows daemon from a non-elevated terminal”其实经常被误读。它不是让你一直开管理员终端而是Docker守护进程没起来。正常流程是启动Docker Desktop应用等它右下角图标变稳定后再开终端敲docker info。如果应用已经启动还报这个错大概率是Docker Desktop本身没权限右键图标选“以管理员身份运行”能解决。Docker用久了最烦的是磁盘膨胀。WSL2的ext4.vhdx文件只增不减我见过有人虚拟磁盘飙到60GB删镜像也不见小。处理办法wsl --shutdown然后以管理员PowerShell运行Optimize-VHD -Path C:\Users\你的用户名\AppData\Local\Docker\wsl\data\ext4.vhdx -Mode Full这条能把没用的空洞回收实测经常能瘦回去一半以上。3.4 Codex安装与本地模型部署的Windows适配AI时代下Windows的“基础操作”又多了一个维度。OpenAI的Codex出了Windows桌面版后很多人安装时卡在“设置未完成”。这个多半是前置条件没满足一是系统需要开启开发者模式设置→隐私和安全性→开发者选项二是Node.js环境要装好桌面版本质还是包了一层CLI。先把Node LTS版装好再打开桌面安装器成功率会高很多。至于GPUStack那种GPU集群部署工具Windows端部署模型时一个重点在于NVIDIA驱动模式。GPU如果要同时输出桌面画面和跑推理WDDM模式容易不稳定有条件的话尽量把目标显卡切成TCC模式专门做计算。这些小细节体现了Windows现在不只是“普通用户系统”也是AI开发的重要宿主基础操作的门槛正在被这些新工具重新拉高。4. 文件系统细节hash、存储池、休眠文件与虚拟内存4.1 一键计算当前文件夹下每个文件的哈希“Windows查看当前文件夹每个文件的hash”这个需求看着小众实际用起来非常香。比如你下载了一堆镜像想确认每个文件都没损坏或者你复制了一个多GB的项目目录想确认复制完整。PowerShell直接一行搞定Get-ChildItem -Path . -File | Get-FileHash -Algorithm SHA256它会列出当前目录下每个文件的哈希。文件多的话可以导出成CSV存档Get-ChildItem -Path . -File | Get-FileHash -Algorithm SHA256 | Export-Csv -Path hashes.csv -NoTypeInformation如果只想算单个文件比如iso就用Get-FileHash .\Win11_24H2.iso -Algorithm SHA256几个小提示默认算法是SHA256如果想要MD5可以换成那个别用MD5校验重要文件碰撞风险早就不是理论问题了。文件特别大的时候哈希计算会占用一些CPU和磁盘IO机器卡一下是正常的不用担心。4.2 存储池掉盘不是硬盘坏了往往是接口和电源策略存储池是Windows原生做软RAID的方案把多块硬盘组合成一个逻辑卷支持镜像和奇偶校验。但“掉盘”一直是它的老毛病我自己的存储池掉过两次盘一开始也以为是硬盘坏了后来发现根本不是。掉盘的常见原因一是硬盘休眠。Windows默认的电源计划会在一定时间后关闭硬盘存储池里的盘被“休眠”后再次唤醒有时就被标记为缺失。解决办法电源选项里把“关闭硬盘”设为“从不”。二是USB接口的硬盘盒。存储池对USB转接的容忍度很低供电不稳或者USB控制器休眠就会掉盘。如果要长期用存储池SATA直连比USB靠谱太多。三是SATA线老化或接触不良换根线经常能解决。排查思路打开“控制面板→系统和安全→存储空间”看状态是否提示“需要检修”再看事件查看器里有没有disk或storsvc的警告最后用CrystalDiskInfo之类工具确认硬盘SMART状态。如果确实是因为休眠导致的掉盘重新把硬盘“添加”到存储池就能找回数据不用慌。但记住一个原则存储池不是备份重要数据一定要有第二份副本。4.3 休眠文件和虚拟内存文件的处理思路C盘根目录下那个hiberfil.sys就是休眠文件大小跟着物理内存走16GB内存的机器能有6GB甚至更多。它是用来实现“休眠”功能的把内存状态写入磁盘后关机下次开机恢复。如果你从不使用休眠可以在管理员终端里执行powercfg /h off文件当场消失C盘腾出好几个G。我不会在这里建议每个人都关因为休眠功能对笔记本来说很实用但台式机用户关了没毛病。pagefile.sys是虚拟内存文件这个不建议乱删。虚拟内存的作用是给内存不够时的进程兜底某些大型编译、虚拟机、图像处理软件强制依赖它。正确的调整方式是此电脑→属性→高级系统设置→性能设置→高级→虚拟内存更改把C盘设置为“系统管理”或手动指定大小甚至可以挪到D盘但别全禁用。我见过有人为了省空间把虚拟内存全关掉结果开个PhotoShop直接崩。5. 系统更新、安全日志与脚本自动化别让“省事”变成“麻烦”5.1 关闭Windows更新最稳妥的顺序与“更新医生”误区“关闭Windows更新”这个需求长盛不衰但很多人不知道Win11的“暂停更新”选项最长只能暂停7周之后系统会强制继续。想长期关闭得从服务层面下手。顺序是这样的WinR输入services.msc找到“Windows Update”wuauserv双击启动类型改成“禁用”然后切到“恢复”标签页把“第一次失败”“第二次失败”“后续失败”全部改成“无操作”。这一步非常关键因为Windows的“更新医生”服务会在检测到更新服务被关闭后尝试修复并重新拉起它如果你不把恢复策略改成“无操作”过一段时间更新服务会被自动恢复。市面上那些“Windows Update Blocker”第三方工具核心也就是修改这几个服务设置和注册表策略。手动操作完全能做到同样效果还不用担心工具带料。但我必须说一句大实话对家用电脑来说永久关闭更新等于拿安全做赌注。新漏洞基本靠补丁堵长期不更新中招概率会显著上升。我现在更推荐“暂停更新”加“每月挑个时间手动更一次”的折中方案既避开自动更新打扰又不至于在安全上裸奔。5.2 安全日志不装第三方软件就能看谁访问过系统Windows安全日志是个被很多人忽略的宝藏。WinR输入eventvwr.msc左侧Windows日志→安全就能看到系统记录的登录、用户创建、权限变更等审计信息。常见的事件ID对应关系事件ID含义关注点4624登录成功确认是谁、从哪个IP登录的4625登录失败大量出现往往代表暴力破解尝试4648使用显式凭据登录留意密码被手动传入的场景4720创建了用户排查是否有人私自添加账号1102审核日志被清空如果有人清理日志本身就是一个信号操作上右键“安全”日志→筛选当前日志输入事件ID就能快速过滤。比如怀疑有异常IP在尝试登录就筛4625看来源网络地址的分布。安全日志默认有大小上限必要的时候可以在日志属性里把最大大小调大、并勾选“覆盖事件”保证长期可查。5.3 批处理闪退与“没有指定在Windows上运行”的根因“Windows脚本命令闪退”的典型场景是双击.bat文件窗口一闪而过什么也没看见。这背后有两个高频原因。第一个是编码问题cmd默认用系统ANSI编码你用带UTF-8 BOM的文本编辑器保存批处理里面中文注释就可能乱码乱码导致命令解析出错脚本跑一半就退出。解决编辑批处理用记事本另存为“ANSI”编码或者干脆全英文注释。第二个是脚本执行完后没有暂停正常收尾是在末尾加pause如果最后加一行还能看到错误信息那就说明脚本内容有问题。同时提醒一句安全策略也可能拦脚本PowerShell脚本默认执行策略是Restricted跑之前先放开Set-ExecutionPolicy -Scope CurrentUser RemoteSigned至于“此文件没有被指定在Windows上运行或者它包含错误”这个提示常见于从网上下载的exe或安装包。一方面是文件下载不完整、被墙了传输中断另一方面是文件被浏览器标记为“来自其他计算机”解除方法Unblock-File -Path .\那个文件.exe右键文件属性里如果能看到“解除锁定”复选框勾上再确定也一样。再有就是图标缓存问题换个路径或换个程序试一下就能区分。我额外提醒一句网上很多“一键优化.bat”“下载的绿色工具.exe”来源不明的千万别直接双击。先用记事本打开bat看内容再用杀毒查一下exe这不是多此一举是真能救命。6. 跨设备协同传文件不靠U盘的现代姿势6.1 开启Windows原生SSH服务用xftp连接Windows“xftp连接windows”这个操作以前绕来绕去现在其实特别简单。Windows 10/11内置了OpenSSH服务器装一下就有不需要第三方软件。路径是设置→应用→可选功能→添加功能→搜索OpenSSH服务器安装后在服务管理器里把OpenSSH SSH Serversshd设为自动并启动或者用PowerShell一条命令开启Start-Service sshd Set-Service -Name sshd -StartupType Automatic接下来xftp新建连接时协议选SFTP端口22主机填Windows机器的IP用户名填Windows用户的用户名本地用户直接填微软账号填微软账号邮箱密码就是登录密码。这个SFTP登录用的是Windows账号体系权限和本地是一样的。一个小优化可以在注册表里把默认Shell改成PowerShell方便登录后直接敲命令New-ItemProperty -Path HKLM:\SOFTWARE\OpenSSH -Name DefaultShell -Value C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -PropertyType String -Force注意放行防火墙的22端口。默认安装OpenSSH服务时防火墙规则通常自动建好了但如果你的Windows是定制精简版可能规则缺失。手动放行的命令New-NetFirewallRule -Name sshd -DisplayName OpenSSH Server -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22另外微软账号如果开了两步验证SSH登录时可能验证失败这种情况建议新建一个本地账号来登录。6.2 从Windows复制到Linux的三种典型路径“如何从windows复制到linux”这个搜索词背后其实是三种不同的场景需要区分。第一种是同一台机器上Windows里装了WSL。你只要在Windows的资源管理器地址栏输入\\wsl$\Ubuntu\home\你的用户名就能直接访问Linux子系统的文件目录反过来在WSL终端里访问Windows文件路径是cd /mnt/c/Users/你的用户名/Desktop这是最方便的一种跨系统互访没有网络传输的开销。第二种是两台物理机器都在同一个局域网。推荐用scp、WinSCP或者共享文件夹。以scp为例从Windows拷文件到Linux服务器scp C:\Users\你的用户名\Desktop\file.tar 用户名服务器IP:/home/用户名/这里Windows 10/11自带scp命令直接可用。Linux服务器上要提前开启SSH服务。第三种是开发场景把代码从Windows搬到Linux服务器。最省心的其实不是靠U盘而是靠git仓库中转本地push服务器pull。这同时解决了版本管理问题和文件携带问题。跨系统拷贝有一个注意点Windows换行符是\r\nLinux是\n。如果你是把脚本从Windows拷贝到Linux跑可能会遇到“bash: 文件: /bin/bash^M: 解释器错误”这种报错。解决办法是拷贝后用sed或dos2unix处理sed -i s/\r$//g 你的文件.sh这套流程理顺之后跨平台传文件基本不会再卡壳。说回整体感受。Windows的“基础操作”其实不是知识点多而是“找到正确入口”难。同样的报错入口对了一行命令解决问题入口错了装一堆第三方工具越弄越乱。我自己现在的习惯是能用系统自带命令解决的绝不装工具遇到报错先看事件查看器下载镜像先校哈希脚本一律先读一遍再跑。这套方法论撑起了大部分日常场景希望这份清单也能替你省下一些反复搜索的时间。
返回列表