GCP虚拟机SSH无法连接,扩容启动盘后仍提示[Errno 28]设备无剩余空间
在GCP控制台解决SSH无法连接且磁盘空间不足的问题
问题场景
无法通过SSH连接GCP VM实例,提示磁盘空间不足,已扩容启动盘但问题依旧,错误信息如下:
OSError: [Errno 28] No space left on device: '/var/tmp/cloud-init/cloud-init-dhcp-2e4eit3d'
ERROR non_windows_accounts.go:142 gpasswd: /etc/group.1894: No space left on device
解决方法
方法一:使用GCP串行控制台清理空间
- 打开GCP控制台,定位到目标VM实例的详情页
- 点击顶部的连接到串行控制台,打开串行终端窗口
- 在终端中输入系统用户名和密码登录(若启用OS登录,使用对应账号)
- 登录后执行以下命令:
- 查看磁盘分区使用情况:
df -h - 查找大文件(过滤错误输出):
find / -type f -size +100M 2>/dev/null - 删除冗余文件,比如旧日志:
rm -rf /var/log/*.old,或清理临时目录:rm -rf /tmp/* - 若已扩容启动盘但未扩展文件系统,执行扩展命令(以ext4为例):
resize2fs /dev/sda1(根据实际磁盘设备调整)
- 查看磁盘分区使用情况:
- 完成后重启VM,尝试SSH连接
方法二:将故障磁盘挂载到临时VM清理
- 在GCP控制台创建同区域、同操作系统的临时VM实例
- 停止故障VM实例,进入其磁盘详情页,点击分离磁盘
- 编辑临时VM实例,添加刚才分离的磁盘,设置挂载点为
/mnt/olddisk - 启动临时VM,通过SSH连接后挂载磁盘:
mount /dev/sdb1 /mnt/olddisk(设备名根据实际情况调整) - 进入挂载目录:
cd /mnt/olddisk,用df -h确认空间占用,删除无用大文件 - 清理完成后卸载磁盘:
umount /mnt/olddisk - 停止临时VM,分离磁盘并重新挂载回原VM,启动原VM后尝试SSH连接
内容的提问来源于stack exchange,提问作者Gamil2005
相关产品推荐
相关产品推荐

