我意外删除了我的 DE,然后破坏了 dpkg

我意外删除了我的 DE,然后破坏了 dpkg

基本上,我决定从 GNOME 3 切换到 MATE。因此,我安装了 MATE(mate_desktop_environment_extras并运行它,然后(仍在 MATE 中)我犯了一个错误,咨询了 Debian Wiki,了解如何删除 GNOME。

aptitude purge dpkg --get-selections | grep gnome | cut -f 1
aptitude -f install
aptitude purge `dpkg --get-selections | grep deinstall | cut -f 1
aptitude -f install

只是,在终端的讣告中,GNOME 的依赖项中包括核心 MATE 包。我自然而然地关掉了电脑,希望没有什么重要的东西被删除。我大错特错了。GRUB 可以工作,但标准启动会带我进入一个无法工作的基于文本的登录界面。

因此,下一个问题是如何获得互联网连接(安装软件包),因为我使用的 wifi 必须通过 PEAP 或类似方式进行身份验证,而我发现使用标准 iwconfig 无法做到这一点。相反,我在手机上设置了一个热点,我现在正在使用它。获得互联网后,我尝试使用 Aptitude 重新安装我丢失的东西(我不太确定)。

不起作用,所以我安装了 Synaptic,它试图帮我安装缺少的东西。大多数软件包都安装了,有些没有,但这并不重要。基本上,我分阶段安装软件包,无论 Synaptic 向我抛出什么(卡住了)。在各个点,dpkg 都会“中断”,我需要

sudo dpkg --configure -a

直到我收到一条警告,说无法写入,/var/lib/dpkg/status因为"no space left on device"。 df 告诉我dev/loop0dev/loop1已满。我查找了它们的用途,但所有恢复空间的方法都涉及 dpkg。

在 /var/lib/dpkg/status 中,我发现如果我删除其中的一些内容,那么就会有更多的空间可以写入。但我破坏了文件。所以我尝试删除它并重新创建它。没有用。

所以,基本上我不知道如何dpkg具体修复以及总体修复我的电脑。

这一切的希望在于,我至少足够明智地安装了 grml 作为备份。这就是我输入这些内容的方式。它能用,但我仍然想找回我的电脑。

抱歉,我发牢骚了。一开始我本想说我不想从头开始,但现在我真的不在乎了。问题是我没有 Live CD。

嗯,那我该怎么办?我会尽力回答你的任何问题。

更新:(因为我无法评论)所以我不太确定这个 grml (http://grml.org/files/) 备份与其他垃圾分开,但 /var/backups/dpkg.status.0 无法统计,因为它不存在。非常感谢您花时间写下这个回复。存在什么? ls -av (grml@grml) 揭示

.  boot grml-live initrd.img.old media proc sbin tmp vmlinuz 
.. dev home lib mnt root srv usr vmlinuz.old 
bin etc initrd.img lib64 opt run sys var

找不到 dpkg status 的备份。为了澄清起见,我执行了 df 并了解到“dev/loop”0 和 1 已满。为了清理空间,我有一个绝妙的主意,那就是破坏 dpkg status,还记得吗?所以我基本上不知道如何清理那里的空间。另外,我应该提到它,但我使用的是 debian。我知道这是 askubuntu,但我们女儿发行版的用户社区很棒,所以我想我会试一试。我应该早点这样做,但 uname -a

Linux grml 3.16.0-1-grml-amd64 #1 SMP Debian 3.16.7-1+grml.1
(2014-11-05) x86_64 GNU/Linux

grml 是为系统救援而设计的,但我猜它是一款相当不起眼的工具。基本上,我想删除其他所有内容,然后使用此 wifi 在新分区上安装新的 deb。

再次更新:我刚刚破坏了这个 grml 分区上的 dpkg。它在我的主分区上。问题是我无法在那里连接互联网(debian 救援)。我的热点已打开,但我无法关联接入点,无论这意味着什么。

最后更新:原来我忘了 ifconfig wlan0 up。我的电脑在 mate 上运行良好,gnome 被清除,而且我没有丢失任何其他数据!结局很圆满。

答案1

此时,您的系统可能已经基本完好无损,并且经历了很多事情。

修复时是可能的(但现在非常困难),可能有很多非常大的问题需要用比胶带更强大的东西来解决。

理想情况下,您应该重新安装系统,并备份所有重要内容以便以后恢复。


现在,如果重新安装不是一个选项,您可以用胶带封住系统以尝试修复它。

首先,准备好你的(方便的)备份/var/lib/dpkg/status。你有一份,不是吗?如果没有,对不起,你完蛋了, Linux 决定对你很好。你有一个可用的版本/var/backups/dpkg.status.0

复制您的备份:

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

现在,您需要dpkg重新启动并运行。cd /tmp到达不重要的地方,并获取`dpkg 二进制文件:

apt download dpkg

尝试重新安装,并祈祷它能正常工作。如果没有,我们有很多更大的问题。

sudo dpkg -i dpkg*.deb

一旦完成,重新安装你的 Ubuntu 基础:

apt-get download base-files
sudo dpkg -i base-files*.deb

如果一切看起来还好,指示dpkg清理并重建一切:

dpkg --audit
sudo apt-get update
sudo apt-get check

一旦所有东西都恢复原状,并且完成了当天的课程(不要中断活动dpkg任务,或弄乱dpkg/status),我们需要重新安装您的图形界面:

sudo apt install --reinstall ubuntu-mate-desktop

然后,这将获取 MATE 所需的一切并(再次)安装它,以确保一切按预期运行。

至于清理硬盘空间,您可以使用dudf来追踪所有空间的位置,然后手动清理。

部分信息来源于这里

相关内容