![如何修复已删除的模块?](https://linux22.com/image/1080296/%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%E5%B7%B2%E5%88%A0%E9%99%A4%E7%9A%84%E6%A8%A1%E5%9D%97%EF%BC%9F.png)
在磁盘分析器清理空间的过程中,我发现/lib
占用了吨空间,我有绝不之前在磁盘分析器中看到过这个占用这么多空间。问题是,我最近/lib
在我的文件夹中创建了一个文件夹,/home/Development
用于构建一些 Android 内核。所以当我看到这个文件夹时,我以前没有看到过这样的文件夹,我以为我在看/lib
我的 Android 内核文件夹。我甚至没有花一秒钟的时间查看层次结构,就进入它并在终端中将其拉出,我只是想删除占用过多空间的内容。当我看到占用了多少空间时,我的想法就是“删除”。所以我进入文件lib
夹并删除了所有旧文件夹。我不记得确切的名称,但我记得有从 29 开始的文件夹,.0-29-generic-pae
一直到 40。我通常不会乱动这些文件夹,尤其是删除东西,只添加我可能需要进行 Android 开发的东西。
我不小心删除了所有模块/lib/modules
现在我的 Ubuntu 启动并运行,我可以访问我的整个系统,但我没有模块。
回归:
我没有驱动程序,这意味着我无法连接我复制
.0-40-generic-pae
到的外部硬盘,也无法连接到互联网来下载模块。由于我使用了,因此意外删除的模块不在我的垃圾箱中
rm -r
,因此无法从垃圾箱中恢复。有人告诉我只要清除我的内核并重新安装它,这就没有任何麻烦,我头疼的只是弄清楚如何利用我所能访问的内容正确地做到这一点。
我不想只是擦除并重新安装,因为可能有其他方法可以解决这个问题,甚至可能是简单的方法,因为我有吨我不想丢失的数据,如果没有这些模块,我就无法在任何地方备份它们。
另一个建议是启动实时会话并下载我需要的内容,备份它(我想挂载我当前的 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