我目前正在使用 Ubuntu 22.04 LTS 运行深度学习服务器。重启后,它不断出现内核恐慌,并显示错误消息“未找到 /sbin/init”和“拒绝 /etc/init 权限”。恢复模式根本没有帮助。
通过快速搜索,我发现此问题通常发生在部分更新损坏 initrd 映像之后。按照重新生成 initrd 映像的典型方法,我使用 USB 启动进入 Ubuntu 22.04 LTS 实时“试用 Ubuntu”。我使用“sudo parted -l”检查了分区,结果显示根分区“/”位于“/dev/nvme0n1p3”,启动分区“/boot”位于“/dev/nvme0n1p2”。
在实时环境中,我将这两个分区挂载在“/mnt”和“/mnt/boot”上,并使用“mount --bind”命令挂载了一些目录(/dev、/dev/pts、/proc 和 /sys)。然后,我“chroot”进入“/mnt”目录。在通过 GUI 网络管理器提供正确的静态 IP 配置后,网络在实时环境和 chroot 内部均能正常工作。我尝试了各种命令来重新生成 initrd 映像,但都不起作用。
详细解释一下,“update-initramfs -u”最初在“fuse”步骤失败。因此,我通过 apt-get install --reinstall kmod 重新安装了 fuse,修复了这个问题。但是,然后我开始看到“udev”失败(返回 1)。没有其他错误消息提供一些线索。apt-get install --reinstall 无法修复此问题。
我尝试了如下所示的其他命令,但每个命令都导致相同的 udev 错误:
- apt-get install --reinstall init
- apt-get 安装--重新安装 kmod
- apt-get install --reinstall initramfs-tools
- 将 /boot 的内容复制到临时文件夹,并在临时文件夹中运行 update-initramfs
以下是我尝试过但均不起作用的其他一些方法:
- 检查 /etc/init 的权限,为 755
- 使用适当的权限从 /sbin/init 创建到 /lib/systemd/systemd 的符号链接(755)
- 奇怪的是,即使在创建 /sbin/init 作为符号链接后,内核恐慌消息仍然坚持 /sbin/init 不存在
任何帮助都将不胜感激。谢谢。
答案1
从 snap-store 更新后,我也遇到了这个问题。我所做的是启动 Ubunut live CD,挂载损坏的驱动器,然后 #cp -r -n /usr/ : /mounted_drive/ 它帮助恢复了丢失的文件,不知道为什么会发生这种情况。