/var/lib/dpkg/ 在 fsck 后消失

/var/lib/dpkg/ 在 fsck 后消失

所有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 卡是系统中最不可靠的部分,如果您继续使用它,它可能会不断损坏您的数据。

相关内容