无法在 gcloud 中分离持久磁盘

无法在 gcloud 中分离持久磁盘

我很确定我的问题是我在卸载磁盘之前分离了它,也就是说我执行了以下命令:

gcloud compute instances detach-disk instance-1 --disk disk-1 --zone us-central1-a

做之前:

$ sudo umount /dev/disk/by-id/google-persistent-disk-1

现在我已经完成了,我必须弄清楚如何分离磁盘,这样我就不会为此付费。我的磁盘的旧挂载点是/mnt/disks/temp_dir。所以当我运行

kylefoley@instance-1:/mnt/disks/temp_dir$ touch hey_man.txt

我收到以下错误:

touch: cannot touch 'hey_man.txt': Input/output error

当我跑步时

kylefoley@instance-1:/dev/disk/by-id$ ls

我明白了

google-instance-1         scsi-0Google_PersistentDisk_instance-1
google-instance-1-part1   scsi-0Google_PersistentDisk_instance-1-part1
google-persistent-disk-1  scsi-0Google_PersistentDisk_persistent-disk-1

然后我就跑

kylefoley@instance-1:/$ sudo umount /dev/disk/by-id/google-persistent-disk-1

并得到:

umount: /dev/disk/by-id/google-persistent-disk-1: not mounted

因此我尝试使用

kylefoley@instance-1:/$ sudo mount -o discard,defaults /dev/sdb mnt/disks/temp_dir

但这给出了:

mount: special device /dev/sdb does not exist

我还尝试使用

Admins-MacBook-Pro-4:other kylefoley$ gcloud compute instances attach-disk instance-1 --disk disk-1 --zone us-central1-a

这基本上奏效了。磁盘也出现在我的控制台上。不知道该怎么办。

答案1

我能够重现您的问题,直到出现问题时分离磁盘(这是一个令人担忧的问题)。

当磁盘分离并且我尝试访问已知文件时,我仅收到错误输入/输出错误。

使用gcloud 附加命令并正常安装磁盘我能够毫无问题地访问数据。

gcloud compute instances attach-disk instance-1 --disk=disk-1 --zone=ZONE

关于将磁盘卸载为不收费,即使磁盘未挂载到任何实例,您仍需要付费

从 ls /dev/disk/by-id 的输出可以清楚看出您有第二个磁盘,但其名称不是 sdb。我在复制过程中注意到的一件事是,磁盘在第二次连接时更改了名称(从 sdb 更改为 sdc)。

尝试运行sudo blkid或 sudofdisk-l来确认磁盘名称

我以前可以分离使用 gcloud 或 webUI 的磁盘

gcloud compute instances detach-disk instance-1 --disk=disk-1 --zone=ZONE

如果上述命令不起作用,请提供带有标志 --log-http 的输出

gcloud compute instances detach-disk instance-1 --disk=disk-1 --zone=us-central1-a --log-http

答案2

我可以卸下磁盘,然后重新开始。所以我首先点击

gcloud compute instances detach-disk instance-1 --disk disk-1 --zone us-central1-a

然后我查找了可用的坐骑,使用如下方法:

kylefoley@instance-1:/dev/disk/by-id$ sudo lsblk

结果是:

NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0    0  10G  0 disk 
└─sda1   8:1    0  10G  0 part /

然后我重新连接了磁盘:

gcloud compute instances attach-disk instance-1 --disk disk-1 --zone us-central1-a

然后我再次查找挂载点,以便获得我挂载的磁盘的名称:

kylefoley@instance-1:/dev/disk/by-id$ sudo lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   10G  0 disk 
└─sda1   8:1    0   10G  0 part /
sdb      8:16   0  500G  0 disk 

因此该磁盘被命名为sdb

然后我按照通常的说明安装磁盘:

sudo mkdir -p /disk1_dir
kylefoley@instance-1:/$ sudo mount -o discard,defaults /dev/sdb /disk1_dir

然后我检查了之前磁盘中的文件是否仍然存在,该文件的名称huh.txt为:

kylefoley@instance-1:/$ cd disk1_dir
kylefoley@instance-1:/disk1_dir$ ls
huh.txt  lost+found

问题解决了。

相关内容