1. 程式人生 > >[Azure]Linux虛擬機器使用rc.local啟動指令碼進行磁碟掛在

[Azure]Linux虛擬機器使用rc.local啟動指令碼進行磁碟掛在

Azure Linux虛擬機器如果在啟動過程中出現磁碟檢測失敗,會導致虛擬機器無法成功啟動,這種情況下,由於沒有控制檯的登入方式,往往需要通過將系統磁碟掛在到其他虛擬機器上進行fstab檔案的修改或者磁碟修復,修復完成後再使用修復後的磁碟重建虛擬機器。這種方法相對比較耗時,有沒有方法能夠保證在資料磁碟出現問題時,不會影響到系統的啟動呢?我們可以在rc.local中寫入mount語句,由於rc.local是在啟動後執行的,所以即使mount語句報錯,也完全不影響虛擬機器的啟動。

以下是一個測試小實驗:

  1. 首先,在虛擬機器上掛了4塊資料盤做了raid0,掛載到/mnt/md2下:

    raid0分割槽的

    UUID53128084-c839-4294-a8e2-2ae089819280

  2. 接著,在/etc/rc.local中新增一行自動掛載的命令mount -U 53128084-c839-4294-a8e2-2ae089819280/mnt/md2

  3. reboot虛擬機器後,可以看到raid0分割槽正常掛載:

  4. Portal中將4塊磁碟中的任意一塊分離下來,破壞了raid0,再次重啟虛擬機器,發現機器可以正常啟動,raid0未掛載:

可以看到,rd.local中的指令碼進行掛載,即使掛載失敗,也不會影響系統的正常啟動和登陸。