如何使用 FAT32 格式化 USB 记忆棒(闪存驱动器)以便在 Linux 和 Windows 上使用?

如何使用 FAT32 格式化 USB 记忆棒(闪存驱动器)以便在 Linux 和 Windows 上使用?

我想格式化一个记忆棒,以便在 Windows 7 和非联网的 Ubuntu 服务器(Precise)之间移动数据。

尽管我可以在两台机器上读取和写入驱动器,但我不确定我尝试过的两种方法是否正确。

如果我在 Windows 上格式化驱动器(使用磁盘管理工具),我会得到一个非常奇怪的分区列表fdisk,但在 Linux 和 Windows 上读写似乎没问题。

该图显示了 Windows 格式化驱动器的 fdisk 输出

cfdisk报告

FATAL ERROR: Bad primary partition 1: Partition begins after end-of-disk.

如果,作为有些倡导者,我用来cfdisk创建一个类型的全盘主分区b(或fdisk创建一个从第二千块开始的分区),然后发出

sudo mkfs.vfat -n some_label /dev/sdf1

那么 Windows 将无法识别该文件系统(经过长时间的思考之后)。

如果我创建相同的分区,Linux 和 Windows 将很乐意读取和写入 2GB 的数据,但随后会出现问题:

sudo mkfs.vfat -I -n some_label /dev/sdf

但这会使已满的磁盘分区显示为可用空间,cfdisk并且fdiskWindows 不喜欢 16GB 驱动器。

我也尝试过使用parted,但是 Windows 对我在 Linux 上创建的任何分区都不满意。

我担心,尽管驱动器似乎可以工作,但我可能会发现数据并未被忠实地传输。

我正在使用各种年份、类型和大小的 SanDisk Cruzer 驱动器。

在 Windows 上格式化的正确方法是否是忽略 cfdisk 和 fdisk 存在的问题,或者是否有另一种正确的方法可以让每个人都对驱动器感到满意?

答案1

Windows 通常会使用外部媒体(例如 USB 闪存驱动器)来未分区方式——也就是说,没有分区表,文件系统被写入整个磁盘。如果您的磁盘是这样设置的,您应该/dev/sdf直接使用,如下所示:

mount /dev/sdf /mnt

您可以以类似的方式使用mkfs、和其他工具。您可以使用来验证这一点,如。如果它告诉您这是一个 FAT(或其他)文件系统,那么我的假设是正确的。fsckblkidblkid /dev/sdf/dev/sdf

如果磁盘上没有要保留的数据,并且您想在其上创建一个新的文件系统,则可以在整个磁盘上执行此操作,也可以使用fdiskparted或其他工具来创建新鲜的(空)分区表。在 中fdisk,您可以使用o主菜单中的命令执行此操作。这将清除现有“分区”(可能只是fdisk试图解释 FAT 文件系统的第一个扇区的绝望尝试)并创建一个新的空分区表。然后,您可以使用n创建新分区,使用 保存更改w,并使用mkfsmkdosfs之外的fdisk创建新的文件系统/dev/sdf1

请注意,Windows 仅识别包含分区表的 USB 闪存驱动器上的第一个分区。因此,如果您需要多个分区,请确保第一个分区是 Windows 可访问的分区。

相关内容