如何在 chroot 中替换 /lib/modules?

如何在 chroot 中替换 /lib/modules?

我安装的系统意外删除了我的模块,包括所有模块、所有旧模块以及最新的 3.2.41 模块。我安装的系统已经安装完毕,chroot我不知道该怎么办。我在这里找到了一个答案,说要下载标题,当我尝试时,它说它们已经是最新版本,并创建一个指向的符号链接/lib/modules/linux-headers-pkgname/build,它允许我创建指向的链接,/lib/modules/linux-headers-3.2.41/但不允许进一步操作。

如果有人能帮我解决这个问题,我已经chroot安装了正确的系统以及procsys/dev/pts,此时我只是不知道要下载和安装什么包,或者如何将我需要的东西放回/lib/modules。我也应该删除这个符号链接吗?我在外部驱动器上备份了 3.2.41,我可以将它复制回正确的文件夹并恢复我的模块吗?我使用的是 Ubuntu 32 位 12.04。

答案1

我启动了实时系统,登录了 root shell,登录了 root

$ sudo -i password

我挂载了我的文件系统:

# mount /dev/sda6

然后我挂载了 sys、proc、dev 和 dev/ptsL

# mount -o bind /dev /mnt/dev
# mount -o bind /proc /mnt/proc
# mount -o bind /sys /mnt/sys
# mount -o bind /dev/pts /mnt/dev/pts

然后我 chroot:

# chroot /mnt

之后我确认所有我移过来的模块都被移除了,因为我终于能够复制我备份在外部设备上的模块了,我尝试将实时系统中的模块安装到我的文件系统中,但它们并没有完全起作用,它们所做的只是修复了安装其他文件系统和一些 USB 访问的问题。因此,我使用了:

# rm -r /lib/modules

然后我确保我的互联网连接仍然良好:

$ ping -c 5 google.com

然后,在确认我可以访问互联网后,我运行了一些更新,因为每隔几天就会发布更新,我的文件系统检查了我的内核,看是否需要更新任何内容,我可以通过这种方式重新安装我的模块。我运行了:

# apt-get update  
# apt-get dist-upgrade

完成这一切后,我经常ls检查我的模块是否回来了,结果发现它们确实回来了/lib/modules。我重新启动了计算机,一切都恢复正常了。

感谢那边帮助我的好人ubuntuforums.org

相关内容