Dpkg

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

  • February 9, 2019

所有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)?如果是這樣,怎麼做?

很抱歉,但在這個階段,您最好從乾淨的備份中恢復。當在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 測試(使用Memtest86+,它在大多數發行版上作為一個軟體包提供,並且至少在 Ubuntu 上預設安裝)。在 Raspberry Pi 上,如果您的系統使用 SD 卡,我建議更換 SD 卡:SD 卡是系統中最不可靠的部分,如果您繼續使用它,它可能會不斷損壞您的數據。

引用自:https://unix.stackexchange.com/questions/442154