刪除 /var/lib。無法打開桌面
嗯,我現在很害怕。
我試圖刪除一個文件夾
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