1662001144:Linux系统GRUB配置中root根目录的UUID错误
问题描述
通过VNC登录实例时,从VNC控制台上可以看到以下日志:
![阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图1) 阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图1)](https://www.wailaizhe.com/uploads/allimg/20230207/1-23020H31J5953.jpg)
可能原因
在Linux实例启动过程中(dracut-initqueue)界面显示Warning: /dev/disk/by-uuid/10c0e7e5-557a-40c1-893c-1e2dcba***** does not exist
一般是因为grub.cfg内配置了UUID设备,可实际对应设备却又不存在所导致的。
例如:图中配置了root=UUID=10c0e7e5-557a-40c1-893c-1e2dcba*****
的UUID设备。
![阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图2) 阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图2)](https://www.wailaizhe.com/uploads/allimg/20230207/1-23020H31J5946.jpg)
解决方案
卸载异常ECS实例的系统盘,并将该磁盘作为数据盘挂载到正常ECS实例中。
具体操作,请参见如何恢复系统盘数据?的步骤一~步骤四。
进入正常实例中,通过磁盘序列号查找对应异常系统盘挂载之后在OS内的设备名。
具体操作,请参见查看磁盘序列号,此处以/dev/vdb为例。
通过blkid /dev/vdb1获取到对应的文件系统UUID 。
/dev/vdb1: UUID="10c0e7e5-557a-40c1-893c-1e2dcba*****" TYPE="ext4"
修改异常系统盘的grub2.cfg文件内的UUID替换为上述获取到的UUID值。
恢复异常ECS实例的系统盘。
具体操作,请参见如何恢复系统盘数据?的步骤五。
通过SSH或VNC远程登录已修复的ECS实例,确认ECS实例恢复正常。
1662001145:Linux系统关机时卡住
问题描述
ECS实例内部OS启动失败,通过VNC登录实例,界面显示内容包含grub>或grub resuce>错误信息,本质是grub引导失败导致OS无法继续启动。
CentOS release 5.8(Final) Kernel 2.6.18-308.el5 on anx 86_64 iZuf6isbofkgfnm5qp***** login:md:stopping allmddevices. System halted.
可能原因
系统在关机过程中因未知原因卡住,详细根因需要具体分析系统日志。
解决方案
可以尝试通过ECS控制台强制重启实例来修复问题。具体操作如下:
强制重启实例时,可能会造成内存中的缓存数据丢失。
登录ECS管理控制台。
在左侧导航栏,选择
。在顶部菜单栏左上角处,选择地域。
找到需要重启的ECS实例。
如果重启一个实例,在操作列,单击
> 实例状态 > 重启。
如果重启多个实例,选择多个实例(所选实例的状态必须一致),并在页面底部单击
> 重启。
在重启实例对话框中,选择重启方式,并单击确定。
1662001146:Linux系统/etc/fstab文件中配置的某个挂载点对应的设备不存在
问题描述
通过VNC访问实例,发现界面上不断打印出A start job is running错误信息。
Booting from 0000:7c00 /: clean, 53966/2621440 files, 648440/10485499 blocks A start job is running for dev-xvda1.device (5s / 1min 30s) A start job is running for dev-xvda1.device (6s / 1min 30s) A start job is running for dev-xvda1.device (7s / 1min 30s) ......
可能原因
ECS实例内部/etc/fstab
配置了不存在的设备挂载点,如下图,实例内部/etc/fstab
配置了/dev/xvda1设备实际不存在,则会提示"A start job is running for dev-xvda1.device"。
![阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图5) 阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图5)](https://www.wailaizhe.com/uploads/allimg/20230207/1-23020H31J6306.jpg)
解决方案
等系统检测跑完预定的时间,比如上述是1min30s之后会出现如下界面:
输入密码 ,登录进入OS内部,并执行
mount -a
命令查看具体报错的行。注释或者删除
/etc/fstab
文件中该行配置后重新启动ECS实例。
1662001147:Linux系统出现操作系统崩溃
问题描述
ECS实例内部OS启动失败,通过VNC访问实例时,可以看到VNC控制台日志有Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block
错误信息。
可能原因
出现Kernel panic的原因有很多种,可能是内核问题、业务问题或者其他问题。具体错误信息如下:
Kernel panic - not syncing
fatal exception in interrupt
Kernel panic - not syncing: Attempted to kill the idle task!
Kernel panic - not syncing: killing interrupt handler!
Kernel panic - not syncing: Attempted to kill init!
解决方案
您可以根据您的需求选择适合您的解决方案。
重启ECS实例
如果您希望快速恢复业务正常使用,则您可以在控制台强制重启实例。具体操作如下:
强制重启ECS实例时,可能会造成内存中的缓存数据丢失。
登录ECS管理控制台。
在左侧导航栏,选择
。在顶部菜单栏左上角处,选择地域。
找到需要重启的ECS实例。
如果重启一个实例,在操作列,单击
> 实例状态 > 重启。
如果重启多个实例,选择多个实例(所选实例的状态必须一致),并在页面底部单击
> 重启。
在重启实例对话框中,选择重启方式,并单击确定。
1662001148:Linux系统的关键系统文件缺失
问题描述
ECS实例内部OS启动失败,通过VNC可以看到类似execute/bin/sh, giving up:No such file or directory
的输出。
0K] Stopped dracut cmdline hook. Stopping dracut cmdline hook... OK] Stopped Create Static Device Nodes in/dev. Stopping Create Static Device Nodes in/dev... OK] Stopped Create list of required sta...ce nodes for the current kernel. Stopping Create list of required st...nodes for the current kernel... OK]ClOSed udev Control Socket. OK]ClOSed udev Kernel Socket. Starting Cleanup udev dDB. [OK] Started Cleanup udev dDB. 6.573859] system d-journald[106] :Received SIGTERM from PID 1(system d) . [DK]Reached target Switch Root. [OK] Started Plymouth switch root service. Starting Switch Root... [6.583367] systemd[1] :No /sbin/init, trying fallback [6.584388] systemd[1] :Failed to execute/bin/sh, giving up:No such file or directory [892.889761] random:crn gin it done
可能原因
ECS实例内部/bin/sh
或者/bin/bash
文件或者软链被删除,导致实例启动的失败。
解决方案
方案一:修复异常ECS实例的数据盘
卸载异常ECS实例的系统盘,并将该磁盘作为数据盘挂载到正常ECS实例中。
具体操作,请参见如何恢复系统盘数据?的步骤一~步骤四。
在正常ECS实例中,将对应的/bin/sh或者/bin/bash文件拷贝到异常ECS系统盘内。
如将正常ECS实例的/bin/sh拷贝到异常ECS实例(192.168.XXX.XXX)中。
scp /bin/sh root@192.168.XXX.XXX:/bin/sh
恢复异常ECS实例的系统盘。
具体操作,请参见如何恢复系统盘数据?的步骤五。
通过SSH或VNC远程登录已修复的ECS实例,确认ECS实例恢复正常。
方案二:使用快照恢复系统盘
如果方案一操作之后还是无法恢复系统盘grub2引导实例启动,您可以选择如下方案进行操作。
如果在您存有快照的情况下,您可以使用快照恢复系统盘。具体操作如下:
回滚云盘是不可逆操作,从快照的创建日期到回滚云盘时这段时间内的数据会丢失。为避免误操作,建议您在回滚前为云盘创建一份快照备份数据。具体操作,请参见创建一个云盘快照。
登录ECS管理控制台。
在左侧导航栏,选择
。在顶部菜单栏左上角处,选择地域。
找到需要回滚云盘的实例,单击实例ID。
在实例详情页,单击快照页签。
选择目标快照,在操作列中单击回滚磁盘。
说明 单次只能回滚一块云盘,实例上挂载的其他云盘不受影响。回滚后,整块云盘会恢复到某个时间点的状态,而不是某个分区或目录当时的状态。在弹出的对话框中,单击确定。
说明- 在单击确定前,建议您单击创建快照备份最新的数据。
- 如果您选择回滚后立即启动实例,云盘回滚成功后,实例会自动启动。
方案三:重置系统盘
如果您系统盘内没有重要数据的情况下,则您可以重置系统盘。具体操作如下:
重置系统盘操作会清空云盘已写入数据,建议操作前创建快照备份数据。具体操作,请参见创建一个云盘快照。
停止ECS实例。
登录ECS管理控制台。
在左侧导航栏,选择
。找到需要停止的ECS实例,在操作列,单击
> 实例状态 > 停止。
重新初始化系统盘。
找到需要重新初始化系统盘的实例,单击实例ID进入实例详情页。
单击云盘页签。
找到系统盘,在操作列中,单击重新初始化云盘。
在弹出的重新初始化云盘对话框里,配置重新初始化参数。
单击确认重新初始化云盘。
完成重新初始化后,实例会自动启动。