Uninstall

刪除 /var/lib。無法打開桌面

  • April 15, 2014

嗯,我現在很害怕。

我試圖刪除一個文件夾

sudo rm /var/lib/texmf -r

但相反,寫了

sudo rm /var/lib -r

我閱讀了一些關於它的文件,並找到了這個執行緒

我嘗試按照上一條評論(第 2 頁)中的所有步驟進行操作,但我不知道如何執行其中列出的一些操作。

所以這就是我所做的一切:

首先,我創建了這些文件夾:

mkdir /var/lib/dpkg/alternatives/  /var/lib/dpkg/info/  /var/lib/dpkg/methods/  /var/lib/dpkg/parts/  /var/lib/dpkg/  triggers/  /var/lib/dpkg/updates/  /var/lib/apt/  /var/lib/aptitude  /var/lib/binfmts/  /var/lib/misc/

我必須通過 sudo 來完成,並且必須先創建子文件夾才能創建所有文件夾。

然後我做了:

aptitude update && aptitude upgrade

這就是混亂開始的地方。

首先,使用者@marco.org 列出的警告對我來說沒有出現(我什至不確定它們是用什麼語言編寫的),而是出現了另一個錯誤,說它無法創建一些-文件,因為某些文件夾(/var/lib 中的子文件夾)不存在。

我創建了文件夾(使用 sudo mkdir),過程完成(有一些我不記得的錯誤)。

然後我通過以下方式移動了上面連結中提到的文件 dpkg.status.0:

sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status

(再次,我必須創建文件夾。我不太確定我為什麼這樣做,我只是在某處讀到它)

所以顯然第一個問題已經解決了。然後我嘗試安裝一些程序,使用

sudo apt-get install some_program

即使它顯示了一些警告(所有關於 /var/lib 的子目錄中缺少的文件),程序也已安裝,我可以毫無問題地使用它。

幾分鐘後,我想放鬆一下,在 youtube 上看一些影片(我已經安裝了最新版本的Google瀏覽器),但我沒有放鬆,而是有另一個恐慌的理由:

沒有聲音輸出影片,或 Chrome 上的任何其他應用程序(其他程序確實有聲音)。

所以我驚慌失措並關閉了我的電腦。

然後,當我打開它,Linux 啟動後,我沒有看到我的桌面,而是一個控制台螢幕,要求我輸入登錄名和密碼。

我提供了資訊,然後出現了一些消息,說它無法創建文件,因為缺少一個文件夾。我創建了它:

sudo mkdir /var/lib/ubuntu-release-upgrader

然後另一條消息說它無法移動文件,所以我手動移動它:

sudo mv /usr/lib/ubuntu-release-upgrader/release-upgrader-motd -t /var/lib/ubuntu-release-upgrader/

然後我重新啟動系統,希望能看到我的桌面。但相反,在給出我的登錄名和密碼後,顯示了相同的控制台螢幕:

Last login: Tue Apr 8 13:19:16 CST 2014 on tty1
Welcome to Linux Mint 15 Olivia (GNU/LINUX 3.8.0-26-generic i686)

Welcome to Linux Mint
* Documentation: http://www.linuxmint.com

現在我無法回到 GUI 模式,也無法使用我的任何程序。

我想應該有一種方法可以獲取我從安裝 dvd 中刪除的文件夾,但我對這個有點陌生,不知道該怎麼做。

有人可以幫我嗎?我真的很感激。


PS:另外,在刪除 /var/lib 之後,每當我使用 sudo 時,都會出現這樣的一行:

couldn't mkdir /var/lib/sudo, file not existing

但它在之後得到了解決

aptitude update && aptitude upgrade

從備份中恢復。

是的,我知道,您沒有進行備份。好了,現在您明白為什麼備份很重要了。

/var/lib包含很多重要文件。從刪除/var/lib中恢復將使您的系統無法正常工作;即使你設法一瘸一拐,你以後也會遇到各種奇怪的問題。如果您嘗試修復,並在以後遇到任何奇怪的問題,刪除/var/lib可能會受到指責(因此您已經失去了線上獲得支持的希望 - 甚至不想不提它,它只會導致到深深的沮喪)。

/var/lib/dpkg包含已安裝軟體包的數據庫和有關已安裝軟體包的附加資訊,並/var/lib/apt包含由 APT 而不是dpkg. /var/lib/dpkg/status雖然in有一個幾乎是最新的備份/var/backups,但這只是您需要恢復的一小部分。

您可以通過以下方式獲取已安裝軟體包的列表

</var/backups/dpkg.status.0 awk -v 'RS=' -F '\n' '
   /\nStatus: .*installed\n/ {sub(/^Package: /,""); print $1}
' | sort >/var/tmp/packages0.list

檢查/var/log/dpkg.log最新的軟體包安裝和刪除,並相應地手動編輯列表。您現在有一個已安裝軟體包的列表;哪些是手動安裝的,哪些是自動安裝的,而/var/lib/apt.

此時,您可以重新安裝所有軟體包

apt-get update
apt-get --reinstall install `cat /var/tmp/packages0.list`

在此工作之前,您可能需要在其下創建更多目錄/var/lib——您會知道哪些目錄失去了,因為會有錯誤消息。/var/lib/dpkg並且/var/lib/apt應該由root:root模式 755擁有的所有目錄。

我敦促您備份/etc和軟體包列表並重新安裝您的系統。安裝etckeeper以保留更改的歷史記錄/etc,並etckeeper commit 'some meaningful messages'在您更改某些內容時執行/etc,這樣將來進行類似的安裝會更容易。

最簡單的方法可能是重新安裝所有已安裝的軟體包。如果您沒有安裝的列表,您可能需要根據優先級重新安裝。

您可能想從以下開始:

aptitude reinstall ?essential
aptitude reinstall ~pstandard
aptitude reinstall ~prequired
aptitude reinstall ~pimportant

如果您有已安裝的軟體包列表,您可以使用它重新安裝。如果不是,您將需要辨識包。這應該重建 /var/lib 子目錄。

您可能安裝了其他軟體包,並且必須辨識它們。如果你還沒有清理過/var/cache/apt/archives directory,你可以通過命令獲取一個列表。

ls /var/cache/apt/archives | cut -d_ -f1

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