Cloud9 エラー: No space left on device の解決 (実際にスペースがない場合)


No space left on device というエラー。容量がないことを示すエラーだが、容量が余裕なのにこのエラーがでる怪奇現象もある見たい。今回は、ちゃんと容量がない時の対処法を書く。

ファイル容量を確認
$df -h

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 15G 15G 0 100% /
none 312M 0 312M 0% /dev/shm

100%容量使っています。
解決方法: 容量を増やします。

解決の流れ

https://console.aws.amazon.com/
上記AWSコンソールから操作する。

1 インスタンス停止

公式 https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/Stop_Start.html
右側のナビゲーターペインで、、

インスタンスを選択 → 容量を増やしたいワークスペースのアベイラビリティ(us-east-xx)を確認し、選択して、アクション→状態→停止 をしておく

2 ヴォリュームデタッチ

右側のナビゲーターペインで、、

Volumeを選択 → 容量を増やしたいワークスペースのアベイラビリティ(us-east-xx)を確認し、選択して、アクション→ボリュームのデタッチ

*あとで使うのでボリュームIDをコピーする

3 ボリュームのスナップショットをとる

右側のナビゲーターペインで、、

スナップショットを選択 → スナップショットの作成
ボリュームIDをペースト、コメントは任意だけどワークスペース名とか入れると作業しやすい。

4 スナップショットを使って新しいボリュームを作る

そのままスナップショットの画面で、スナップショットを選択し、アクションから、ボリュームの作成を選択。
大きさはスナップショットより大きくなるようにする。
アベイラビリティゾーンは、該当ワークスペースのものを選択する。

5 スナップショットのアタッチ

公式 https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-restoring-volume.html
右側のナビゲーターペインで、、

ボリュームを選択 → 製作したスナップショットを選択し、アクションからボリュームのアタッチをする。このときのインスタンスIDは、アタッチ先のもので。手順1で訪れたインスタンスの画面から確認できる。

注 この時重要なのが、デバイスがデフォルトで/dev/sdfとなっているが、Cloud9なら、/dev/xvda としないと、インスタンスの起動に失敗する。 ( /dev/xvdf という情報があるが筆者は/dev/xvda でうまくいった)



状態がin-use になったら、ワークスペースにアクセスしてインスタンスを起動できるはず。

参考