growpartコマンドが「arithmetic expression」エラーで失敗する際の対処法

テクニカルサポートノート。サービス名:Amazon EBS パーティションの拡張のためのgrowpartコマンドが「arithmetic expression: expecting primary: "シリンダ*ヘッド*63"」などのエラーで失敗する時の対処法。
2020.07.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

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

Linux ファイルシステムの拡張 - Amazon Elastic Compute Cloud

EBS ボリュームを変更し、ボリュームのファイルシステムを拡張する