You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BeagleBone Black USB Mass Storage连接Windows异常求助

BeagleBone Black USB Mass Storage 与 Windows 兼容问题排查

问题根源

  1. 无分区表导致Windows识别异常:你用mkdosfs -I直接格式化整个镜像(无MBR分区表),Linux可以兼容这种裸分区格式,但Windows要求存储设备必须有合法的MBR/GPT分区表才能正常识别文件系统。
  2. 挂载对象不匹配:Windows重新格式化镜像后,会自动创建MBR分区表并在分区内建立FAT32文件系统,但你在BBB上还是直接挂载整个镜像文件(而非镜像内的分区),自然看不到Windows写入的内容。

修正操作步骤

步骤1:创建带MBR分区表的镜像

  1. 生成空镜像文件:
    dd bs=1M if=/dev/zero of=/usb.bin count=64
    
  2. 给镜像添加MBR分区表:
    fdisk /usb.bin
    
    执行以下交互命令:
    • 输入o:创建DOS分区表
    • 输入n:新建分区
      • 分区类型选p(主分区)
      • 分区号选1
      • 起始/结束扇区直接按回车用默认值(占满整个镜像)
    • 输入t:修改分区类型
      • 输入c:设置为W95 FAT32 (LBA)类型
    • 输入w:保存分区表并退出

步骤2:格式化镜像内的分区

将镜像映射为循环设备,才能格式化内部分区:

losetup -fP /usb.bin

查看映射后的循环设备(通常为/dev/loop0),格式化其分区:

mkdosfs /dev/loop0p1 -F 32

完成后卸载循环设备:

losetup -d /dev/loop0

步骤3:BBB端挂载镜像分区

挂载时需指定镜像内的分区,而非整个镜像:

losetup -fP /usb.bin
mount /dev/loop0p1 /mnt/usb

写入测试文件后,卸载挂载:

umount /mnt/usb
losetup -d /dev/loop0

步骤4:加载USB大容量存储模块

指定镜像文件,让模块识别内部的分区表:

modprobe g_mass_storage file=/usb.bin stall=0 ro=0

关键注意事项

  • 禁止BBB与Windows同时挂载该镜像,会造成文件系统损坏。
  • 从Windows断开后,BBB端必须通过循环设备挂载分区(/dev/loopXp1),而非直接挂载整个镜像文件。
  • 重新格式化操作只能在单一系统侧完成,完成后再切换到另一侧使用,避免双向写入冲突。

内容的提问来源于stack exchange,提问作者yrjc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:50:18