我正在运行虚拟机,之前我从未管理过它,现在它处于不良状态(但我需要拯救它)。我不是 Linux 专家,但在过去 5 年里,我能够使用谷歌解决问题。昨天忙了一整天,我不知道除了陈述我的问题并提出愚蠢的问题外,我还能做什么。
- 系统无法进行常规启动(但是我可以打开救援根 shell,在其中可以挂载文件系统并在一定程度上启用网络(我可以访问外部网络,但无法打开端口 22 或启动 ssh 守护进程 - 但是我可以启动 apache 并打开端口 80)
- 我无法安装或删除软件,因为 dpkg 总是抱怨旧的 linux 头文件映像(我认为以前的管理员已经从启动分区手动删除了 linux 头文件以腾出空间。)
- 现在每次我尝试执行 apt-get install 或 remove 或 upgrade 或任何其他操作时,它都会抱怨 dkpg 中有太多错误,尤其是一些旧的 linux 映像有错误(我的启动分区上没有),然后它会中止。它还会抱怨找不到文件(与旧的 linux 标头相关)
- 我发现一条建议重新安装 grub2 的说明,我照做了。我认为删除是可行的,但安装却失败了,因为其他软件也无法安装。我非常有信心,下次我想重新启动机器时,我甚至无法进入救援系统,因为 grub2 似乎已被卸载。
- 我不能做类似的事情
apt-get install linux-image-generic
我知道这篇文章甚至没有提出一个合适的问题,但我甚至不知道如何提出一个问题。似乎有很多东西都坏了,显然我有点不知道从哪里开始。
编辑
输出dpkg --get-selections
:http://pastebin.com/CRFaaJ7m
输出apt-get install linux-generic
:http://pastebin.com/7t20Bavu
输出dpgk --configure -a
:http://pastebin.com/Hpmch9dM
此外我认为输出可能很有趣(特别是从第 484 行开始):http://pastebin.com/uUi86FtT
答案1
从状态中只能看到一个旧内核dpkg
,但我不确定它是否真的在磁盘上。
反正:
备份 DPKG 状态文件
cp /var/lib/dpkg/status /var/lib/dpkg/status.backup0
从 DPKG 状态中清除那些手动删除的内核
检查哪一行是包条目
grep -n linux-image-extra-3.13.0-93-generic /var/lib/dpkg/status
打开状态以供编辑(
xxxxx
随行号变化)nano +xxxxx /var/lib/dpkg/status
将其状态更改为
deinstall
如本例Package: linux-image-extra-3.13.0-93-generic Status: install ok installed
到
Package: linux-image-extra-3.13.0-93-generic Status: deinstall ok config-files
Ctrl+O保存 & Ctrl+X退出
对以下软件包执行上一步
linux-image-3.13.0-93-generic linux-image-extra-3.13.0-101-generic linux-image-3.13.0-101-generic
修改 DBus 安装后脚本以跳过错误
nano /var/lib/dpkg/info/dbus.postinst
并评论
set -e
→#set -e
(第 5 行左右)继续上一次安装
dpkg --configure -a
修复依赖项
apt -f install