背景
Description: Ubuntu 18.04.6 LTS
Release: 18.04
Codename: bionic
服务器安装的Ubuntu18.04 ,重启后卡在logo界面,又被强制断电。随后重启遇到如上图情况,显示报错
run-init:/sbin/init:No such file or directory
end kernel panic - not syncing:Attempted to kill init !exitcode=0x00007f00
解决方法
/sbin/init 是 Linux 系统中至关重要的初始化进程,缺失它将导致系统无法启动。以下是一些解决方法:
1. 从 Live CD/USB 复制 init 文件:
- 准备工作:- Ubuntu Live CD/USB 启动盘。
- **步骤:**1. 使用 Live CD/USB 启动系统。2. 挂载你的根分区,例如:sudo mount /dev/sda1 /mnt (将 /dev/sda1 替换成你的实际分区,我的文件系统是sda5)。3. 复制 init 文件: sudo cp /sbin/init /mnt/sbin/4. 卸载根分区并重启系统。
2.使用 dpkg 命令重新安装 init 软件包:
- 准备工作:- Live CD/USB 启动盘。
- **步骤:**1. 在 Live CD 环境下,挂载根分区。2. 使用 chroot 命令进入你的系统环境: sudo chroot /mnt3. 重新安装 init 软件包: sudo apt-get install --reinstall init4. 退出 chroot 环境: exit5. 卸载根分区并重启系统
3.使用 Ubuntu 安装盘修复系统:
- 准备工作:- Ubuntu 安装盘。
- **步骤:**1. 使用 Ubuntu 安装盘启动系统。2. 选择 "Try Ubuntu" 进入试用模式。3. 打开终端,并运行 sudo apt-get update 更新软件包列表。4. 运行 sudo apt-get install --reinstall ubuntu-minimal 重新安装基础系统软件包,其中包含 init。5. 重启系统。
结合方法1、2。在 Live USB 启动Try Ubuntu系统,挂载根分区后,在/sbin目录下,没有init
sudo cp /sbin/init /mnt/sbin/
之后发现,与Live USB下的init不一致(然而在这一步当时没有用ldd命令确定具体连接,并不确定简答复制是否有用!!)
简单cp后发现区别[如下与上面的截图]
lrwxrwxrwx 1 root root 20 Dec 10 15:33 /mnt/sbin/init -> /lib/systemd/systemd*
随后进入chroot,重新安装 init 软件包: sudo apt-get install --reinstall init。
但是此步骤有可能遇到在chroot中无法访问网络的问题,ping不到baidu,apt会无法解析源地址,通过在/mnt/etc/resolv.conf 插入 nameserver 8.8.8.8 后(添加Google 提供的公共 DNS 服务器的 IP 地址 8.8.8.8) 可以正常使用apt-get install init。
本步骤参考了UBUNTU系统开机报错处理_ubuntu开机找不到sbin/init-CSDN博客
※一定要使用ldd /sbin/init 确定init是否正确。所以,最终没有确定是cp还是apt重新安装确保了init的正确。随后重启服务器,正常进入。
本人仅是Linux使用者,并非专家。仅以此记录未知成功原因的报错处理,供大家交流。
版权归原作者 小白丶Sean Zhang 所有, 如有侵权,请联系我们删除。