You are not logged in.

#1 2013-04-09 18:28:26

el3ctrik
Member
Registered: 2013-01-04
Posts: 6

Cannot update core/linux package - Partition /boot too full

I'm having an issue updating linux from the [core] repo. When I run the pacman update, I get an error there is not enough space on /boot to complete the update. I have the 100MB recommended on the wiki, and I only have a single, stock kernel installed so I believe that I should have more than enough slack space available. Instead, I see that my initramfs files are coming out to be almost 40MB each and this means the update is failing. I was not expecting this - is a 40MB initramfs considered normal these days, in which case the 100MB advice needs to be revised, or is this something I've done (which is considerably more likely seeing as I cannot find another reference to this issue / error in any recent timeframe)?

[19:11] doug at platinum in ~
☹ % sudo pacman -Syu
[sudo] password for doug: 
:: Synchronising package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for inter-conflicts...

Packages (14): chromium-26.0.1410.43-3  git-1.8.2.1-1  isl-0.11.1-2  linux-3.8.6-1  linux-headers-3.8.6-1  lirc-utils-1:0.9.0-41
               mercurial-2.5.4-1  nvidia-313.30-3  python-3.3.1-1  python2-2.7.4-1  python2-lxml-3.1.1-1
               virtualbox-host-modules-4.2.10-4  vlc-2.0.6-1  xmms2-0.8DrO_o-11

Total Installed Size:   463.82 MiB
Net Upgrade Size:       -30.60 MiB

