Cloud-init.log日志如下:

cloud-init日志中提示:
? ?UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
錯誤原因:
? 虛擬機(中文編碼)啟動時 , cloud-init初始化過程中在growpart之后有一個locale模塊把系統(tǒng)編碼改成了英文,所以第一次執(zhí)行系統(tǒng)還是中文編碼,啟動之后系統(tǒng)已經(jīng)是英文編碼了 。
? growpart是基于python的模塊執(zhí)行的,然而python對中文編碼不是很友好,導(dǎo)致cloud-init報錯,無法執(zhí)行后續(xù)操作。
解決辦法:
? 1. 查看系統(tǒng)編碼:
?echo $LANG 或者locale,

?其中的LANG字段表示系統(tǒng)當前的編碼?
2.更改系統(tǒng)編碼:?
修改/etc/sysconfig/i18n,如將中文編碼修改為英文編碼:?
復(fù)制代碼代碼如下:?
LANG= zh_CN.GBK 改為 LANG=" en_US.UTF-8" 之后重啟即可