我很确定我的问题是我在卸载磁盘之前分离了它,也就是说我执行了以下命令:
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
问题解决了。