对于带有重音字符的文件,没有这样的文件或目录

对于带有重音字符的文件,没有这样的文件或目录

我只是想从损坏的迈拓共享存储机箱中的磁盘上抢救文件(关闭电源后无法恢复,可能是因为磁盘上的操作系统映像已损坏,共享上没有文件在使用)时间)。 MSS 的固件是基于Linux 的。

我取出磁盘,放入 SATA USB 外壳中,然后将其插入运行 Ubuntu MATE 16.04 的笔记本电脑。

我已经能够安装保存所有用户数据的分区并可以看到上面的文件。它似乎是一个 ext3/ext4 文件系统——Linux 可以识别它,我可以浏览目录树。

但是,某些文件/目录存在问题。下面的例子:

$ ls -la Photos/
ls: cannot access 'Photos/2012-06 Königssee': No such file or directory
ls: cannot access 'Photos/2003-08 Fußballspiel': No such file or directory
ls: cannot access 'Photos/2013-06 München': No such file or directory
total 8
drwxrwxrwx  6 michael michael 12288 Nov 19 21:05 .
drwxrwxrwx  3 michael michael  4096 Nov 19 21:05 ..
d?????????  ? ?       ?           ?            ? 2003-08 Fußballspiel
d?????????  ? ?       ?           ?            ? 2012-06 Königssee
d?????????  ? ?       ?           ?            ? 2013-06 München

这似乎只影响字符超出 7 位限制的文件。然而,一些具有此类字符的文件可以工作 - 我应该提到,在某些时候我从备份中恢复了一些文件(使用设备的备份/恢复功能),而其他文件是通过 Samba 从客户端计算机创建的。

它是可重现的,因为每次尝试都是相同的文件导致此错误。其他操作(例如chown -R .对整个目录的操作)也会对相同文件给出相同的错误。当我尝试将父目录移动到不同的文件系统时,我收到相同的错误,并且此类有问题对象的父目录不会被删除,因为它们不为空。 MSS 能够毫无问题地读取这些文件/目录。

这里发生了什么?我如何重新获得对这些文件的访问权限?

答案1

在尝试了其他所有方法(将驱动器安装在不同的计算机上、恢复旧备份)之后,我最终决定冒险并 fsck 分区。

fsck -Dfp抱怨错误并要求在没有该选项的情况下再次运行-p

fsck -Df然后发现几个错误:

第 2 遍(目录结构)发现了一些错误,例如:

Problem in HTREE directory inode 4997425: block #1 has bad max hash
Problem in HTREE directory inode 4997425: block #2 has bad min hash
Invalid HTREE directory inode 4997425 (/misc/Downloads).  Clear HTree index<y>? yes

第 3 遍发现了一些非唯一的文件名,并建议创建一个副本。 IIRC 这些是我重新创建的文件,因为它们通过 Samba 不可见。

我允许 fsck 修复所有这些错误,然后再次安装分区。

lost+found不包含任何内容。违规对象位于其原始位置。我现在很高兴将剩余的文件从分区复制出来。

相关内容