本文主要介绍ECS实例无法启动的原因以及解决方案。
问题现象
实例无法正常启动,且出现类似如下的错误信息。
[ OK ] Reached target Remote File Systems (Pre).
[ OK ] Reached target Remote File Systems.
[ 1.575629] EXT4-fs (vda1): mounted filesystem with ordered data mode. Opts: (null)
[ OK ] Mounted /sysroot.
[ OK ] Reached target Initrd Root File System.
Starting Reload Configuration from the Real Root...
[ OK ] Started Reload Configuration from the Real Root.
[ OK ] Reached target Initrd File Systems.
[ OK ] Reached target Initrd Default Target.
Starting dracut pre-pivot and cleanup hook...
[ 1.661164] tsc: Refined TSC clocksource calibration: 2499.915 MHz
[ OK ] Started dracut pre-pivot and cleanup hook.
Starting Cleaning Up and Shutting Down Daemons...
[ OK ] Stopped dracut pre-pivot and cleanup hook.
[ OK ] Stopped target Timers.
[ OK ] Stopped target Remote File Systems.
[ OK ] Stopped target Remote File Systems (Pre).
Starting Plymouth switch root service...
[ OK ] Stopped dracut initqueue hook.
[ OK ] Stopped target Initrd Default Target.
[ OK ] Stopped target Basic System.
[ OK ] Stopped target System Initialization.
Stopping udev Kernel Device Manager...
[ OK ] Stopped target Sockets.
[ OK ] Stopped target Paths.
[ OK ] Stopped Apply Kernel Variables.
[ OK ] Stopped target Slices.
[ OK ] Stopped target Local File Systems.
[ OK ] Stopped udev Coldplug all Devices.
[ OK ] Stopped target Swap.
[ OK ] Stopped udev Kernel Device Manager.
[ OK ] Stopped dracut pre-udev hook.
[ OK ] Stopped dracut cmdline hook.
[ OK ] Stopped Create Static Device Nodes in /dev.
[ OK ] Stopped Create list of required sta...ce nodes for the current kernel.
[ OK ] Closed udev Control Socket.
[ OK ] Closed udev Kernel Socket.
Starting Cleanup udevd DB...
[ OK ] Started Cleaning Up and Shutting Down Daemons.
[ OK ] Started Cleanup udevd DB.
[ OK ] Reached target Switch Root.
[ OK ] Started Plymouth switch root service.
Starting Switch Root...
[FAILED] Failed to start Switch Root.
See 'systemctl status initrd-switch-root.service' for details.问题原因
/boot目录下缺少内核映像
vmlinuz或者根文件系统(rootfs)映像initramfs等关键启动文件,导致实例系统无法正常启动。/etc/os-release和/usr/lib/os-release文件均不存在,导致系统初始化程序
systemd无法正确识别系统所在位置,从而导致实例系统无法正常启动。
说明
以下操作已在Alibaba Cloud Linux 3.2 64位操作系统中进行验证。其它操作系统操作可能有所差异,具体情况请参阅相应发行版的官方文档。
方法一
恢复系统盘快照。
具体操作,请参见更换系统盘后如何通过原系统盘快照恢复系统盘中的数据。
使用快照回滚云盘。
具体操作,请参见使用快照回滚云盘。
方法二
实例已经启动
在其它同镜像的实例上使用scp或者OSS中转复制启动文件到该ECS实例中。
实例无法启动
从其它同镜像的实例上复制并恢复启动文件。
查找缺少文件。
创建相同镜像的ECS实例。
具体操作,请参见使用自定义镜像或共享镜像创建实例。
将异常实例的系统盘卸载,并记录磁盘ID。
具体操作,请参见卸载系统盘。
将卸载下来的系统盘挂载到新的ECS实例上。
具体操作,请参见挂载数据盘。
将启动文件复制到系统中。
将修复后的系统盘重新挂载到原实例上。