如何在 Linux 中格式化闪存驱动器以供其他操作系统使用

如何在 Linux 中格式化闪存驱动器以供其他操作系统使用

我有一个全新的闪存驱动器,插入 Raspberry Pi。我想将内容写入驱动器,然后在 macOS、Windows 或其他 Linux 发行版上轻松读取它。

我应该如何使用 CLI 工具将此驱动器格式化为每个系统都可以轻松使用的大文件系统?

我们现在可以忽略确保数据全部写入驱动器/干净卸载的问题,但最好还是谈一谈这个问题。如果答案能够适应热拔出,则可以获得加分。


虽然我过去曾在 Linux 驱动器上成功使用过没有分区表的驱动器,但我知道分区表对于在其他操作系统上的易用性很有用。

是否应使用标准 BIOS 分区/MBR ( fdisk/ cfdisk)?还是我们想使用 GPT 格式化?

我假设将一个“主”分区设为最大大小fdisk是标准方法,但是应该使用哪种“分区类型”?83肯定不是默认的吧?

至于文件系统,是 FAT32 (mkfs.fat [正确的?])、VFAT ( mkfs.vfat),还是其他“标准”?微软mkfs.exfat现在正在为更大的驱动器(我的驱动器是 128GB)推广 exFAT( ),对吗?但是,我听说某些 Linux 发行版(在我的情况下是 Raspbian)的内核不支持 exFAT。如果不需要使用 FUSE 来安装就好了,据我所知,这是针对 exFAT 的。

答案1

我有一个全新的闪存驱动器

很有可能是已经以标准方式格式化(小型驱动器为 FAT32,大型驱动器为 exFAT)。

虽然内部磁盘通常是完全空白的(由于分区布局种类繁多),但可移动媒体以开箱即用的形式出售,因为几乎每个人都想要一个巨大的分区。

是否应使用标准 BIOS 分区/MBR(fdisk/cfdisk)?还是我们想使用 GPT 格式化?

小型可移动介质传统上使用 MBR,有时甚至根本不进行分区(又名“超级软盘”模式 - 软盘总是如此,但过去也常用于 USB 记忆棒)。

许多通用操作系统可以毫无问题地识别 USB 记忆棒上的 GPT(Windows Vista 及更高版本在 x86 上支持 GPT),但许多嵌入式设备(电视、游戏机等)则不能,因此 MBR 仍然是通常的选择。

请注意,Linuxfdisk自 2010 年起就支持 GPT,尽管这种支持还花了几年时间才传到 Debian。

我假设使用 fdisk 将一个“主”分区设为最大大小是标准方法,但是应该使用什么“分区类型”?肯定不是默认的 83 吧?

坚持使用常见的 Windows 分区类型,例如0cFAT32、07exFAT 或 NTFS。

如果有疑问,请在 Windows 上格式化它,然后检查生成的分区表是什么样的。

至于文件系统,FAT32(mkfs.fat [对吗?])、VFAT(mkfs.vfat)还是其他“标准”?

mkfs.fat是标准工具,它与新名称的工具是一样的mkfs.vfat。Linux 中的“VFAT”只是表示“支持长文件名的 FAT12/16/32”。

因此,您可以使用其中任何一种(或者甚至mkdosfs是相同的工具),最终您将获得相同的文件系统类型 - 对于任何大分区,它将是 FAT32。它将与几乎所有东西兼容除了古老的 MS-DOS

(GNU 中还有一个 FAT 格式化工具工具但是它适用于 FAT12 软盘,使用不寻常的参数(例如小得多的根目录大小),并且不太可能为 USB 记忆棒带来良好的效果。)

微软现在正在为更大的驱动器(我的驱动器是 128GB)推广 exFAT(mkfs.exfat),对吗?但是,我听说某些 Linux 发行版(我的情况是 Raspbian)的内核不支持 exFAT。如果不需要使用 FUSE 来挂载就好了,据我所知,FUSE 是为 exFAT 准备的。

目前 exFAT 需要 FUSE,但这种情况可能很快就会改变(staging/v5.4 中已经有一个驱动程序,更好的驱动程序可能很快就会取代它)。但是 FUSE 驱动程序运行良好,您不需要任何特殊命令即可使用它:它是一样的mount -t exfat,或者就像mountlibblkid 会将其识别为 exFAT 一样,无论驱动程序是什么。

NTFS 也是如此:内核有一个驱动程序,但基于 FUSE 的 NTFS-3g 运行得更好一些,而且也是无缝的(接管mount -t ntfs)。

我们暂时可以忽略确保数据全部写入驱动器/干净卸载的问题,但最好还是触及一下这个问题

umount永远会做正确的事。

Linux FAT 驱动程序接受flushmount 选项,该选项将在每次写入后关闭文件时尝试同步更改,这就像在 Windows 上一样,应该允许您在驱动器空闲时立即拔下驱动器。(尽管这样做无论如何仍会在文件系统上保留“脏”标志。)

答案2

对于 GPT 分区方案(似乎已经取代并替换了 MBR),0c(对于 vfat/fat32)和 07(对于 ntfs 和 exfat)的等价物是“Microsoft Basic Data”。现在看来,许多分区类型标识(类型)主要用于标记目的;甚至可以使用 ext2/3/4 文件系统格式化“Microsoft Basic Data”类型。

相关内容