和mkntfs

和mkntfs

当我在 Windows 下将驱动器格式化为 NTFS 并将其插入 Ubuntu 机器时,它完全可用。但是当我在 Ubuntu 下使用磁盘对其进行格式化(删除所有分区并使用 NTFS 创建一个单独的分区)时,插入 Windows 机器时它不会显示出来。

请注意,在两种情况下,USB 驱动器都只包含一个格式化为 NTFS 的主分区,例如:

  • /dev/sdb- 实际设备
  • /dev/sdb1- 唯一的主分区

我使用固态 USB 笔式驱动器以及外部 USB 磁性 HDD 都观察到了这种行为。

如何在 Ubuntu 下将 USB HDD 或闪存盘重新格式化为 NTFS,以便可以在 Windows 下使用?

答案1

gparted(GNU 分区编辑器)是一款出色的图形工具,可用于将驱动器格式化为各种不同的文件系统类型。您可以使用 来安装它sudo apt-get install gparted

就像使用磁盘时一样,请务必小心,确保对正确的设备进行更改。您可以按照以下步骤将设备格式化为 NTFS:

  1. 从右上角的下拉选择器中选择正确的设备。
  2. 删除设备上已存在的所有分区。
  3. 使用所有可用空间创建一个新分区,并将类型设置为ntfs
  4. 点击“应用”按钮并等待操作完成

如果 Windows 仍然无法识别该设备,则分区表的类型可能与 MS-DOS 类型不同(我认为 Ubuntu 默认使用 gpt 分区类型)。单击菜单中的“查看 >> 设备信息”以查看分区表类型。在这种情况下,使用“设备 >> 创建分区表”菜单选项将分区表类型更改为 MS-DOS。您可能必须再次按照上述步骤创建 NTFS 分区。

答案2

mkntfs

安装mkntfs包提供的ntfs-3g

sudo apt-get install ntfs-3g

lsblk -f使用或查找 USB 驱动器的分区df -Th。我们假设它位于/dev/sdb1

使用 卸载驱动器umount /dev/sdb,否则您将收到错误

/dev/sdb1 is mounted.
Refusing to make a filesystem here!

然后格式化分区:

sudo mkntfs --fast --label myUsbDrive /dev/sdb1

如果成功,您将看到如下消息:

Cluster size has been automatically set to 4096 bytes.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.

答案3

事实上,Ubuntu 磁盘实用程序创建了具有错误 ID 的分区:

$ sudo fdisk /dev/sdc

欢迎使用 fdisk (util-linux 2.27.1)。
更改将仅保留在内存中,直到您决定写入它们。
使用写入命令前请务必小心。


命令(m 获取帮助):p
磁盘 /dev/sdc:57,9 GiB,62109253632 字节,121307136 个扇区
单位:扇区 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xcee48da0

设备启动开始结束扇区大小ID类型
/dev/sdc1 2048 121307135 121305088 57,9G83 Linux

命令(m 获取帮助):q

当您使用 GParted 创建分区时,该分区将使用正确的 id 创建,并且在 Windows 下完全可见:

$ sudo fdisk /dev/sdc

欢迎使用 fdisk (util-linux 2.27.1)。
更改将仅保留在内存中,直到您决定写入它们。
使用写入命令前请务必小心。


命令(m 获取帮助):p
磁盘 /dev/sdc:57,9 GiB,62109253632 字节,121307136 个扇区
单位:扇区 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0bce1084

设备启动开始结束扇区大小ID类型
/dev/sdc1 2048 121307135 121305088 57,9G7 HPFS/NTFS/exFAT

命令(m 获取帮助):q

$

总是可以使用 fdisk 更改分区类型,但结论是最好始终使用 GParted。

也许我们应该向磁盘开发人员提交一张错误单?

答案4

  • 我已经成功完成了这项任务分区,正如已经建议的那样。

  • 也可以让韓國创建一个持久实时驱动(使用标准 Ubuntu 或社区风格:Kubuntu、Lubuntu ... Xubuntu)。在此过程中,分区#1 将被创建为 NTFS 分区,以便与 Windows 共享数据。

    $ sudo lsblk -o model,name,size,fstype,label,mountpoint /dev/sdd
    MODEL            NAME    SIZE FSTYPE  LABEL                     MOUNTPOINT
    DT Workspace     sdd    29,1G                                   
                     ├─sdd1   14G ntfs    usbdata                   
                     ├─sdd2    1M                                   
                     ├─sdd3  244M vfat    usbboot                   
                     ├─sdd4  893M iso9660 Lubuntu 16.04.1 LTS amd64 
                     └─sdd5   14G ext4    casper-rw                 
    
    $ sudo parted /dev/sdd print        Model: Kingston DT Workspace (scsi)
    Disk /dev/sdd: 31,2GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End     Size    File system  Name     Flags
     2      1049kB  2097kB  1049kB               primary  bios_grub
     3      2097kB  258MB   256MB   fat32        primary  boot, esp
     4      258MB   1194MB  936MB                primary
     5      1194MB  16,2GB  15,0GB  ext2         primary
     1      16,2GB  31,2GB  15,0GB  ntfs         primary  msftdata
    
    • 分区#1 位于驱动器的末尾,但分区表中的编号决定 Windows 是否可以看到它。
    • msftdata如果您使用 GUID 分区表 GPT,则根据列出的输出获取标志会有所帮助parted
    • Windows 第一次看到 USB 闪存盘时,可能会想要修复它。回答是,让它尝试修复它。Windows 会响应“未发现错误”之类的内容,但它会做一些事情(可能在某处写入),表明它已看到分区并将其标记为“良好”,因为下次它不会想要修复它。

    • 您可以在以下链接中找到更多详细信息,

相关内容