使用 Passport 进行 fdisk 时出现输入/输出错误

使用 Passport 进行 fdisk 时出现输入/输出错误

我从 Newegg 购买了一台全新的 WD Passport。我无法向其中复制任何内容(复制操作无限期挂起,然后以 IO 错误结束),因此我尝试通过 GUI 重新格式化它。现在它似乎被格式化为 EXT4。不幸的是,我仍然无法向其中复制内容。它的格式化速度快得令人怀疑(几秒钟;它是一个 1TB 驱动器)。所以我想也许它的格式错了。所以我尝试了:

$ sudo fdisk /dev/sdb1   

并得到:

fdisk: unable to read /dev/sdb1: Input/output error

我该怎么办?!我现在使用的是 Ubuntu 12.10,以防万一。

答案1

fdisk适用于磁盘,而不适用于分区。在 Linux 上,磁盘称为 eg /dev/sdb,而其上的分区称为 等/dev/sdb1/dev/sdb2请注意,旧式(/dev/[hs]d?、/dev/[hs]d??)分区说明符始终以数字结尾,而磁盘说明符始终以字母结尾。

如果您只是格式化磁盘(没有坏块检查等),那么几秒钟的格式化时间并不完全不合理。您所做的只是将初始文件系统元数据结构写入磁盘,虽然我没有确切的数字可以引用,但这些数字相当小,而且 USB 对于写入如此少量的数据来说非常快。如果您没有收到任何错误,则格式化过程可能已完成。

您应该做的第一件事是在正确的设备上运行 fdisk。就您而言,听起来应该是sudo fdisk /dev/sdb,但请注意,在某些情况下,设备名称可能会随时间而变化。我建议改用 /dev/disk/by-id 中的条目之一,因为它们不会改变。在连接磁盘之前,您可以通过运行以下命令查看磁盘显示的内容:

diff <(ls /dev/disk/by-id) <(sleep 15; ls /dev/disk/by-id)

这将显示两次执行 之间的目录内容差异ls,由于sleep第二个输入管道中的调用,两次执行间隔为 15 秒。15 秒应该给内核足够的时间来识别磁盘并让 udev 创建适当的设备节点。如果它没有显示任何差异(空输出),请拔下磁盘并重试增加延迟。您将看到分区设备(以 结尾,-part后跟数字和可能的@)和磁盘设备(没有-part部分)。如果文件名以 结尾@,请忽略该字符;它是ls输出伪像。

一旦正确放置了分区,就可以在其上创建文件系统。例如,sudo mkfs.ext4 -v /dev/disk/by-id/xxxxx-Passport-XXXXXXX-part1-v将打开额外输出(“v”表示详细),这将让您了解文件系统是否已成功创建。

此后,该磁盘应该可以完美使用。

答案2

首先,您需要确保 Ubuntu 可以看到您的新磁盘:

$ sudo fdisk -l

例如,您的新磁盘可能是 /dev/sdb。请按以下需要进行调整。

使用以下命令在其上创建分区fdisk

$ sudo fdisk /dev/sdb

然后使用 格式化所有分区mkfs

以下是第一个分区的示例:

$ sudo mkfs.ext4 /dev/sdb1

请参阅此处了解更多详细信息操作说明这里

相关内容