話說我在 GCP 上給某獨立媒體弄了個鏡像站,準備之後要搬家。昨天重開 VM 以後,突然無法用 SSH 連線,也就是無法以任何方式登入機器,簡直嚇壞我了!
爬文一圈,有位前輩紀錄了他的類似經驗,我便照著他的方法,啟用「序列埠連線」。使用序列埠連線後,雖然還是無法登入,但至少 Terminal print 出了一些訊息,發現是 /etc/fstab 設定出錯,才導致無法開機。
雖然知道問題,但無法登入的話,還是無法解決問題啊!
左思右想,想到一點子:因為在 GCP,VM instance 跟它的磁碟其實是分開處理的,所以我可以再開一台新 VM,把舊磁碟掛載到新 VM,修改後再掛回去舊 VM。最後證明這思路是對的,步驟紀錄如下:
- 停止舊 VM,並開一台新 VM。
- 以 GCP 的
attach-disk
指令連結新 VM 和舊磁碟;但直接 attach 的話,它會告訴你該磁碟以被佔用云云,所以指令還要加入--force-attach
這個參數才能完成。 - 要注意的是,attach 磁碟以後,還要手動執行
mount
指令,才會在檔案系統裡看到舊硬碟。 - 對舊硬碟的設定檔進行修改,好了之後關閉新 VM,把舊硬碟 attach 回舊 VM。搞定!