... 启动时自动调整磁盘大小... 所有 Compute Engine Ubuntu 映像都会自动调整根分区的大小以使用整个磁盘,最大限制为 2 TB。即使磁盘大于 2 TB,操作系统也只能识别最多 2 TB。
根据谷歌持久磁盘文档,Ubuntu 应该自动调整大小,但是当我尝试上传 20GB 数据(包含小文件)时:
"No space left on device"
我正在使用 gcloud:
gcloud compute copy-files ...
上传文件。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.9G 9.8G 0 100% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 1.9G 4.0K 1.9G 1% /dev
tmpfs 371M 536K 370M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 1.9G 0 1.9G 0% /run/shm
none 100M 0 100M 0% /run/user
Command (m for help): p
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x000ea22e
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 20971519 20969472 10G 83 Linux
答案1
正如你所指出的:
所有 Compute Engine Ubuntu 映像将自动调整根分区的大小以使用整个磁盘
然后,根据您的输出,您有一个 10GB 的磁盘和一个 10GB 的分区,因此无法调整该分区的大小。
如果您想要更大的根磁盘,则需要创建具有所需空间的磁盘。您可以使用云端 SDK操作步骤如下:
1-创建一个快照您的实例:
gcloud compute disks snapshot DISK_NAME --snapshot-names SNAPSHOT_NAME --zone ZONE --project PROJECT_ID
2- 创建磁盘根据该快照:
gcloud compute disks create NAME --source-snapshot SOURCE_SNAPSHOT --size SIZE --zone ZONE --project PROJECT_ID
之后,磁盘将自动分区,并为根文件系统分配足够的空间
3- 创建实例使用该磁盘:
gcloud compute instances create NAME --disk "name=DISK_NAME" "boot=yes" --zone ZONE --project PROJECT_ID
由于 Ubuntu 支持自动调整大小,一旦启动它就会调整分区大小,并且您应该拥有所需的 GB。
或者,如果您仍然能够通过 SSH 进入实例,则可以按照以下步骤将新磁盘附加到实例:
4- 创建新磁盘:
gcloud compute disks create NAME --size SIZE --zone ZONE --project PROJECT_ID
5-附新磁盘:
gcloud compute instances attach-disk INSTANCE_NAME --disk NEW_DISK_NAME --zone ZONE --project PROJECT_ID
6-SSH进入实例:
gcloud compute ssh INSTANCE_NAME --zone ZONE --project PROJECT_ID
7-格式新的磁盘。
8-将文件从根磁盘传输到新磁盘以释放空间并将其他文件上传到新磁盘。