UbuntuのDISK容量がいつの間にか逼迫していた

前提条件

  • 確認しているバージョンはUbuntu 14.04.4 LTSです。
  • Jenkinsのマスターサーバなので一定のDISK空き容量がないと上手く動かなくなるプラグインがある。

対応

  • $ sudo du -sh /*して、でかいディレクトリを調べる
    • どうやら/lib/modulesが肥大化しているらしい
$ cd /lib/modules
$ ll
drwxr-xr-x  5 root root 4096  4月  6  2015 3.13.0-48-generic/
drwxr-xr-x  5 root root 4096  6月  8  2015 3.13.0-53-generic/
drwxr-xr-x  5 root root 4096  1月  4 11:35 3.13.0-74-generic/
drwxr-xr-x  5 root root 4096  3月 11 11:35 3.13.0-79-generic/
drwxr-xr-x  5 root root 4096  3月 30 09:53 3.13.0-83-generic/

$ du -sh *
184M    3.13.0-48-generic
184M    3.13.0-53-generic
184M    3.13.0-74-generic
184M    3.13.0-79-generic
185M    3.13.0-83-generic
  • なにやらでかいkernelモジュールらしきものがいっぱいある
$ sudo aptitude search 3.13.0-48-generic
p   linux-cloud-tools-3.13.0-48-generic                                          - Linux kernel version specific cloud tools for version 3.13.0-48
i A linux-headers-3.13.0-48-generic                                              - Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
p   linux-headers-3.13.0-48-generic:i386                                         - Linux kernel headers for version 3.13.0 on 32 bit x86 SMP
i A linux-image-3.13.0-48-generic                                                - Linux kernel image for version 3.13.0 on 64 bit x86 SMP
p   linux-image-3.13.0-48-generic:i386                                           - Linux kernel image for version 3.13.0 on 32 bit x86 SMP
i A linux-image-extra-3.13.0-48-generic                                          - Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
p   linux-image-extra-3.13.0-48-generic:i386                                     - Linux kernel extra modules for version 3.13.0 on 32 bit x86 SMP
p   linux-signed-image-3.13.0-48-generic                                         - Signed kernel image generic
p   linux-tools-3.13.0-48-generic                                                - Linux kernel version specific tools for version 3.13.0-48
p   linux-tools-3.13.0-48-generic:i386                                           - Linux kernel version specific tools for version 3.13.0-48
  • ほうほう。さくっと消してみるか。
$ sudo aptitude remove linux-headers-3.13.0-48-generic linux-image-3.13.0-48-generic linux-image-extra-3.13.0-48-generic

他の古いバージョンも消してみたらごっそり空いた。

2017/6/29追記

なんと、apt-get autoremoveでさくっと消せることが判明。こんな感じです。

$ sudo apt-get autoremove
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
  linux-headers-4.4.0-77 linux-headers-4.4.0-77-generic linux-image-4.4.0-77-generic linux-image-extra-4.4.0-77-generic
アップグレード: 0 個、新規インストール: 0 個、削除: 4 個、保留: 3 個。
この操作後に 297 MB のディスク容量が解放されます。
続行しますか? [Y/n] Y
(データベースを読み込んでいます ... 現在 131730 個のファイルとディレクトリがインストールされています。)
linux-headers-4.4.0-77-generic (4.4.0-77.98) を削除しています ...
linux-headers-4.4.0-77 (4.4.0-77.98) を削除しています ...
linux-image-extra-4.4.0-77-generic (4.4.0-77.98) を削除しています ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-77-generic /boot/vmlinuz-4.4.0-77-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-77-generic /boot/vmlinuz-4.4.0-77-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-77-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-77-generic /boot/vmlinuz-4.4.0-77-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-77-generic /boot/vmlinuz-4.4.0-77-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-77-generic /boot/vmlinuz-4.4.0-77-generic
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-81-generic
Found initrd image: /boot/initrd.img-4.4.0-81-generic
Found linux image: /boot/vmlinuz-4.4.0-78-generic
Found initrd image: /boot/initrd.img-4.4.0-78-generic
Found linux image: /boot/vmlinuz-4.4.0-77-generic
Found initrd image: /boot/initrd.img-4.4.0-77-generic
done
linux-image-4.4.0-77-generic (4.4.0-77.98) を削除しています ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.4.0-77-generic /boot/vmlinuz-4.4.0-77-generic
update-initramfs: Deleting /boot/initrd.img-4.4.0-77-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.4.0-77-generic /boot/vmlinuz-4.4.0-77-generic
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-81-generic
Found initrd image: /boot/initrd.img-4.4.0-81-generic
Found linux image: /boot/vmlinuz-4.4.0-78-generic
Found initrd image: /boot/initrd.img-4.4.0-78-generic
done

普段使っている aptitude には autoremove が無かった・・・。