:: Proceed with installation? [Y/n] 
(14/14) checking keys in keyring                                                [##############################################] 100%
(14/14) checking package integrity                                              [##############################################] 100%
(14/14) loading package files                                                   [##############################################] 100%
(14/14) checking for file conflicts                                             [##############################################] 100%
(14/14) checking available disk space                                           [##############################################] 100%
error: Partition /boot too full: 4958 blocks needed, 4769 blocks free
error: not enough free disk space
error: failed to commit transaction (not enough free disk space)
Errors occurred, no packages were upgraded.
[19:11] doug at platinum in ~
☹ % df -hT
Filesystem               Type      Size  Used Avail Use% Mounted on
/dev/mapper/arch-root    ext4       35G  8.3G   26G  25% /
dev                      devtmpfs  5.9G     0  5.9G   0% /dev
run                      tmpfs     5.9G  1.1M  5.9G   1% /run
tmpfs                    tmpfs     5.9G  840K  5.9G   1% /dev/shm
tmpfs                    tmpfs     5.9G     0  5.9G   0% /sys/fs/cgroup
/dev/mapper/arch-home    ext4       52G   41G   11G  80% /home
tmpfs                    tmpfs     5.9G  163M  5.8G   3% /tmp
/dev/sdb1                ext2       97M   93M     0 100% /boot
/dev/mapper/arch-var     reiserfs   20G   15G  5.2G  75% /var
/dev/mapper/truecrypt1   ext4      917G  355G  516G  41% /mnt/Downloads
[19:13] doug at platinum in ~
☺ % ls -ahl /boot
total 82M
drwxr-xr-x  4 root root 1.0K Apr  4 23:01 .
drwxr-xr-x 21 root root 4.0K Mar 15 19:14 ..
drwxr-xr-x  6 root root 1.0K Apr  9 00:09 grub
-rw-r--r--  1 root root  39M Apr  9 00:04 initramfs-linux-fallback.img
-rw-r--r--  1 root root  39M Apr  9 00:03 initramfs-linux.img
drwx------  2 root root  12K Sep 16  2012 lost+found
-rw-r--r--  1 root root 3.6M Mar 29 18:21 vmlinuz-linux
[19:13] doug at platinum in ~
☹ % sudo du -h /boot
12K     /boot/lost+found
2.7M    /boot/grub/themes/starfield
2.7M    /boot/grub/themes
2.5M    /boot/grub/fonts
1.8M    /boot/grub/i386-pc
2.5M    /boot/grub/locale
9.5M    /boot/grub
91M     /boot

My SSD has two physical partitions on the disk - the ext2 partition that becomes my /boot and an LVM on LUKS partition. As such, I'm kind of loathe to start messing with the partitioning layout until I absolutely have to for fear of breaking the LUKS setup and having to reimage the drive back. Additionally, the use of encryption predicates the use of mkinitcpio HOOKS for lvm2 and encrypt (plymouth-encrypt in my hooks as I also use plymouth). Could my use of plymouth be the cause of the non-trivial initramfs size - in which case the wiki may need to be modified to reflect this increase in size and potential issue? Or is there something else that I've not thought of that I should investigate?

☹ % cat /etc/mkinitcpio.conf 
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES="piix ide_disk reiserfs"
MODULES=""

# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image.  This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=""

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES=""

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
##   This setup specifies all modules in the MODULES setting above.
##   No raid, lvm2, or encrypted root is needed.
#    HOOKS="base"
#
##   This setup will autodetect all modules for your system and should
##   work as a sane default
#    HOOKS="base udev autodetect block filesystems"
#
##   This setup will generate a 'full' image which supports most systems.
##   No autodetection is done.
#    HOOKS="base udev block filesystems"
#
##   This setup assembles a pata mdadm array with an encrypted root FS.
##   Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
#    HOOKS="base udev block mdadm encrypt filesystems"
#
##   This setup loads an lvm2 volume group on a usb device.
#    HOOKS="base udev block lvm2 filesystems"
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr, fsck and shutdown hooks.
HOOKS="base udev autodetect modconf block keymap plymouth plymouth-encrypt lvm2 filesystems keyboard fsck"

# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"

# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=""

Any help, advice or potential leads to investigate would be greatly appreciated ... I'm off to remove plymouth from the HOOKS to see what effect that has.

Offline

#2 2013-04-09 18:43:08

el3ctrik
Member
Registered: 2013-01-04
Posts: 6

Re: Cannot update core/linux package - Partition /boot too full

Without plymouth+plymouth-encrypt:

[19:32] doug at platinum in ~
☺ % ls -alh /boot
total 25M
drwxr-xr-x  4 root root 1.0K Apr  4 23:01 .
drwxr-xr-x 21 root root 4.0K Mar 15 19:14 ..
drwxr-xr-x  6 root root 1.0K Apr  9 00:09 grub
-rw-r--r--  1 root root  16M Apr  9 19:32 initramfs-linux-fallback.img
-rw-r--r--  1 root root 4.9M Apr  9 19:32 initramfs-linux.img
drwx------  2 root root  12K Sep 16  2012 lost+found
-rw-r--r--  1 root root 3.6M Mar 29 18:21 vmlinuz-linux

Re-enabling plymouth+plymouth-encrypt:

[19:32] doug at platinum in ~
☺ % ls -alh /boot                
total 71M
drwxr-xr-x  4 root root 1.0K Apr  4 23:01 .
drwxr-xr-x 21 root root 4.0K Mar 15 19:14 ..
drwxr-xr-x  6 root root 1.0K Apr  9 00:09 grub
-rw-r--r--  1 root root  39M Apr  9 19:32 initramfs-linux-fallback.img
-rw-r--r--  1 root root  28M Apr  9 19:32 initramfs-linux.img
drwx------  2 root root  12K Sep 16  2012 lost+found
-rw-r--r--  1 root root 3.6M Mar 29 18:21 vmlinuz-linux

Interesting that initramfs-linux.img has shrunk by 10MB just by going back to the original mkinitcpio I had with plymouth enabled and I now have enough space to run the update too, even after re-enabling. I think plymouth or plymouth-encrypt are definitely the culprit...4.9MB to 28MB! Would it be considered acceptable to update the wiki with this information?


...so typical that you work things out the second you post for help after spending a day pondering on the issue!

Offline

#3 2013-04-09 18:43:50

hokasch
Member
Registered: 2007-09-23
Posts: 1,461

Re: Cannot update core/linux package - Partition /boot too full

el3ctrik wrote:

Could my use of plymouth be the cause of the non-trivial initramfs size

Try it by rebuilding your initramfs without it - on my system they are around 3MB, but I don't use lvm. You could only disable plymouth in the fallback, if that makes enough room.

Offline

#4 2013-04-09 18:55:34

el3ctrik
Member
Registered: 2013-01-04
Posts: 6

Re: Cannot update core/linux package - Partition /boot too full

hokasch wrote:
el3ctrik wrote:

Could my use of plymouth be the cause of the non-trivial initramfs size

You could only disable plymouth in the fallback

I had actually looked into doing this previously - plymouth-encrypt broke for me for a while so I wanted to disable plymouth to view the boot messages and have the plain-text encrypt, however the wiki suggests this functionality isn't actually available:

The fallback image utilizes the same configuration file as the default image, except the autodetect hook is skipped during creation, thus including a full range of modules. The autodetect hook detects required modules and tailors the image for specific hardware, shrinking the initramfs.

Do you know if it definitely is offered, and if so, how to set the required hooks?

Offline

#5 2013-04-09 19:09:30

hokasch
Member
Registered: 2007-09-23
Posts: 1,461

Re: Cannot update core/linux package - Partition /boot too full

From /etc/mkinitcpio.d/linux.preset:

#fallback_config="/etc/mkinitcpio.conf"
fallback_image="/boot/initramfs-linux-fallback.img"
fallback_options="-S autodetect"

The -S option for mkinitcpio skips hooks, you can add plymouth and plymouth-encrypt there (comma-seperated).

Last edited by hokasch (2013-04-09 19:18:04)

Offline

Board footer

Powered by FluxBB