必须使用WSL2的wsl --mount功能挂载物理磁盘分区,前提是Windows 10 2004+、已安装WSL2、目标磁盘非系统盘且未被Windows占用、Linux系统完全关机,并以管理员权限操作。

要在Windows上读取Linux系统所在硬盘分区里的文件,必须绕过Windows原生不支持ext4等Linux文件系统的限制,借助WSL2的wsl --mount功能直接挂载物理磁盘分区,让Windows资源管理器和WSL终端都能双向访问。
确认前提条件是否全部满足
这一步不能跳过,缺一不可,否则后续所有操作都会失败或挂载为只读。
确保当前运行的是Windows 10 2004(Build 19041)或更高版本,推荐Windows 11;
已安装WSL2而非WSL1,可在PowerShell中执行wsl --version验证;
目标Linux分区所在的物理磁盘不能是Windows系统盘(如C盘所在磁盘),也不能被Windows当前占用(例如作为D盘、E盘挂载着);
Linux系统必须是完全关机状态——如果启用了“快速启动”,关机后实际是休眠,会导致ext4日志未同步,挂载时会报错或强制只读;
所有操作必须在管理员权限的PowerShell或Windows Terminal中进行。
查找目标磁盘DeviceID和分区号
方法一:用Get-CimInstance查磁盘
在管理员PowerShell中运行:Get-CimInstance -Query "SELECT DeviceID, Model, Size FROM Win32_DiskDrive",记下目标磁盘的DeviceID(如.PHYSICALDRIVE2);
方法二:用diskpart确认分区布局
继续在同个PowerShell中输入diskpart→list disk→select disk 2→list partition,观察各分区的大小和位置,找到对应Linux主分区的编号(比如第2个分区);
注意:Linux分区在diskpart里通常没有文件系统标识,靠大小和位置判断,不要选EFI系统分区或swap分区。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
执行挂载命令并验证路径
第一步:运行挂载命令
在管理员PowerShell中输入:wsl --mount \.PHYSICALDRIVE2 --partition 2 --type ext4,其中PHYSICALDRIVE2和2需替换成你查到的实际值;
第二步:检查WSL内是否可见
打开Ubuntu(或其他已安装发行版),执行ls /mnt/wsl/,应能看到类似PHYSICALDRIVE2的目录;进入该目录再ls,应出现p2子目录,里面就是Linux根分区的完整文件结构;
第三步:从Windows资源管理器访问
打开文件资源管理器,地址栏输入wsl$,回车,找到你正在运行的发行版(如Ubuntu-24.04)→点击进入→打开mntwsl→PHYSICALDRIVE2→p2,即可浏览和复制文件;
注意:如果发行版没启动,wsl$下不会显示对应目录,需先在终端中运行ubuntu或wsl -d Ubuntu-24.04启动它。
安全卸载磁盘
完成文件读取后,必须立即卸载,避免Windows后台写入导致Linux文件系统损坏。
在管理员PowerShell中运行:wsl --unmount \.PHYSICALDRIVE2;
执行后,/mnt/wsl/PHYSICALDRIVE2目录消失,wsl$下对应路径也不再可访问;
切勿直接拔掉硬盘或重启Windows而不卸载——这相当于在Linux未正常关机状态下断电。

















