1662001144:Linux系统GRUB配置中root根目录的UUID错误

问题描述

通过VNC登录实例时,从VNC控制台上可以看到以下日志:

阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图1)

可能原因

在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)

解决方案

  1. 卸载异常ECS实例的系统盘,并将该磁盘作为数据盘挂载到正常ECS实例中。

    具体操作,请参见如何恢复系统盘数据?的步骤一~步骤四。

  2. 进入正常实例中,通过磁盘序列号查找对应异常系统盘挂载之后在OS内的设备名。

    具体操作,请参见查看磁盘序列号,此处以/dev/vdb为例。

  3. 通过blkid /dev/vdb1获取到对应的文件系统UUID 。

    /dev/vdb1: UUID="10c0e7e5-557a-40c1-893c-1e2dcba*****" TYPE="ext4"

  4. 修改异常系统盘的grub2.cfg文件内的UUID替换为上述获取到的UUID值。

  5. 恢复异常ECS实例的系统盘。

    具体操作,请参见如何恢复系统盘数据?的步骤五。

  6. 通过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控制台强制重启实例来修复问题。具体操作如下:

重要 

强制重启实例时,可能会造成内存中的缓存数据丢失。

  1. 登录ECS管理控制台。

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在顶部菜单栏左上角处,选择地域。

  4. 找到需要重启的ECS实例。

    • 如果重启一个实例,在操作列,单击阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图3) > 实例状态 > 重启

    • 如果重启多个实例,选择多个实例(所选实例的状态必须一致),并在页面底部单击阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图4) > 重启

  5. 重启实例对话框中,选择重启方式,并单击确定

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)

解决方案

  1. 等系统检测跑完预定的时间,比如上述是1min30s之后会出现如下界面:

    阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图6)
  2. 输入密码 ,登录进入OS内部,并执行mount -a命令查看具体报错的行。

  3. 注释或者删除/etc/fstab文件中该行配置后重新启动ECS实例。

    阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图7)

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实例时,可能会造成内存中的缓存数据丢失。

  1. 登录ECS管理控制台。

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在顶部菜单栏左上角处,选择地域。

  4. 找到需要重启的ECS实例。

    • 如果重启一个实例,在操作列,单击阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图3) > 实例状态 > 重启

    • 如果重启多个实例,选择多个实例(所选实例的状态必须一致),并在页面底部单击阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图4) > 重启

  5. 重启实例对话框中,选择重启方式,并单击确定

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实例的数据盘

  1. 卸载异常ECS实例的系统盘,并将该磁盘作为数据盘挂载到正常ECS实例中。

    具体操作,请参见如何恢复系统盘数据?的步骤一~步骤四。

  2. 在正常ECS实例中,将对应的/bin/sh或者/bin/bash文件拷贝到异常ECS系统盘内。

    如将正常ECS实例的/bin/sh拷贝到异常ECS实例(192.168.XXX.XXX)中。

    scp /bin/sh root@192.168.XXX.XXX:/bin/sh

  3. 恢复异常ECS实例的系统盘。

    具体操作,请参见如何恢复系统盘数据?的步骤五。

  4. 通过SSH或VNC远程登录已修复的ECS实例,确认ECS实例恢复正常。

方案二:使用快照恢复系统盘

如果方案一操作之后还是无法恢复系统盘grub2引导实例启动,您可以选择如下方案进行操作。

如果在您存有快照的情况下,您可以使用快照恢复系统盘。具体操作如下:

警告 

回滚云盘是不可逆操作,从快照的创建日期到回滚云盘时这段时间内的数据会丢失。为避免误操作,建议您在回滚前为云盘创建一份快照备份数据。具体操作,请参见创建一个云盘快照。

  1. 登录ECS管理控制台。

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在顶部菜单栏左上角处,选择地域。

  4. 找到需要回滚云盘的实例,单击实例ID。

  5. 实例详情页,单击快照页签。

  6. 选择目标快照,在操作列中单击回滚磁盘

    说明 单次只能回滚一块云盘,实例上挂载的其他云盘不受影响。回滚后,整块云盘会恢复到某个时间点的状态,而不是某个分区或目录当时的状态。
  7. 在弹出的对话框中,单击确定

    说明
    • 在单击确定前,建议您单击创建快照备份最新的数据。
    • 如果您选择回滚后立即启动实例,云盘回滚成功后,实例会自动启动。

方案三:重置系统盘

如果您系统盘内没有重要数据的情况下,则您可以重置系统盘。具体操作如下:

警告 

重置系统盘操作会清空云盘已写入数据,建议操作前创建快照备份数据。具体操作,请参见创建一个云盘快照。

  1. 停止ECS实例。

    1. 登录ECS管理控制台。

    2. 在左侧导航栏,选择实例与镜像 > 实例

    3. 找到需要停止的ECS实例,在操作列,单击阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图10) > 实例状态 > 停止

  2. 重新初始化系统盘。

    1. 找到需要重新初始化系统盘的实例,单击实例ID进入实例详情页。

    2. 单击云盘页签。

    3. 找到系统盘,在操作列中,单击重新初始化云盘

    4. 在弹出的重新初始化云盘对话框里,配置重新初始化参数。

    5. 单击确认重新初始化云盘

      完成重新初始化后,实例会自动启动。阿里云1662001144:Linux系统GRUB配置中root根目录的UUID错误(图11)