请在Chrome、Firefox、IE8+等现代浏览器浏览本站。 本博客所有文章为原创,图片不加水印,随意转载,但请注明来源,谢谢!

WSL2 + Alpine:从 import rootfs 到挂载 ext4 TF 卡踩坑记录

运维 kxjhwbb 9℃ 0评论

最近折腾R2S,手残把接口配置改挂了,只好拔卡直接操作文件,因为只有Windows,tf卡里是ext4,不想安装其他软件,最后决定采用WSL2+Alpine,相比 Ubuntu 动辄几百 MB 的体积,Alpine 的 Mini Root Filesystem 只有几 MB,启动秒开~  经历了一次从 手动导入 Alpine Rootfs解决 USB 挂载驱动缺失 的完整折腾过程。

本文记录了两个核心坑点,希望能帮到同样遇到 wsl --mount 报错的朋友:

  • 如何通过 wsl --import 安装官网下载的 rootfs.tar.gz
  • (重点) 如何解决 Alpine 在 WSL2 下默认不加载 USB 存储驱动,导致 usbipd 连接成功却找不到磁盘的问题。

第一阶段:手动安装 Alpine (Mini Root Filesystem)

虽然 Microsoft Store 里有现成的 Alpine,但我更习惯直接使用官方的 rootfs 包,这样可以完全控制安装路径和版本,也能确保系统的纯净。

1. 下载 Rootfs

前往 Alpine 官方下载页:https://alpinelinux.org/downloads/
找到 MINI ROOT FILESYSTEM 一栏,下载 x86_64 架构的 tar.gz 包(例如 alpine-minirootfs-3.23.3-x86_64.tar.gz)。

2. 导入 WSL (Import)

打开 Windows 管理员 PowerShell,创建一个存放系统的目录,然后使用 wsl --import 命令进行安装。

  • DistroName: 发行版名称,例如 Alpine-Custom
  • InstallLocation: 安装位置(vhdx 文件的存放地)
  • InstallTarFile: 刚才下载的压缩包路径

3. 初始化配置

安装完成后,进入系统:

建议先更新软件源(推荐清华源或阿里云源)并安装基础工具:


第二阶段:遇到的问题与 USB 透传方案

为什么不用 wsl –mount?

WSL2 官方提供了 wsl --mount 命令来挂载物理磁盘。但我尝试挂载 TF 卡时,遇到了经典报错:

Error code: Wsl/Service/AttachDisk/MountDisk/HCS/0x8007000f
无法将磁碟 '\\.\PHYSICALDRIVE1' 連結到 WSL2: 系统找不到指定的驱动器。

这通常是因为廉价读卡器的驱动层实现问题,或者 Windows 对移动存储设备的独占锁定,导致 WSL 无法以“块设备”形式直接挂载。

解决方案:USBIPD (USB 透传)

我们需要把读卡器从 Windows “拔”下来,直接“插”进 WSL 的内核里。

1. 安装工具 (Windows 端)

2. 绑定并连接
插入 TF 卡,在管理员 PowerShell 中执行:


第三阶段:解决 Alpine 驱动缺失的“隐形”问题 (关键)

这是最容易卡住的地方。

现象

  • 在 Windows 端显示 Attached
  • 在 Alpine 里用 lsusb 能看到 Generic Mass Storage 设备。
  • 但是!fdisk -llsblk 完全找不到新硬盘(也就是没有 /dev/sdX)。

原因
Alpine 为了追求极简,默认没有自动加载 USB 存储相关的内核模块。虽然物理连接通了,但操作系统不知道怎么读写它。

解决方法

在 Alpine 终端中,我们需要手动“推”一下内核,加载驱动:

加载完毕后,查看内核日志验证:

此时你应该能看到类似 [sdc] Attached SCSI removable disk 的成功日志,这说明 /dev/sdc 终于出现了。


第四阶段:挂载与修改

确认设备名后(假设为 /dev/sdc,数据通常在第二个分区):

现在,你可以像操作本地磁盘一样,随意修改 TF 卡里的文件了。


第五阶段:安全弹出与数据保护 (必读)

Linux 的 ext4 文件系统大量使用内存缓存(Buffer)。如果不规范卸载,刚才修改的内容可能根本没写进卡里,甚至导致分区表损坏。

请严格按照以下 “三步走” 流程操作:

1. Alpine 内部卸载

切记先 cd 离开挂载点,否则会提示 target is busy

2. Windows 端断开连接

回到 Windows 的管理员 PowerShell,断开 WSL 对设备的占用:

3. 物理拔出

此时 Windows 会重新识别到该 USB 设备。点击任务栏右下角的 “安全删除硬件”,等待提示安全后再拔出读卡器。

⚠️ 警示:如果在 Windows 弹窗提示“你需要格式化磁盘才能使用”时,千万点击“取消”!这是 Windows 不认识 ext4 的正常反应,点了格式化数据就没了。

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址