【问题标题】:Remove directory from Google Cloud Compute Engine using serial console使用串行控制台从 Google Cloud Compute Engine 中删除目录
【发布时间】:2019-05-29 18:15:58
【问题描述】:

我的 Google Cloud Compute Engine 实例上的存储空间(无意中)完全用完了。我无法再通过 SSH 连接到我的实例。我增加了实例上的空间,但它仍然不允许我进行 SSH。我的虚拟机操作系统是 Ubuntu。

我尝试了两件事:

1.) 我尝试创建一个启动脚本来删除一个大目录以清理一些空间。在“自定义元数据”下,我将键设置为“启动脚本”,将值设置为

#! /bin/bash
rm /home/myusername/dir-to-rm

我保存并重置实例,单击“连接到串行控制台”,但我仍然无法 SSH。

2.) 我尝试使用启动脚本通过相同的方法为串行控制台设置登录用户名和密码,但使用以下脚本:

#! /bin/bash
sudo useradd tmpuser
echo 'tmpuser:password' | chpasswd

【问题讨论】:

  • 最简单的解决方案是在 Cloud Console 中调整磁盘大小。然后重启实例。根文件系统将在重新启动时自动调整大小。另一种选择是断开启动驱动器,连接到另一个实例,挂载到目录和清理空间。
  • @JohnHanley 谢谢!我已经尝试调整磁盘大小并重置 VM,但我仍然遇到同样的问题。为了遵循您的第二个建议,是否有任何好的资源/教程可以做到这一点,我已经超出了我的深度试图弄清楚如何做到这一点。
  • 我写了一篇文章来解释 Debian 的过程。对于 Ubuntu 也是如此。 jhanley.com/google-cloud-debian-9-resize-root-file-system关注我的文档。如果您仍然有问题,请捕获我在文章中显示的控制台输出,以便我可以告诉您出了什么问题。
  • 注意:重启实例。捕获所有的串口输出。如果您可以提供下载输出的链接,我将查看控制台跟踪。如果您在我的文章之后仍有问题,请执行此操作。

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


【解决方案1】:

因为他是学生,所以我贡献了我的时间来帮助这个人。恢复的总时间约为一个小时。

问题是由损坏的文件系统引起的。修复文件系统解决了这个问题。然后我将磁盘大小调整为更大以提供更多可用空间。

在启动期间,网络接口无法加载。当然,这会阻止任何形式的连接。这就是 SSH 不起作用的原因。

【讨论】:

    【解决方案2】:

    您可以将磁盘挂载到另一个实例中,删除目录并重新挂载。

    这里是详细信息

    1. 停止当前实例
    2. 编辑实例,从实例中移除磁盘。
    3. 创建一个新实例,并将上面的磁盘作为第二个磁盘附加
    4. 启动新实例
    5. SSH 进入新实例
    6. 挂载第二个磁盘mount /dev/sdb1 /mnt
    7. 删除目录:rm /mnt/home/myusername/dir-to-rm
    8. 卸载磁盘并停止实例
    9. 将磁盘附加回原始实例作为启动磁盘
    10. 开始

    【讨论】:

      【解决方案3】:

      我建议从您的 VM 实例 [1] 创建一个快照,然后使用您创建的快照创建一个磁盘。之后,使用新创建的磁盘创建一个新实例并尝试 ssh。检查您是否可以通过 SSH 访问新创建的实例中的所有文件。

      [1]https://cloud.google.com/compute/docs/disks/create-snapshots

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2020-07-23
        • 1970-01-01
        • 1970-01-01
        • 2016-06-05
        • 1970-01-01
        • 2014-11-12
        • 1970-01-01
        • 2017-05-11
        • 2019-12-30
        相关资源
        最近更新 更多