所有apt
类似命令都无法创建锁定文件,因为/var/lib/dpkg/
它不存在。另外,/lost+found/
还有内容:
pi@pi-top:~ $ sudo ls -al /lost+found/
total 102456
drwx------ 11 root root 16384 Apr 3 16:26 .
drwxr-xr-x 23 root root 4096 May 5 17:00 ..
-rw------- 1 root root 104857600 Apr 3 16:30 #29025
lrwxrwxrwx 1 root root 9 Mar 29 10:05 #87867 -> /run/lock
lrwxrwxrwx 1 root root 4 Mar 29 10:05 #87868 -> /run
drwxr-xr-x 2 root root 4096 May 5 10:35 #89863
drwxr-xr-x 12 root root 4096 Apr 3 16:41 #89864
drwxr-xr-x 44 root root 4096 Apr 3 16:30 #89865
drwxrwsr-x 2 root staff 4096 Mar 12 14:03 #89866
drwxr-xr-x 6 root root 4096 May 5 16:30 #89867
drwxrwsr-x 2 root mail 4096 Mar 29 10:05 #89868
drwxr-xr-x 2 root root 4096 Mar 29 10:05 #89869
drwxr-xr-x 5 root root 4096 Mar 29 10:32 #89870
drwxrwxrwt 3 root root 4096 May 5 16:31 #89871
/var/lib/
尽管系统没有表现出任何其他症状,但许多内容也丢失了。是否可以恢复系统(或至少dpkg
)?如果是这样,怎么办?
答案1
抱歉,但在这个阶段,您最好从干净的备份中恢复。当fsck
在 中放置如此多的目录时/lost+found
,这表明存在大量损坏。很可能存在更多损坏,但由于损坏位于文件内容而不是元数据中,因此 fsck 无法知道。
从备份恢复时,请确保它是干净的备份。腐败可能在被发现之前就已经开始了。
识别文件内容的唯一方法lost+found
是查看它们并找出答案。没有系统的方法。如果有的话,fsck 就会做到这一点。
查看您显示的内容/lost+found
,看起来该/var
目录已损坏。您可以尝试通过创建/var
适当的条目并将其移至/lost+found
来修复它/var
。
# Running as root, of course
umask 022
mkdir /var
mv /lost+found/\#87867 /var/lock
mv /lost+found/\#87868 /var/run
mv /lost+found/\#89866 /var/local
mv /lost+found/\#89868 /var/mail
…
我从元数据(所有权和符号链接目标)中找出了上面的条目。您可以通过查看目录内容来了解更多信息。与现有系统安装进行比较(最好是相同的发行版或至少是接近的发行版,但处理器架构并不重要)。
/var/lib
可能是#89865
因为它往往有很多子目录,但这只是一个猜测。它可能来自系统的另一部分。
不要专注于恢复/var/lib/dpkg
而忽略其余的。缺乏/var/lib/dpkg
只是您注意到的第一个症状。
在 PC 上,我建议进行 RAM 测试(使用内存测试86+它在大多数发行版上作为软件包提供,并且至少在 Ubuntu 上默认安装)。在 Raspberry Pi 上,如果您的系统位于 SD 卡上,我建议更换 SD 卡:SD 卡是系统中最不可靠的部分,如果您继续使用它,它可能会不断损坏您的数据。