growpartコマンドが「arithmetic expression」エラーで失敗する際の対処法
困っていた内容
Linux系OSのインスタンスのEBSボリュームサイズを増加させた後、ドキュメントを参考にパーティションの拡張を実施しました。
Linux ファイルシステムの拡張 - Amazon Elastic Compute Cloud
ルートボリュームを拡張する手順においてgrowpartコマンドを実行しましたが、エラーが発生しました。
sudo growpart /dev/nvme0n1 1 /usr/bin/growpart: arithmetic expression: expecting primary: "シリンダ*ヘッド*63"
エラーを解消するにはどうしたら良いですか?
どう対応すればいいの?
この「syntax error: operand expected 」エラーは、シェルの言語を日本語に設定していることが影響し発生している場合があります。
システムのロケール設定を下記コマンドで確認してください。
$ localectl System Locale: LANG=ja_JP.UTF-8
実行結果のLANGがja_JP.UTF-8など、日本語に設定されていた場合は英語(en_US.UTF-8)に変更します。
$sudo su - $ localectl set-locale LANG=en_US.UTF-8
変更後、sourceコマンドで設定を反映させます。
source /etc/locale.conf
再度ロケール設定の確認コマンドを実行します。
問題なく変更されていることが確認できたら、再度growpartコマンドを実行してください。
$ localectl System Locale: LANG=en_US.UTF-8 $ sudo growpart /dev/nvme0n1 1
注意事項
利用しているディストリビューションがCentOS 6以前や Amazon Linux の場合、
ロケール設定情報は /etc/sysconfig/i18n に格納されています。
設定情報の参照には localectl ではなく、catコマンドなどを利用する必要があります。
$ cat /etc/sysconfig/i18n
参考情報
ロケール設定ファイル /etc/sysconfig/i18n | Linux技術者認定 リナック | LPI-Japan