【问题标题】:Google VM Instant - Unable to access SSHGoogle VM Instant - 无法访问 SSH
【发布时间】:2021-02-13 07:01:42
【问题描述】:

我从 6 个月前开始安装 Google Click to Deploy 的 ERPNext,并使用该软件,该软件从上周开始工作,我无法访问系统和 SSH

当使用 SSH 连接时,系统显示通过 Cloud Identity-Aware Proxy 连接失败,代码为 4003,有人可以帮我解决这个问题吗?

知道如何解决这个问题吗?

【问题讨论】:

  • 1) 查看 Google Cloud 防火墙已将端口 22 设置为允许。 2) 重启您的实例。 3) 通过串口连接并查看 SSH 服务器的日志。 4) 尝试连接启用调试的 ssh 程序ssh -v -i private-key server-ip-address 5) 在您的问题中发布结果。
  • 非常感谢,我检查了 GCF 是否有 port22,重启后查看了一个失败的串行端口,详细信息如下: 失败:根文件系统的文件系统检查失败 /dev/ 上的根文件系统sdb1 需要手动 fsck。无论如何要重新连接操作系统?
  • Serhii Rohoza 就修复根文件系统所需的步骤发布了一个很好的答案。添加一项额外的项目并确保文件系统在文件系统修复后没有耗尽可用空间。
  • @Jeff 如果您没有 /dev/sdb1 的 /etc/fstab 条目,那么您可以尝试从 VM 访问 detach sdb1 磁盘并重新启动 VM,因为我相信根分区 / dev/sda1 足够一致,可以启动机器。如果是这样,请按照 - SerhiiRohoza 的描述修复 sdb1 并重新附加以检查。

标签: google-cloud-platform google-compute-engine erpnext


【解决方案1】:

要解决此问题,您应该在引导磁盘上运行 fsck 命令。

要做到这一点,您可以按照以下步骤操作:

  1. stop你的虚拟机实例(不要删除):
gcloud compute instances stop [INSTANCE_NAME]

在从实例分离启动磁盘之前,您必须停止 实例。无需卸载磁盘。

  1. detach VM 实例的启动盘(通常 DISK_NAME 与 INSTANCE_NAME 相同):
gcloud compute instances detach-disk [INSTANCE_NAME] --disk=[DISK_NAME]
  1. create调试虚拟机实例:
gcloud compute instances create debug-instance
  1. attach 你的启动盘作为调试实例的非启动盘,但不要挂载它:
gcloud compute instances attach-disk debug-instance --disk [DISK_NAME] --device-name debug-disk
  1. connect 调试实例:
gcloud compute ssh debug-instance
  1. 查找磁盘的根分区,使用命令ls -l /dev/disk/by-id(在本例中为/dev/sdb1)以part1 表示法标识:
$ ls -l /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root  9 Feb 13 14:56 google-debug-disk -> ../../sdb
lrwxrwxrwx 1 root root 10 Feb 13 14:56 google-debug-disk-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 11 Feb 13 14:56 google-debug-disk-part14 -> ../../sdb14
lrwxrwxrwx 1 root root 11 Feb 13 14:56 google-debug-disk-part15 -> ../../sdb15
lrwxrwxrwx 1 root root  9 Feb 13 14:56 google-persistent-disk-0 -> ../../sda
lrwxrwxrwx 1 root root 10 Feb 13 14:56 google-persistent-disk-0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 11 Feb 13 14:56 google-persistent-disk-0-part14 -> ../../sda14
lrwxrwxrwx 1 root root 11 Feb 13 14:56 google-persistent-disk-0-part15 -> ../../sda15
lrwxrwxrwx 1 root root  9 Feb 13 14:56 scsi-0Google_PersistentDisk_debug-disk -> ../../sdb
lrwxrwxrwx 1 root root 10 Feb 13 14:56 scsi-0Google_PersistentDisk_debug-disk-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 11 Feb 13 14:56 scsi-0Google_PersistentDisk_debug-disk-part14 -> ../../sdb14
lrwxrwxrwx 1 root root 11 Feb 13 14:56 scsi-0Google_PersistentDisk_debug-disk-part15 -> ../../sdb15
lrwxrwxrwx 1 root root  9 Feb 13 14:56 scsi-0Google_PersistentDisk_persistent-disk-0 -> ../../sda
lrwxrwxrwx 1 root root 10 Feb 13 14:56 scsi-0Google_PersistentDisk_persistent-disk-0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 11 Feb 13 14:56 scsi-0Google_PersistentDisk_persistent-disk-0-part14 -> ../../sda14
lrwxrwxrwx 1 root root 11 Feb 13 14:56 scsi-0Google_PersistentDisk_persistent-disk-0-part15 -> ../../sda15
  1. 对根分区运行文件系统检查:
sudo fsck /dev/sdb1

例如:

debug-instance:~$ sudo fsck /dev/sdb1
fsck from util-linux 2.33.1
e2fsck 1.44.5 (15-Dec-2018)
/dev/sdb1: clean, 53782/647168 files, 396250/2588667 blocks
  1. stop 调试实例 VM 实例和 detach 您的启动磁盘:
gcloud compute instances stop debug-instance
gcloud compute instances detach-disk debug-instance --disk [DISK_NAME]
  1. reattach VM 实例的启动盘:
gcloud compute instances attach-disk [INSTANCE_NAME] --disk=[DISK_NAME] --boot
  1. start 你的虚拟机实例:
gcloud compute instances start [INSTANCE_NAME]
  1. check VM 实例通过串口的启动日志。
  2. delete调试实例:
gcloud compute instances delete debug-instance

此外,请查看文档 Detaching and Reattaching Boot DisksTroubleshooting VM start up

【讨论】:

  • 感谢您告诉我。如果对您有帮助,请接受/支持我的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多