我创建了自己的 Rasbian 图像,其中包含以下分区:
$ sudo fdisk -l 2018-11-13-raspbian-stretch-lite.img
Disk 2018-11-13-raspbian-stretch-lite.img: 2,5 GiB, 2705326080 bytes, 5283840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7ee80803
Device Boot Start End Sectors Size Id Type
2018-11-13-raspbian-stretch-lite.img1 8192 98045 89854 43,9M c W95 FAT32 (LBA)
2018-11-13-raspbian-stretch-lite.img2 98304 4292607 4194304 2G 83 Linux
2018-11-13-raspbian-stretch-lite.img3 4292608 4395007 102400 50M 83 Linux
2018-11-13-raspbian-stretch-lite.img4 4395008 5283839 888832 434M c W95 FAT32 (LBA)
当我将 SD 卡插入 Windows PC 时,我希望能够访问 FAT32 分区(第一个和最后一个)。但实际上只显示了第一个分区。
这是怎么回事?我看不出两者之间的区别。
答案1
这在 Windows 系统中是“正常现象”,但 Windows 10 1703 版本除外。
本文是在问题修复后发布的。据我所知,该问题仅在 Windows 10 中得到修复。以下是几句引言:
微软秘密为 Windows 10 Creators Update 添加了一项新功能:这是第一个支持可移动媒体(如 USB 棒)上的多个分区的 Windows 版本。[…]
硬盘和可移动介质(USB 记忆棒)等存储介质分为两类:
- 已设置固定介质位的硬盘和介质
- 已设置可移动介质位 (RMB) 的可移动介质(如 USB 棒)
固定或可移动媒体位由媒体控制器的固件设置。
[…]
已设置可移动媒体位 (RMB) 的媒体在 Windows 中被视为可移动设备。Windows 对可移动媒体有限制 - 例如,Windows 文件系统(Windows 资源管理器)只能安装此类设备上的第一个分区。
可以使用第三方工具或 Linux 甚至 Windows 命令行工具在 USB 上创建多个分区
diskpart
。但是(与 Linux 相反)Windows 只会在资源管理器中显示第一个分区。所有其他分区都将被忽略。如果在 Linux 下创建的多分区 USB 要在 Windows 中格式化,这会导致冲突。Windows 只会格式化第一个分区。
据我所知,没有技术原因(也从来没有原因)以这种方式处理可移动媒体。尤其是因为一些媒体可以翻转相关位然后 Windows 奇迹般地开始正确对待它们。整个问题似乎只是微软多年前做出的某个模糊武断决定的结果。
所以我猜测你正在使用过时的 Windows 10 或任何较旧的 Windows,并且你所经历的是“正常的”。
显而易见的建议是使用最新的 Windows 10 或 Linux。如果出于任何原因您想继续使用当前的 Windows 并仍然访问“丢失”的分区,以下是您的选择:
- 双启动:Windows + Linux。
- SD 卡读卡器可将您的 SD 卡作为固定驱动器引入。我认为这是可能的,但我不指望你能轻易找到这样的阅读器。
- 一个可以读取 FAT32 文件系统并允许您访问的应用程序。从技术上讲是可行的,但是或许这样的应用程序甚至不存在,因为“这干什么?Windows 本身不支持 FAT32 吗?”
- 使用当前 Windows 作为主机的虚拟 Linux(例如 VirtualBox)。然后连接 USB 读卡器并使用“USB 直通”选项。这样,Linux 就可以检测到读卡器,就像直接连接一样,您可以挂载任何分区。Windows 中奇怪的挂载规则不会影响这一点。这种方法很不方便,因为 Windows 和 SD 卡之间的任何传输都必须通过 Linux。不过,这可能是您的最佳选择。