はじめに
最近Manjaroをインストールしようとしたのですが、
Boost.Python error in job "bootloader".
Command 'grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Manjaro --force' returned non-zero exit status 1.
Installing for x86_64-efi platform. Could not prepare Boot variable: No space left on device
というエラーが出て失敗しました。
"No space left"から/boot/efiのためのパーティションが小さすぎるのかと考えディスクを全消去しやり直しても改善せず、更にはkubuntuのインストールも試して同様にブートローダーのインストールで失敗しました。
一応kubuntuのインストールは成功したので今回の問題の対処法を共有します。
最初に確認すべきこと
※マニュアルにも書いてあることです
特に自分でパーティションを設定する場合の注意事項ですが、/boot/efiのためのパーティションはファイルシステムをFAT32に設定する必要があります。マウントポイントも**/boot/efi**を選択し、bootフラグを付与することも必要です。
パーティショニングを自動で行う場合などは自動的に上記の設定になると思うのでおそらくあまり気にする必要はありません。
それでも冒頭のエラーメッセージが出る場合
参考 ArchWiki Unified Extensible Firmware Interface
まずはターミナルを起動し
ls /sys/firmware/efi/efivars/dump-*
でdumpで始まるファイルの有無を調べます。自分の場合はこれが大量に存在し容量を圧迫していました。
"No space left"と言われていたのはこれのことだったようです。ディスクを全消去したところでこのフォルダの中身までは綺麗になりません。
(sudo) rmで削除することができるのでdumpで始まるファイルを削除します。
この後kubuntuのインストールを試したところ無事に完了しました。
(Manjaroは後日試します)
おわりに
自分が件のエラーメッセージを検索にかけたところ、ヒットしたのは主にパーティションのファイルシステムやフラグ付与の話でした。
dumpファイルの存在にもっと早く気づいていればわざわざ全削除までしなくても良かったなあと思っているので同様の症状に悩む方の参考になれば幸いです。