Site icon Alvin Chen Club

GCP VM 無法SSH連線: no space left on device

GCP VM SSH

GCP VM 無法SSH連線: no space left on device

首先 : 會發生SSH無法連線的狀況很多,這個方法不一定適用所有的狀況

可以先到GCP VM中打開”啟用序列埠連線”,就可以看到VM中目前的錯誤狀況為何

參考文件

https://www.cloudbooklet.com/attach-and-mount-disks-to-vm-instance-in-google-cloud/

https://discuss.devopscube.com/t/solved-wrong-fs-type-bad-option-bad-superblock-on-dev-sdb-error/206

https://askubuntu.com/questions/859787/how-to-unmount-and-mount-pen-drive-in-ubuntu-via-command-line

確認錯誤狀況

從控制介面中點入無法SSH登入的主機,選擇右上角編輯

在畫面中打勾”啟用序列埠連線”

按下儲存後,回到VM列表,點選”重置”讓機器重新啟動一次,接著再點選進入VM中”連線至序列控制台”就可以開啟畫面,看到目前VM上的錯誤訊息了

如果你跟我一樣看到 “no space left on device”,那麼就是跟我一樣的狀況了,boot device已經沒有空間

處理邏輯

1.將這台VM的boot device退出

2.開一台新的VM(或其他可用VM都行),把這顆硬碟掛入其他其他硬碟中

3.進入這台新的VM將硬碟磁區掛入Linux目錄

4.這時候就可以開始整理就硬碟了,整理好之後將硬碟退出

5.將舊硬碟退出新的VM,再掛回原VM的開機硬碟中

6.順利開機

首先,要注意的是,開一台新的VM必須要跟原本無法登入的那台VM在同一個地區,這樣才有辦法掛他的硬碟

將boot device退出

進入VM後點選”編輯”,找到”boot disk”,按下右邊的X移除掉

最後按下儲存就可以了,放心這個最後處理完成後可以再將這顆硬碟綁回來

綁定到新VM

接著,開一台新的VM(或既有的VM都可以),一樣點進去”編輯”

找到”其他磁碟”這個區域,按下”連接現有磁碟”,然後在畫面下拉選單中,找到剛剛被你按下X移除掉的硬碟

如果在這個畫面沒有看到那顆硬碟,那就有可能VM在不通區域看不到,或者原本的硬碟還沒有解除綁定

可以到左選單中的”儲存空間” –> “磁碟”,看一下這顆硬碟目前是不是在使用者這個欄位不是空的

硬碟Mount到OS中

這個步驟要注意的是,不必綁定整個硬碟,只要綁定已經沒有空間可以使用的那個資料夾即可

可以用以下指令來看目前的磁碟綁定狀態

假設sda1 是已經要滿的那個資料夾,那我們就只要綁定這個就可以了(實際上掛上去的硬碟應該會是sdbXX之類的)

接著,我們把sda1這個資料夾掛載到/mnt/new_disk 這個資料夾中,就可存取到了

這樣子就完成了

清理資料

這時候就可以進入到/mnt/new_disk這個目錄就可以看到原硬碟的資料了

掛回原VM中開機

mount完之後,接著要umount

然後一樣回到GCP的控制畫面中,對新的VM按下編輯,找到剛剛掛上的硬碟在他旁邊按下X後儲存即可

儲存完畢後回到原本不能登入的VM中,一樣按下編輯找到”boot disk”,按下”+”符號,從下拉選單中就可以看到原本的硬碟了

選擇他,按下儲存後開機即可

接著,應該就可以正常使用了

開機後,如果你想要擴增硬碟空間,可以直接參考這篇的做法

GCP 不停止 VM 執行個體增加空間容量