将闪存驱动器格式化为 NTFS 时,我做错了什么?

Enl*_*ico 5 filesystems partition ntfs mkfs

在尝试格式化闪存驱动器之前:

$ sudo fdisk -l
...
...
Disk /dev/sdc: 7.32 GiB, 7864320000 bytes, 15360000 sectors
Disk model: DataTraveler 3.0
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: gpt
Disk identifier: F89B0513-2DBE-8D40-BCDF-22BE8A5C5E45

Device     Start      End  Sectors  Size Type
/dev/sdc1   2048 15359966 15357919  7.3G Linux filesystem
Run Code Online (Sandbox Code Playgroud)

在尝试期间:

$ sudo mkfs.ntfs -I /dev/sdc1 
Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 100% - Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.
Run Code Online (Sandbox Code Playgroud)

尝试后:

$ sudo fdisk -l
...
...
Disk /dev/sdc: 7.32 GiB, 7864320000 bytes, 15360000 sectors
Disk model: DataTraveler 3.0
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: gpt
Disk identifier: F89B0513-2DBE-8D40-BCDF-22BE8A5C5E45

Device     Start      End  Sectors  Size Type
/dev/sdc1   2048 15359966 15357919  7.3G Linux filesystem
Run Code Online (Sandbox Code Playgroud)

这怎么可能?我究竟做错了什么?

Art*_*nov 22

这就是你所缺少的。

有一个分区表和文件系统 - 它们相关但不同。您可以完美地将分区类型Linux filesystem(MBR 表示法Linux)格式化为 NTFS,将分区类型Microsoft basic data(MBR 表示法HPFS/NTFS/exFAT)格式化为例如ext4.

mkfs.* 实用程序只是格式化存储,它们从不接触分区表。

要更改分区表中的分区类型,你需要使用任何工具:fdiskpartedsfdiskgdisk,等。

当您在磁盘的可用空间中创建新分区时,诸如GPartedKDE 分区管理器之类的 Linux GUI 应用程序将自动设置正确的分区类型。

如果您来自 Windows,那么它的分区工具会自动执行此操作。最后,当类型设置为NTFS 格式的分区时,Windows 通常会拒绝挂载 NTFS 格式的分区,Microsoft basic data并且如果您有一个分区类型Microsoft basic data但它包含任何其他文件系统,或者它只包含 Windows 将提供的二进制零来格式化它。

  • NTFS 是一个文件系统,而不是分区标准,除了分区表中的几个字节之外,“Linux”和“Windows”分区之间没有实际区别。可能还值得注意的是,您_可以_只使用没有分区表的平面磁盘作为文件系统,Windows 只是不喜欢它(尽管大多数类 UNIX 系统根本没有问题)。 (5认同)

Voj*_*fny 10

我想你对Type Linux filesystem. 中的Typefdisk -l不显示设备上的文件系统,它显示分区类型——在 GPT 上,这是一个特殊的GUID,可帮助系统识别设备上的内容,对于 Linux,默认值是Linux 文件系统数据并且mkfs.ntfs不会更改那。但这并不是什么大问题,重要的是文件系统是 NTFS(您可以使用 进行检查lsblk -f /dev/sdc1),GUID 通常会被忽略,并且在 Windows 上使用闪存驱动器时,“错误”的分区类型不会导致闪存驱动器出现问题。如果您想将其更改为更适合 NTFS 的内容,您可以使用它fdisk /dev/sdc来执行此操作(t对于分区类型更改和11(检查分区类型列表L首先,不同版本可能会有所不同fdisk) 为Microsoft basic data)。

  • `mkfs` 程序**不应该**弄乱分区表条目,即使它确实有权访问分区表。那不是它的工作。它的工作是在块设备或磁盘映像文件上创建文件系统。更改分区表条目是 fdisk、gdisk、parted 等分区工具的工作。 (7认同)
  • 数字“11”不是一成不变的。实际上它已经改变并且很可能再次改变并且可以在版本之间不同等等。`L`ist; 或使用 11 进行测试,但请*务必阅读它所说的内容* ;) - 如果使用脚本,只需使用十六进制代码/ID。至于“Linux 文件系统”,一切都取决于。Linux 最初使用与 *Microsoft 基本数据 * 相同的 GUID,但这导致了一些问题。至于`mkfs`很难说它***应该***改变它。就像一个*可以*用任何东西格式化*Microsoft basic*一样*可以*也用任何东西格式化*Linux fs*。它是比文件系统更广泛的分类。 (2认同)