Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 调整引导盘VM(谷歌云)大小后网站完全关闭_Google Cloud Platform_Cloud_Google Cloud Storage_Google Compute Engine - Fatal编程技术网

Google cloud platform 调整引导盘VM(谷歌云)大小后网站完全关闭

Google cloud platform 调整引导盘VM(谷歌云)大小后网站完全关闭,google-cloud-platform,cloud,google-cloud-storage,google-compute-engine,Google Cloud Platform,Cloud,Google Cloud Storage,Google Compute Engine,我不得不将我的DebianLinuxVM的引导磁盘从10GB调整到30GB,因为它已经满了。在这样做并停止/启动我的实例之后,它就变得无用了。我无法进入SSH,也无法访问我的应用程序。上次备份是从1个月前开始的,如果我不让它工作,我们将失去很多工作 我在互联网上读过几乎所有关于调整磁盘大小和重新分区表的内容,但似乎都不管用 运行df-h时,我看到: Filesystem Size Used Avail Use% Mounted on overlay 36G 30

我不得不将我的DebianLinuxVM的引导磁盘从10GB调整到30GB,因为它已经满了。在这样做并停止/启动我的实例之后,它就变得无用了。我无法进入SSH,也无法访问我的应用程序。上次备份是从1个月前开始的,如果我不让它工作,我们将失去很多工作

我在互联网上读过几乎所有关于调整磁盘大小和重新分区表的内容,但似乎都不管用

运行
df-h
时,我看到:

Filesystem      Size  Used Avail Use% Mounted on
overlay          36G   30G  5.8G  84% /
tmpfs            64M     0   64M   0% /dev
tmpfs           848M     0  848M   0% /sys/fs/cgroup
/dev/sda1        36G   30G  5.8G  84% /root
/dev/sdb1       4.8G   11M  4.6G   1% /home
overlayfs       1.0M  128K  896K  13% /etc/ssh/keys
tmpfs           848M  744K  847M   1% /run/metrics
shm              64M     0   64M   0% /dev/shm
overlayfs       1.0M  128K  896K  13% /etc/ssh/ssh_host_dsa_key
tmpfs           848M     0  848M   0% /run/google/devshell
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda       8:0    0   40G  0 disk
├─sda1    8:1      35.9G  0 part /var/lib/docker
├─sda2    8:2    0   16M  1 part
├─sda3    8:3    0    2G  1 part
├─sda4    8:4    0   16M  0 part
├─sda5    8:5    0    2G  0 part
├─sda6    8:6       512B  0 part
├─sda7    8:7    0  512B  0 part
├─sda8    8:8        16M  0 part
├─sda9    8:9    0  512B  0 part
├─sda10   8:10   0  512B  0 part
├─sda11   8:11        8M  0 part
└─sda12   8:12   0   32M  0 part
sdb       8:16   0    5G  0 disk
└─sdb1    8:17   0    5G  0 part /home
zram0   253:0    0  768M  0 disk [SWAP]
运行
sudo lsblk
时,我看到:

Filesystem      Size  Used Avail Use% Mounted on
overlay          36G   30G  5.8G  84% /
tmpfs            64M     0   64M   0% /dev
tmpfs           848M     0  848M   0% /sys/fs/cgroup
/dev/sda1        36G   30G  5.8G  84% /root
/dev/sdb1       4.8G   11M  4.6G   1% /home
overlayfs       1.0M  128K  896K  13% /etc/ssh/keys
tmpfs           848M  744K  847M   1% /run/metrics
shm              64M     0   64M   0% /dev/shm
overlayfs       1.0M  128K  896K  13% /etc/ssh/ssh_host_dsa_key
tmpfs           848M     0  848M   0% /run/google/devshell
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda       8:0    0   40G  0 disk
├─sda1    8:1      35.9G  0 part /var/lib/docker
├─sda2    8:2    0   16M  1 part
├─sda3    8:3    0    2G  1 part
├─sda4    8:4    0   16M  0 part
├─sda5    8:5    0    2G  0 part
├─sda6    8:6       512B  0 part
├─sda7    8:7    0  512B  0 part
├─sda8    8:8        16M  0 part
├─sda9    8:9    0  512B  0 part
├─sda10   8:10   0  512B  0 part
├─sda11   8:11        8M  0 part
└─sda12   8:12   0   32M  0 part
sdb       8:16   0    5G  0 disk
└─sdb1    8:17   0    5G  0 part /home
zram0   253:0    0  768M  0 disk [SWAP]
在增加磁盘大小之前,我确实尝试添加了第二个磁盘,我甚至按照google cloud文档对其进行了格式化和装载,然后再次卸载。(因此我编辑了fstab和fstab.backup等)

