古いインスタンス (M3.medium) の EBS を拡張する作業があったのですが、 growpart
がエラーを返してきて焦ったので。
LANG が悪い
echo $LANG
などして、 LANG=ja_JP.UTF-8
つまりシェルが日本語環境だとエラーが帰ってくるようです。
こんなん。
[root@ebs-fuyashitai-instance ~]# growpart /dev/xvda 1 /bin/growpart: 行 170: シリンダ数*255、63*: 構文エラー: オペランドが予期されます (エラーのあるトークンは "シリンダ数*255、63*")
どうする?
export LANG="en_US.UTF-8"
とかして、セッション維持しているシェルだけ英語環境にしてから作業しましょう。
[root@ebs-fuyashitai-instance ~]# locale LANG=ja_JP.utf8 LC_CTYPE="ja_JP.utf8" LC_NUMERIC="ja_JP.utf8" LC_TIME="ja_JP.utf8" LC_COLLATE="ja_JP.utf8" LC_MONETARY="ja_JP.utf8" LC_MESSAGES="ja_JP.utf8" LC_PAPER="ja_JP.utf8" LC_NAME="ja_JP.utf8" LC_ADDRESS="ja_JP.utf8" LC_TELEPHONE="ja_JP.utf8" LC_MEASUREMENT="ja_JP.utf8" LC_IDENTIFICATION="ja_JP.utf8" LC_ALL= [root@ebs-fuyashitai-instance ~]# export LANG="en_US.UTF-8" [root@ebs-fuyashitai-instance ~]# locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= [root@ebs-fuyashitai-instance ~]# growpart /dev/xvda 1 CHANGED: partition=1 start=2048 old: size=62908492 end=62910540 new: size=209710462,end=209712510
できましたね、このあとはファイルシステムの拡張を実施すればオッケーです。 しかしまー、使っているプロプライエタリのミドルウェアが必須要件として LANG に JP な環境を要求するので、スルッと終わるはずの作業が終わらなく、めっちゃ焦りましたね。
参考: hacknote.jp