无法移动 7z 存档,现在无法读取它,但原始位置中留下了一个名为 .part 的片段

无法移动 7z 存档,现在无法读取它,但原始位置中留下了一个名为 .part 的片段

我试图将旧的 7z 存档从旧的 ext4 分区移动到当前的分区,但在此过程中它似乎随机取消了。不仅新位置拥有不完整的存档(无法读取),而且旧位置也有一个7z.part文件。是否有可能以某种方式继续移动过程?我似乎无法简单地从文件资源管理器的用户界面中弄清楚它,但我想知道是否可能有终端命令?

在旧目录中使用ls显示旧的 7z 文件,但其名称似乎是红色的,并且 ls 声称无法读取该文件(I/O 错误)。在新目录中使用它似乎也显示为红色,但没有相同的错误

旧目录是 ~/Documents/Archive/backup (在不同的分区上,因为这是来自较旧的 Linux 安装)

[frontear@frontear-net backup]$ ls
ls: cannot access 'OneDrive.7z': Input/output error
OneDrive.7z  OneDrive.7z.part

尽管ls声称此处存在 OneDrive.7z,但实际上即使启用了隐藏文件,通过文件资源管理器也看不到它

当前目录是 ~/Desktop/Archive/backup (我当前的 Linux 安装)

[frontear@frontear-net backup]$ ls
OneDrive.7z

在这两个命令中,OneDrive.7z 都是红色的,我认为这意味着什么,可能是因为它已损坏

fsck从 Manjaro Live ISO运行不会产生明显的损坏迹象。/dev/sda2是我当前的分区,而/dev/sda3是旧分区。

[manjaro manjaro]$ sudo fsck /dev/sda2
fsck from util-linux 2.34
e2fsck 1.45.4 (23-Sep-2019)
/dev/sda2: clean, 738853/39223296 files, 76011466/156883968 blocks
[manjaro manjaro]# fsck /dev/sda3
fsck from util-linux 2.34
e2fsck 1.45.4 (23-Sep-2019)
Superblock last write time is in the future.
        (by less than a day, probably due to the hardware clock being incorrectly set)
/dev/sda3: clean, 4362438/9715712 files, 18432430/38835968 blocks

编辑:fsck应蒂莫西·鲍德温的要求更新:

[manjaro manjaro]# fsck -f /dev/sda2
fsck from util-linux 2.34
e2fsck 1.45.4 (23-Sep-2019)
Pass 1: Checking inodes, blocks, and sizes
Inode 19400943 extent tree (at level 2) could be narrower.  Optimize<y>? yes
Pass 1E: Optimizing extent trees
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/dev/sda2: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda2: 757397/39223296 files (0.5% non-contiguous), 80084462/156883968 blocks
[manjaro manjaro]# fsck -f /dev/sda3
fsck from util-linux 2.34
e2fsck 1.45.4 (23-Sep-2019)
Superblock last mount time is in the future.
        (by less than a day, probably due to the hardware clock being incorrectly set)
Superblock last write time is in the future.
        (by less than a day, probably due to the hardware clock being incorrectly set)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda3: 4362438/9715712 files (0.1% non-contiguous), 18432430/38835968 blocks

编辑2:更新lsls -l

[frontear@frontear-net ~]$ cd ~/Documents/Archive/backup/
[frontear@frontear-net backup]$ ls -l
ls: cannot access 'OneDrive.7z': Input/output error
total 2168832
-????????? ? ?        ?                 ?            ? OneDrive.7z
-rw------- 1 frontear frontear 2220883968 Apr 30 06:46 OneDrive.7z.part
[frontear@frontear-net backup]$ cd ~/Desktop/Archive/backup/
[frontear@frontear-net backup]$ ls -l
total 2446952
-rw------- 1 frontear frontear 2220883968 Apr 29 23:13  OneDrive.7z

编辑3:添加了一个smartctl检查:

[manjaro@manjaro ~]$ sudo smartctl -a /dev/sda | sed -n '/Threshold/,/^$/p'
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   016    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0004   142   142   000    Old_age   Offline      -       70
  3 Spin_Up_Time            0x0007   128   128   024    Pre-fail  Always       -       177 (Average 180)
  4 Start_Stop_Count        0x0012   100   100   000    Old_age   Always       -       2450
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000a   100   100   000    Old_age   Always       -       0
  8 Seek_Time_Performance   0x0004   118   118   000    Old_age   Offline      -       33
  9 Power_On_Hours          0x0012   097   097   000    Old_age   Always       -       23216
 10 Spin_Retry_Count        0x0012   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       2388
192 Power-Off_Retract_Count 0x0032   098   098   000    Old_age   Always       -       2461
193 Load_Cycle_Count        0x0012   098   098   000    Old_age   Always       -       2461
194 Temperature_Celsius     0x0002   119   119   000    Old_age   Always       -       46 (Min/Max 20/53)
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
240 Head_Flying_Hours       0x0012   097   097   000    Old_age   Always       -       23203
241 Total_LBAs_Written      0x0012   100   100   000    Old_age   Always       -       171426971200
242 Total_LBAs_Read         0x0012   100   100   000    Old_age   Always       -       228792438899

编辑4:badblocks检查

[manjaro@manjaro ~]$ sudo badblocks -sv /dev/sda
Checking blocks 0 to 976762583
Checking for bad blocks (read-only test): done                                                 
Pass completed, 0 bad blocks found. (0/0/0 errors)

答案1

我想我有一种预感发生了什么事(根据你的 dmesg)。

  • 在您移动过程中发生的情况是,您的 Dolphin 在移动过程中崩溃了。

    Apr 29 23:14:28 frontear-net kernel: dolphin         D    0 567940      1 0x00004084
    Apr 29 23:14:28 frontear-net kernel: Call Trace:  ...
    
  • 您已经使用了一些需要的文件系统保险丝像 NTFS 等。这可能导致死锁(疯狂猜测缓存溢出或类似情况)

  • 如果原件损坏,则表明您可能正在使用的 Dolphin、FUSE 或 NTFS-3g 驱动程序中存在严重错误。

现在回答你原来的问题

出于好奇,你可以执行: sudo chmod -R g+x ~/Documents/Archive/backup?我想知道会发生什么。

您尝试列出的文件似乎已损坏,这就是您收到错误的原因:ls: cannot access 'OneDrive.7z': Input/output error。 (从您采取的操作来看,您的硬件似乎没问题)。您的文件系统(日志?)似乎已损坏。在尝试修复它之前我会强烈推荐通过例如 ddrescue 创建磁盘映像。

笔记:执行此操作时,fsck请不要忘记文件系统必须是umount(ed) 的!)

回答你的问题,复制过程是否可以继续?

不能,因为您使用了错误的工具来完成任务。

你应该使用同步或类似的工具来确保您拥有原始文件的正确副本。

如何恢复坏的 7z 文件?

最好的办法是遵循这些说明 -如何恢复损坏的 7z 存档来自 7-zip.org。

下次该做什么更好?

1)使用同步用于复制、移动等重要文件

2)将大文件分割成更小的文件

3) 压缩时使用恢复信息 - 7zip 不支持添加恢复信息,但可以以 par1.0/par2.0 格式添加。 (对于Linux使用par2cmdline或图形用户界面适用于 KDE 的简易 Par2,对于 Windows,您可以使用多方或者Github 上的 MultiPar;快速帕)。

4) 对于存储,使用 zfs(带有 ECC RAM)等高级文件系统来提高数据完整性

相关内容