谷歌云文档中关于调整磁盘大小/重新分区表的内容对我来说毫无用处。。
growpart
fdisk
resize2fs
和许多其他StackOverflow帖子都没有这样做

当尝试通过SSH进行访问时,我遇到了“无法在端口22上连接”错误,如在

使用新磁盘创建新的Debian Linux实例时,它可以正常工作


任何一个能够在不丢失任何数据的情况下为我启动并运行此程序的人都会得到100+和很多爱……

我曾尝试复制此案例场景,但它没有给我带来任何VM实例问题

我创建了一个具有10 GB数据的VM实例,然后停止了它,将磁盘大小增加到30 GB,然后再次启动该实例。您提到无法通过ssh连接到实例或访问应用程序。在我的测试之后,我可以通过ssh进入实例。因此,必须有一个问题的过程,你已经遵循,损坏了虚拟机实例或可能启动磁盘

但是,有一种解决方法可以从无法使用SSH连接到的实例中恢复文件。我已经对它进行了测试,它对我有效:

  • 转到计算引擎页面,然后转到图像
  • 单击“[+]创建图像”
  • 为该图像指定一个名称,然后在
    Source
    下选择
    Disk
  • 源磁盘下
    选择已调整大小的VM实例的磁盘
  • 单击
    保存
    ,如果磁盘的虚拟机正在运行,您将得到一个错误。首先停止VM实例,然后再次执行相同的步骤,或者只选择框
    保持实例运行(不推荐)
    。(我建议首先停止它,错误也表明了这一点)
  • 保存新创建的图像后。选择它并单击
    +创建实例
  • 为该实例指定一个名称,并保持所有设置不变
  • 在“引导磁盘”下,请确保看到先前增加磁盘大小时设置的30 GB大小,并且名称应为您创建的映像的名称
  • 单击create并尝试通过SSH连接到新创建的实例
  • 如果在调整磁盘大小时保留了所有文件,则应该能够访问VM损坏之前的最新文件
  • 更新第二种解决方法-将引导磁盘作为辅助磁盘连接到另一个VM实例

    为了将磁盘从损坏的VM实例连接到新的GCE实例,您需要执行以下步骤:

  • 转到
    计算引擎>快照
    ,然后单击
    +创建快照
  • 在源磁盘下,选择损坏虚拟机的磁盘。创建快照
  • 转到
    计算引擎>磁盘
    ,然后单击
    +创建磁盘
  • 源类型
    下,转到
    快照
    ,并在
    源快照
    下,从步骤2中选择新创建的快照。创建磁盘
  • 转到
    computeengine>VM实例
    ,然后单击
    +创建实例
  • 将所有设置保留为默认设置。在
    防火墙下
    启用
    所有HTTP流量
    允许HTTPS流量
  • 点击
    管理、安全、磁盘、网络、独家租赁
  • 单击
    磁盘
    选项卡
  • 单击
    +附加现有磁盘
    ,然后在
    磁盘
    下选择新创建的磁盘。创建新的VM指令
  • SSH到VM并运行
    $sudo lsblk
  • 检查新连接的磁盘的设备名及其主分区(可能是/dev/sdb1)
  • 创建要将磁盘装载到的目录:
    $sudo mkdir-p/mnt/disks/mount
  • 将磁盘装入新创建的目录
    $sudo Mount-o discard,默认值为/dev/sdb1/mnt/disks/Mount
  • 然后您应该能够从磁盘加载所有文件。我自己已经测试过了,我可以用这种方法从旧磁盘上恢复文件

  • 首先,谢谢你的帮助。我遵循了你的步骤,但在新的实例中,我得到了完全相同的问题。。。我猜引导磁盘已损坏?我在尝试输入ssh时遇到“无法在端口22上连接”错误,如gcloud上所述。磁盘未损坏。但是有可能启动文件是错误的,因此您不能SSH进入它。导致VM自身正在运行,但内部的操作系统存在问题。您可以做的是创建一个全新的VM实例,并将磁盘作为辅助实例连接以获取文件。我已经更新了我的答案。使用这种方法,我可以访问文件,但文件/文件夹都是空的,图像都是“零字节”。你知道这是什么吗?你所说的“我可以访问文件,但文件/文件夹都是空的,图像是“零字节”到底是什么意思。这些是你网站上的文件吗?如果他们是,那么他们很可能是腐败的。还有一种可能是您的用户名目录错误。因此,在最后一步之后,您可以运行
    $c