1671696284Windows无法找到可用的系统引导启动,导致系统启动失败

问题描述

通过VNC登录实例时,Windows启动界面显示内容包含An operating system wasn't found.

Try disconnecting any drives that don't contain an operating system.错误信息。

阿里云1671696284:Windows无法找到可用的系统引导启动,导致系统启动失败(图1)

可能原因

Windows系统无法找到可用的系统引导启动,导致系统无法启动。

解决方案

使用快照恢复系统盘

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

警告 

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

  1. 登录ECS管理控制台。

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

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

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

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

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

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

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

Linux

1662001143:Linux系统GRUB引导失败

问题描述

通过VNC登录实例时,可以看到grub>grub resuce>错误信息,它会导致ECS实例的操作系统启动失败。阿里云1671696284:Windows无法找到可用的系统引导启动,导致系统启动失败(图2)

可能原因

grub引导失败进而导致操作系统启动过程无法继续。

grub引导失败的可能原因有很多种,包括如下原因:

  • grub组件相关文件缺失,比如:/boot/grub2/grub.cfg文件的缺失。

  • grub2内配置不正确或者磁盘上grub2引导已经损坏。

  • 如果在VNC界面有显示类似以下内容的,表示有grub2关键依赖的mod缺失。

    /boot/grubz/i386-pc/normal.mod notfound.

  • 如果在VNC界面有显示类似以下内容的,表示grub2无法识别到对应的分区。

    error:no suchpartition 

  • 如果在VNC界面有显示类似以下内容的,表示grub2无法识别所在的分区文件系统类型。

    error:unknown filesystem

解决方案

方案一:修复异常ECS实例的数据盘

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

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

    说明 

    本步骤执行完毕,如果您未退出chroot环境,则需要在正常ECS实例上继续执行exit命令退出chroot环境。

  2. 执行如下操作,修复系统盘。

    • 方法一:如果grub2关键依赖的mod缺失或者grub2在磁盘上的信息损坏,您可以在chroot环境中执行grub2-install /dev/vdb命令,重新安装grub2来修复对应问题,操作如下:

    • 方法二:在ECS控制台上初始化系统盘,具体操作,请参见重新初始化系统盘。

      警告 

      重新初始化操作会清空云盘已写入数据,建议操作前创建快照备份数据。创建快照的具体操作,请参见创建一个云盘快照。

    1. 通过磁盘序列号查找对应异常系统盘挂载之后的在OS内的设备名。

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

    2. 登录正常ECS实例,切换到root用户,依次执行以下命令,进入正常实例的被挂载目录(以/mnt为例)。

      mount -o bind /proc/ /mnt/proc/
      mount -o bind /sys/ /mnt/sys/
      mount -o bind /dev/ /mnt/dev/
      chroot /mnt


    3. 登录正常ECS实例,切换到root用户,依次执行以下命令,进入正常实例的被挂载目录(以/mnt为例)。

    4. 执行grub2-install /dev/vdb命令,重新安装系统盘上的grub。

    5. 在正常ECS实例上输入exit命令,退出chroot。

  3. 在异常ECS实例中恢复挂载系统盘。

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

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

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

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

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

警告 

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

  1. 登录ECS管理控制台。

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

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

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

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

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

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

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

方案三:重置系统盘

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

警告 

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

  1. 停止ECS实例。

    1. 登录ECS管理控制台。

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

    3. 找到需要停止的ECS实例,在操作列,单击阿里云1671696284:Windows无法找到可用的系统引导启动,导致系统启动失败(图3) > 实例状态 > 停止

  2. 重新初始化系统盘。

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

    2. 单击云盘页签。

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

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

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

      完成重新初始化后,实例会自动启动。阿里云1671696284:Windows无法找到可用的系统引导启动,导致系统启动失败(图4)