外部硬盘上特定文件的输入/输出错误

外部硬盘上特定文件的输入/输出错误

我有一个通过 USB 连接的 UnionSine 外置硬盘。我将其格式化为 exFAT,它按预期安装,我在上面放了一些文件。我将其连接到 NVidia Shield 并读取了一些文件。现在,当我将其重新连接到 Ubuntu 时,我看到已添加两个文件:NVIDIA_SHIELD 和 LOST.DIR,当我尝试查看驱动器的根目录时,它们会出现输入/输出错误:

$ ls -l /media/jared/7902-883D/
ls: cannot access '/media/jared/7902-883D/LOST.DIR': Input/output error
ls: cannot access '/media/jared/7902-883D/NVIDIA_SHIELD': Input/output error
total 768
drwxr-xr-x 5 jared jared 131072 Jul  5 00:23 Android
d????????? ? ?     ?          ?            ? LOST.DIR
drwxr-xr-x 2 jared jared 655360 Jul  4 23:28 NES
d????????? ? ?     ?          ?            ? NVIDIA_SHIELD

我尝试过 exfatfsck、smartctl 和 badblocks,但均未发现任何错误。有什么方法可以修复或删除这些文件,以便我可以在此驱动器上使用该文件管理器?

$ sudo smartctl -a /dev/sdb
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.13.0-21-generic] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     Hitachi HCC545012B9A300
Serial Number:    100118PB5B00QCER093G
LU WWN Device Id: 5 000cca 5a2e63046
Firmware Version: PBJVCC0D
User Capacity:    120,034,123,776 bytes [120 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    5400 rpm
Form Factor:      2.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ATA8-ACS T13/1699-D revision 6
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Tue Jul  5 22:13:06 2022 PDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (  645) seconds.
Offline data collection
capabilities:            (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    (  47) minutes.
SCT capabilities:          (0x003d) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   062    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   040    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0007   201   201   033    Pre-fail  Always       -       1
  4 Start_Stop_Count        0x0012   096   096   000    Old_age   Always       -       6935
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   040    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0012   088   088   000    Old_age   Always       -       5691
 10 Spin_Retry_Count        0x0013   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       71
191 G-Sense_Error_Rate      0x000a   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       61
193 Load_Cycle_Count        0x0012   100   100   000    Old_age   Always       -       7158
194 Temperature_Celsius     0x0002   177   177   000    Old_age   Always       -       31 (Min/Max 18/38)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0
223 Load_Retry_Count        0x000a   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%      5683         -
# 2  Extended offline    Aborted by host               80%      5682         -
# 3  Short offline       Completed without error       00%      5682         -
# 4  Short captive       Completed without error       00%         0         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

答案1

首先,我认为您的驱动器没有任何问题。创建这两个目录(“NVIDIA_SHIELD”和“LOST.DIR”)似乎是 NVIDIA SHIELD 的一个功能。

我最近把一个格式化为 exFAT 的 U 盘带给了我弟弟,他有一台 SHIELD。当我回到家时,我发现上面有那 2 个目录。我无法访问它们,无法进入它们,无法移动它们或删除它们。它们无法访问。

我还不确定它们是否只在 exFAT 上如此表现,还是无论文件系统是什么,都是如此。当我尝试在 Nautilus 中打开拇指驱动器时,我无法打开。因为它尝试读取该目录中的所有文件类型,当它无法读取这两个目录时,它会抛出错误并显示目录为空。

但是,在 Bash 中切换到驱动器目录后,我就可以正常访问驱动器,读取和写入数据,但不能访问这两个特定的文件名。起初,我以为分区可能已损坏,因此我使用 Gparted 修复了分区,结果没有显示任何错误。我还认为,这可能是因为 Linux 中的 exFAT 驱动程序只有几年的历史,这可能是某种错误。

我很快就会知道,因为我的兄弟为他的 SHIELD 买了一个新的外置硬盘,他想把它带到我家,这样我就可以把它格式化为 exFAT,并将所有内容从他旧的 NTFS 格式的外置硬盘中移过来。我将测试是否可以在 NTFS 驱动器上访问这两个目录,然后我就会知道这是 exFAT 特有的问题还是 SHIELD 普遍存在的问题。

无论如何,您的驱动器很可能没有问题,您仍然可以使用它。一个技巧是将除这两个文件名之外的所有内容移动到子目录并使用它。如果这样做,即使在 Nautilus 中也可以很好地使用该子目录。当这两个特殊文件名与您尝试打开的文件名位于同一目录中时,就会出现问题。但是,您仍然无法直接打开驱动器,因为它已安装在 Nautilus 中。您必须进入您在 Bash 中创建的子目录并执行“nautilus .”以图形方式打开它。

在我帮助我弟弟修好他的外置硬盘后,我会回来跟进这个帖子。很可能是 1 到 2 周后。

在此之前,我创建了一个小型 shell 脚本,准备备份他的旧驱动器。它以路径作为参数(驱动器的路径,很可能是类似“/run/media/yourusername/whatevernameyourdrivehas”的路径),并将其中的每个文件和目录移动到子目录中,以便您更轻松地访问。如果我的理论是正确的,即使该驱动器使用 NTFS,我可能也需要这样做。否则,当我尝试将驱动器目录复制到新驱动器时,“cp -rp”会抛出错误,因为无法访问这两个文件名。

如果您感兴趣的话,这是该脚本的链接: https://github.com/linux4ever07/scripts/blob/main/nv_shield_dn.sh

*** 编辑 ***

好吧,事实证明我可以读取我哥哥的旧 NTFS 驱动器上的“NVIDIA_SHIELD”和“LOST.DIR”目录。可能是 NTFS 和 exFAT 在这方面的行为不同,也可能是因为我哥哥的驱动器使用 GPT 分区表,而我的拇指驱动器(读取目录时遇到问题)使用经典的 MSDOS 分区表。导致此问题的是分区表或文件系统的差异。唯一的其他解释是拇指驱动器可能已略微损坏,因为我哥哥在将其从 SHIELD 上拔下之前没有正确弹出它。

我希望这有帮助。

相关内容