Centos 7 Linux 下 USB NTFS 分区无法读取,显示为 CDROM 设备且没有分区

Centos 7 Linux 下 USB NTFS 分区无法读取,显示为 CDROM 设备且没有分区

这很奇怪。我可以访问另一个国家的服务器来工作。它运行 Linux Centos 7。它安装了 ntfs-3g、ntfsutils 和 ntfsprogs。如果办公室里有人将 USB 驱动器插入服务器,我可以看到它并安装分区。到目前为止一切顺利。

问题是我需要在这个 USB 驱动器上创建一个操作系统,为此我需要 3 个文件,其中一个是 centos 7 的 ISO 映像。为此,有人拿走了 USB 驱动器,在 Windows 10 下用 ntfs 格式化它,并复制了 3 个文件,包括一个 4.5GB 的 DVD iso 映像。复制这 3 个文件后,该人对其进行了检查,并且这 3 个文件按预期作为文件复制到 USB 闪存驱动器上。

当他们将驱动器放入服务器时,消息将 USB 驱动器检测为 32 GB 金士顿数据旅行者。但是,它会创建一个 cdrom 设备 /dev/sg5,并且虽然它创建了 /dev/sde,但并没有创建 /dev/sde1。我无法挂载 /dev/sg5,因为它不是块设备。我无法挂载 /dev/sde,因为它没有分区。

我使用 fdisk 进入 /dev/sde,看到 4 个不可读分区,分区偏移量不合理,这是不可能的。我尝试使用 ntfsfix,它运行完成,但并没有解决问题。分区表仍然不合理。

分区表在 fdisk 中的样子如下:

[root@localhost ~]# fdisk /dev/sde
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p

Disk /dev/sde: 31.0 GB, 31029460992 bytes, 60604416 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
Disk label type: dos
Disk identifier: 0x73736572

This doesn't look like a partition table
Probably you selected the wrong device.

Device Boot      Start         End      Blocks   Id  System
/dev/sde1      1920221984  3736432267   908105142   72  Unknown
/dev/sde2   ?  1936028192  3889681299   976826554   6c  Unknown
/dev/sde3   ?           0           0           0    0  Empty
/dev/sde4        27722122    27722568         223+   0  Empty

Command (m for help): d

如果我进入 fdisk,删除 4 个分区并创建一个新分区,退出,并将 USB 闪存驱动器格式化为 ntfs,那么我就可以正常安装该驱动器。

所以此时,我想,你知道吗,USB 驱动器有问题。我们使用了另一个 USB 驱动器,再次取出 3 个文件(包括一个 ISO 映像),将它们复制到闪存驱动器上,将其放入服务器,安装 USB 驱动器,复制 3 个文件,制作新的服务器映像,然后将其 catted/dd 到 USB 闪存驱动器。没有错误,服务器从 USB 闪存驱动器正常启动。没有任何问题。

现在我们发现服务器映像中存在一些错误,因此我们尝试重新创建它。和以前一样,我们使用了之前可安装的同一个 USB 驱动器,在 Windows 下将其格式化为 ntfs,将 3 个文件复制到它上面,然后将其放入服务器,现在服务器无法看到分区。另一个 USB 闪存驱动器再次出现了同样的问题,一个非块设备 cdrom /dev/sg5,以及一个 /dev/sde,上面有 4 个无意义的分区,没有可读分区。

  • 我尝试重新启动服务器,但它没有看到分区块设备,

  • 我尝试让对方重新格式化驱动器 ntfs,

  • 我已经尝试过 exfat(出于某种原因,centos 7 根本看不到这个),

  • 我不能使用 fat32 格式,因为 DVD iso 是 4.5 GB,

  • 我尝试添加 USB 闪存驱动器的前 512 个字节,以防它是 mbr,

  • 我尝试删除 Linux 中 /dev/sde 设备上的分区并重新添加 1 个单独的 ntfs 分区。该分区在 Linux 下显示为 /dev/sde1,但当 Windows 格式化它时,USB 闪存驱动器再次无法读取。

对于这两个 USB 驱动器(不同品牌),ntfs 都是可读的,然后在驱动器上安装了操作系统,现在驱动器在 Windows 上可见,但在 Linux 上不可见。

有什么方法可以“修复”这些驱动器,以便它们既可用于 Windows,也可用于 Linux?以前有人见过这种现象吗?

关于原因的可能理论:

  1. Windows 看到 ISO 映像被复制到 USB 驱动器上,并对其执行一些奇怪的操作,例如在闪存驱动器启动时自行创建一些东西。
  2. 有一些奇怪的可启动工件留在周围,我们无法摆脱它。

答案1

问题最终得到解决cat /dev/zero > /dev/sde,方法是:从 Linux 内部使用 fdisking 删除分区,创建一个分区,用 格式化它mkfs.ntfs -f /dev/sde,然后在 Windows 下复制文件而不进行格式化。

相关内容