Google-compute-engine 无法正常启动,无法 SSH

use*_*640 2 google-compute-engine

我在 Google Compute Engine 上的实例无法正常启动,无论如何我都无法通过 SSH 连接它。我在实例上有很多东西。我怎样才能恢复它?

日志如下。当我尝试它是否在来自 Windows 的网络上时,我获得了 nat IP,但我无法通过 SSH 正常工作。我也不能从浏览器 SSH。

[    0.519999] md: autorun ...
[    0.520794] md: ... autorun DONE.
[    0.521761] VFS: Cannot open root device "sda1" or unknown-block(0,0): error -6
[    0.523744] Please append a correct "root=" boot option; here are the available partitions:
[    0.525886] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    0.527829] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.19.0-25-generic #26~14.04.1-Ubuntu
[    0.529875] Hardware name: Google Google, BIOS Google 01/01/2011
[    1.656059] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Run Code Online (Sandbox Code Playgroud)

GCP*_*ser 6

在从试用用户迁移到付费用户的过程中,我丢失了具有类似症状的正在运行的实例。但是,在我的情况下,检查了删除实例时自动删除磁盘的“标志”,这阻止了我使用上述方法。所以这是我如何能够恢复我的驱动器:

首先,不要删除损坏的实例。你会需要它。

  1. 在主控制台中,确定与损坏实例对应的磁盘名称:“ gcloud compute disks list
  2. 创建似乎已损坏的驱动器的快照:gcloud compute disks snapshot my-disk-1 --snapshot-names snapshot-1
  3. 从新创建的快照创建并启动一个实例(确保在创建新实例时关闭自动删除标志)。很有可能,新创建的实例将遇到与原始实例完全相同的启动问题。这次没问题,因为您现在可以关闭并删除该实例,而不会丢失在使用 gcloud 计算磁盘列表(例如:new_disk)列出时现在应该可用的驱动器。
  4. 删除实例后,您应该只剩下一个新的可安装驱动器。为此,创建一个与原始实例具有相似操作系统特性的第三个实例。
  5. 从 Google Cloud 控制台并使用 gcloud 命令,将驱动器附加到该新实例(例如 ubuntu-trusty-3)。gcloud compute instance attach-disk ubuntu-trusty-3 --disk DISK --device-name new_disk 您现在应该在该实例上有 2 个可用驱动器。

$ sudo blkid /dev/sda1: LABEL="cloudimg-rootfs" UUID="87f65d22-c9a9-428c-b1ab-b4ad9f8e4c05" TYPE="ext4" /dev/sdb1: LABEL="cloudimg-rootfs" UUID="87f65d22-c9a9-428c-b1ab-b4ad9f8e4c05" TYPE="ext4"

  1. 如果驱动器未显示(sudo blkid),则重新启动该实例。

这是它在我的仪表板上的外观仪表板

就我而言,最令我惊讶的是内核从恢复的驱动器(gmap-server)启动,我又重新开始工作了。我不知道内核如何选择这个与创建实例时创建的那个。如果有人知道,请在这里打个招呼。