恢复 GCE 上无法启动的 Instance

两年前我搞坏过一台 EC2 的机器,而今天一早,我又搞坏了一台 GCE 的机器。这次的起因是 gcsfuse 和 fstab。

先吐槽一下 Ubuntu,在 fstab 加载不成功的时候,居然没有任何恢复的方法,它也不会自己把无法加载的项给禁用了。在 GCE 中,Ubuntu 的表现是无法连上 SSH,没有任何错误信息,连日志文件都看不到。

于是和上次一样,我能做的便是:

  1. 对当前磁盘创建一个 Snapshot;
  2. 创建一台新的临时机器,以 Additional Disk 的方式加载之前创建的 Snapshot;
  3. 修改磁盘上的内容;
  4. 删除临时机器,再创建一台新机器,以 Boot Disk 方式加载修复的磁盘。

GCE 上的 Addition Disk 会出现在 /dev/disk/by-id/ 下,可以使用以下命令查看:

我发现我的磁盘有两个分区,即:

  • /dev/disk/by-id/google-leonax-1
  • /dev/disk/by-id/google-leonax-1-part1

part1 中存放的是主要内容,通过下列命令把它加载出来:

然后在 /leonax-1 中修改相应文件即可。

顺便说一句,GCE 提供了一个 safe_format_and_mount 工具,不知道什么原因,这个工具在这种情况下没有效果,它不认为我的磁盘是一个有效磁盘,拒绝加载。于是我只好用了 Linux 自带的 mount。


发表评论

电子邮件地址不会被公开。 必填项已用*标注