apt upgrade や install で No space left on device が発生する

概要

apt upgrade や apt install で update-initramfs が実行される時、”No space left on device” エラーが発生する場合があります。
古いバージョンのカーネルイメージを削除する、または、initramfs設定ファイルを編集することで解決することがあります。

背景

Raspberry Piを触っていたところ、APTのインストールで何やらエラーが出ました。

色々出力されていて分かりづらいですが、エラーの原因は次部分のようです。

update-initramfs: Generating /boot/initrd.img-5.15.0-1034-raspi
cpio: write error: No space left on device

やりかた

古いイメージを消す

/boot に空き容量が無いとのことで、ググると真っ先に古いバージョンのイメージを消しなさいと出てきます。これで解決する方はちゃっちゃかやっちゃってください。

# 自分のカーネルバージョンを調べる
kernelver=$(uname -r | sed -r 's/-[a-z]+//')
# 使っていないやつを調べる
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver
# apt purgeする
apt purge <表示されたパッケージ名>

私の環境では、次のように現行のパッケージと、アップグレードしようとして入ったパッケージしか出てこなかったので、消せる古いバージョンはありませんでした。

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                   Version        Architecture Description
+++-======================================-==============-============-================================================>ii  linux-image-5.15.0-1034-raspi          5.15.0-1034.37 arm64        Linux kernel image for version 5.15.0 on ARMv8 S>iF  linux-image-5.15.0-1043-raspi          5.15.0-1043.46 arm64        Linux kernel image for version 5.15.0 on ARMv8 S>iF  linux-image-5.15.0-1044-raspi          5.15.0-1044.47 arm64        Linux kernel image for version 5.15.0 on ARMv8 S>iU  linux-image-raspi                      5.15.0.1044.42 arm64        Raspberry Pi Linux kernel image
un  linux-image-unsigned-5.15.0-1034-raspi <none>         <none>       (no description available)
un  linux-image-unsigned-5.15.0-1043-raspi <none>         <none>       (no description available)
un  linux-image-unsigned-5.15.0-1044-raspi <none>         <none>       (no description available)

initramfs.confを編集する

結局は update-initramfs 時に作業領域で空き容量が足りなくなっているようで /etc/initramfs-tools/initramfs.conf というファイルを編集することで、イメージ作成時の容量が少なくて済む?イメージサイズが小さくなる?らしいです。

viなどで /etc/initramfs-tools/initramfs.con を開いて MODULES を dep に、COMPRESS を lzma にしてください。

~~~
- MODULES=most
+ MODULES=dep
~~~
- COMPRESS=zstd
+ COMPRESS=lzma
~~~

あとは普通に apt upgrade や apt install を実行してみてください。
再起動は不要でした。

コメント