如何修复已删除的模块?

如何修复已删除的模块?

在磁盘分析器清理空间的过程中,我发现/lib占用了空间,我有绝不之前在磁盘分析器中看到过这个占用这么多空间。问题是,我最近/lib在我的文件夹中创建了一个文件夹,/home/Development用于构建一些 Android 内核。所以当我看到这个文件夹时,我以前没有看到过这样的文件夹,我以为我在看/lib我的 Android 内核文件夹。我甚至没有花一秒钟的时间查看层次结构,就进入它并在终端中将其拉出,我只是想删除占用过多空间的内容。当我看到占用了多少空间时,我的想法就是“删除”。所以我进入文件lib夹并删除了所有旧文件夹。我不记得确切的名称,但我记得有从 29 开始的文件夹,.0-29-generic-pae一直到 40。我通常不会乱动这些文件夹,尤其是删除东西,只添加我可能需要进行 Android 开发的东西。

我不小心删除了所有模块/lib/modules

现在我的 Ubuntu 启动并运行,我可以访问我的整个系统,但我没有模块。

回归:

  1. 我没有驱动程序,这意味着我无法连接我复制.0-40-generic-pae到的外部硬盘,也无法连接到互联网来下载模块。

  2. 由于我使用了,因此意外删除的模块不在我的垃圾箱中rm -r,因此无法从垃圾箱中恢复。

  3. 有人告诉我只要清除我的内核并重新安装它,这就没有任何麻烦,我头疼的只是弄清楚如何利用我所能访问的内容正确地做到这一点。

  4. 我不想只是擦除并重新安装,因为可能有其他方法可以解决这个问题,甚至可能是简单的方法,因为我有我不想丢失的数据,如果没有这些模块,我就无法在任何地方备份它们。

另一个建议是启动实时会话并下载我需要的内容,备份它(我想挂载我当前的 Ubuntu 分区并将其放在那里),然后安装。好吧,我可以这样做,我可以启动实时会话,插入我的外部硬盘,挂载我的 Ubuntu 分区,并将我拥有的 40-generic-pae 模块复制到该系统。

  • 我相信我能做到这一点,对吗?
  • 这是可行的方法吗?
  • 如果是这样,我是否应该将整个文件夹/package直接复制回去/lib/modules,然后重新启动?
  • 或者我应该用不同的方法来实现它?

谁能帮我这个?

答案1

确定 的输出uname -a。例如:4.2.0-18-generic。然后按照上面所述,使用 LiveCD 方法进行启动。

下载以下软件包(4.2.0-18-generic用上面的输出替换):

apt-get download linux-image-4.2.0-18-generic, linux-headers-4.2.0-18-generic, linux-image-extra-4.2.0-18-generic

接下来,将这些复制到损坏系统的硬盘中。重新启动损坏的系统并进入sudo dpkg -i所有这些软件包。

答案2

我也犯了同样的错误,以下是对我有用的方法(使用有线连接):

在终端中运行以下命令:

dpkg -l | grep linux-image-.*-generic

选择要重新安装并运行的内核版本(输入实际版本而不是 4.XY-ZZ):

sudo apt-get install --reinstall linux-image-4.X.Y-ZZ-generic

相关内容