/boot seems too small now - 7.0 is 150 MB

I am currently having challenges with upgrades on my Reform. The current and most recent kernel images take up nearly 300 MB from the available 465 MB.

Before I go in rough-hewn and start deleting stuff, I intend to get wiser advice.

What other choice do I have other than to remove the 6.19 image and vmlinuz?

The final output from latest update and upgrade (2026-05-09, 20:36 PDT):

exit status 1
Errors were encountered while processing:
 linux-image-7.0.3-mnt-reform-arm64
 linux-image-mnt-reform-arm64
 reform-qcacld2-7.0.3-mnt-reform-arm64
 reform-qcacld2
 initramfs-tools

Previous related information from the Pocket community:

jsae@reform ~> df -h /boot
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p1  464M  405M   26M  95% /boot
jsae@reform ~> du -h /boot
404K	/boot/loader/entries
408K	/boot/loader
8.0K	/boot/extlinux
172K	/boot/dtbs/7.0.3-mnt-reform-arm64/amlogic
232K	/boot/dtbs/7.0.3-mnt-reform-arm64/freescale
512K	/boot/dtbs/7.0.3-mnt-reform-arm64/rockchip
264K	/boot/dtbs/7.0.3-mnt-reform-arm64/qcom
1.2M	/boot/dtbs/7.0.3-mnt-reform-arm64
116K	/boot/dtbs/6.19.10-mnt-reform-arm64/amlogic
232K	/boot/dtbs/6.19.10-mnt-reform-arm64/freescale
504K	/boot/dtbs/6.19.10-mnt-reform-arm64/rockchip
856K	/boot/dtbs/6.19.10-mnt-reform-arm64
116K	/boot/dtbs/6.15.6-mnt-reform-arm64/amlogic
228K	/boot/dtbs/6.15.6-mnt-reform-arm64/freescale
404K	/boot/dtbs/6.15.6-mnt-reform-arm64/rockchip
752K	/boot/dtbs/6.15.6-mnt-reform-arm64
172K	/boot/dtbs/6.19.13-mnt-reform-arm64/amlogic
232K	/boot/dtbs/6.19.13-mnt-reform-arm64/freescale
512K	/boot/dtbs/6.19.13-mnt-reform-arm64/rockchip
920K	/boot/dtbs/6.19.13-mnt-reform-arm64
116K	/boot/dtbs/6.18.12-mnt-reform-arm64/amlogic
232K	/boot/dtbs/6.18.12-mnt-reform-arm64/freescale
504K	/boot/dtbs/6.18.12-mnt-reform-arm64/rockchip
856K	/boot/dtbs/6.18.12-mnt-reform-arm64
116K	/boot/dtbs/6.19.8-mnt-reform-arm64/amlogic
232K	/boot/dtbs/6.19.8-mnt-reform-arm64/freescale
504K	/boot/dtbs/6.19.8-mnt-reform-arm64/rockchip
856K	/boot/dtbs/6.19.8-mnt-reform-arm64
116K	/boot/dtbs/6.19.12-mnt-reform-arm64/amlogic
232K	/boot/dtbs/6.19.12-mnt-reform-arm64/freescale
512K	/boot/dtbs/6.19.12-mnt-reform-arm64/rockchip
864K	/boot/dtbs/6.19.12-mnt-reform-arm64
172K	/boot/dtbs/6.19.14-mnt-reform-arm64/amlogic
232K	/boot/dtbs/6.19.14-mnt-reform-arm64/freescale
512K	/boot/dtbs/6.19.14-mnt-reform-arm64/rockchip
920K	/boot/dtbs/6.19.14-mnt-reform-arm64
7.1M	/boot/dtbs
du: cannot read directory '/boot/lost+found': Permission denied
16K	/boot/lost+found
404M	/boot
jsae@reform ~> ls /boot
boot.scr                         initrd.img-6.19.14-mnt-reform-arm64
boot.scr.bak                     initrd.img-7.0.3-mnt-reform-arm64
config-6.19.14-mnt-reform-arm64  loader/
config-7.0.3-mnt-reform-arm64    lost+found/
dtb@                             ls1028a-mhdpfw.bin
dtb-6.19.14-mnt-reform-arm64@    System.map-6.19.14-mnt-reform-arm64
dtb-7.0.3-mnt-reform-arm64@      System.map-7.0.3-mnt-reform-arm64
dtbs/                            vmlinuz-6.19.14-mnt-reform-arm64
extlinux/                        vmlinuz-7.0.3-mnt-reform-arm64
flash.bin

I am unable to see a straightforward path to applying the most recent update.

ncdu 1.22 \~ Use the arrow keys to navigate, press ? for help
--- /boot ---------------------------------------------------------------------
160.3 MiB \[###########\]  initrd.img-7.0.3-mnt-reform-arm64
158.8 MiB \[########## \]  initrd.img-6.19.14-mnt-reform-arm64
38.0 MiB \[##         \]  vmlinuz-7.0.3-mnt-reform-arm64
37.1 MiB \[##         \]  vmlinuz-6.19.14-mnt-reform-arm64
7.0 MiB \[           \] /dtbs
1.5 MiB \[           \]  flash.bin
408.0 KiB \[           \] /loader
348.0 KiB \[           \]  config-7.0.3-mnt-reform-arm64
348.0 KiB \[           \]  config-6.19.14-mnt-reform-arm64
60.0 KiB \[           \]  ls1028a-mhdpfw.bin
!  16.0 KiB \[           \] /lost+found
8.0 KiB \[           \] /extlinux
8.0 KiB \[           \]  boot.scr.bak
8.0 KiB \[           \]  boot.scr
4.0 KiB \[           \]  System.map-6.19.14-mnt-reform-arm64
4.0 KiB \[           \]  System.map-7.0.3-mnt-reform-arm64
@   4.0 KiB \[           \]  dtb-6.19.14-mnt-reform-arm64
@   4.0 KiB \[           \]  dtb-7.0.3-mnt-reform-arm64
@   4.0 KiB \[           \]  dtb

Probably need this, too:

jsae@reform ~ [100]> sudo reform-check
I: Contents of /proc/device-tree/model: MNT Reform 2 with BPI-CM4 Module
I: `uname -a` output: Linux reform 7.0.3-mnt-reform-arm64 #1 SMP PREEMPT Debian 7.0.3-1+reform20260507T091502Z (2026-05-07 aarch64 GNU/Linux
E: Cannot get version of linux-image-mnt-reform-arm64 as it is not installed
I: Version of reform-tools: 1.86-1+reform20260505T063908Z+1
I: Version of system image: System Image v4: 2024-06-30
I: Version of LPC firmware: MREF2LPC 25_R2 20231124
I: Version of upstream U-Boot: 2024.04
I: Version of MNT U-Boot: 2026-01-28
I: probably booting via /boot/extlinux/extlinux.conf (/boot/boot.scr also exists)
I: Mount source of /: /dev/reformvg/root (LVM vg 'reformvg' on LUKS device 'reform_crypt' on SSD)
I: Mount source of /boot: /dev/mmcblk0p1 (SD-card)
I: Recommends of reform-desktop-minimal is not installed: reform-qcacld2
I: Suggests of reform-desktop-minimal is not installed: firmware-atheros
I: Suggests of reform-desktop-minimal is not installed: firmware-iwlwifi
I: the following files differ from how they are shipped by reform-tools (ignore /var/lib/alsa/asound.state):
??5??????   /var/lib/alsa/asound.state
E: linux-image-mnt-reform-arm64 is not installed
I: /boot/initrd.img-7.0.3-mnt-reform-arm64 does not belong to any installed kernel package
I: /boot/vmlinuz-7.0.3-mnt-reform-arm64 does not belong to any installed kernel package
E: the currently running kernel is not installed as a package
W: eMMC does not contain latest bootloader
W: You can update it to the latest version by running as root:
reform-flash-bootloader emmc
I: note that updating the bootloader on eMMC on your platform is not without risk!
I: The space where the bootloader would've been on eMMC is all zeroes.
I: SD-card contains the latest bootloader version 2026-01-28

That is an order of magnitude more than it should be. You may want to investigate why your initramfs became this large. A normal size would be around 30 to 50 MB.

Furthermore, how are you upgrading? Are you running “sudo apt upgrade” or are you running “sudo apt full-upgrade”?

1 Like

Hi!

Super! I was hoping this was not the new size for images.

I have only been using the sudo apt update && sudo apt upgrade method.

Additional: It seems like having such large boot images completely blocks any fixes I can think of. I think I read someone suggesting installing stuff in a larger location and moving it to /boot. I have yet to learn that one.

Since you are using Debian unstable, instead of using sudo apt upgrade you should be using sudo apt full-upgrade. If you use sudo apt upgrade then old and unused kernels will never get auto-removed and old kernels start accumulating until your /boot is full.

You can try recovering from your current stituation by using sudo apt autoremove.

1 Like

I completed a round of sudo apt autoremove in the updates from Friday. I had hoped that would get me ready.

In the updates from last week, I was already needing to autoremove before each update.

Now I can’t get past the final stages of initramfs and my last choice is to remove the penultimate image and vmlinuz.

Which images do you have installed? Can you show them with dpkg -l | grep linux-image

EDIT:

Another thing which would be interesting would be to see the output of this command:

ls -lha --sort=size /boot/initrd.img-*

I don’t understand how the system lists so many installed kernels and the boot only has 2.

jsae@reform ~> dpkg -l | grep linux-image
ic  linux-image-6.12.25-mnt-reform-arm64      6.12.25-1+reform20250503T130928Z     arm64        Linux 6.12 for 64-bit ARMv8 machines (MNT Reform)
ii  linux-image-6.14.5-mnt-reform-arm64       6.14.5-1~exp1+reform20250508T045900Z arm64        Linux 6.14 for 64-bit ARMv8 machines (MNT Reform)
ii  linux-image-6.19.14-mnt-reform-arm64      6.19.14-1+reform20260409T045900Z     arm64        Linux 6.19.14 for 64-bit ARMv8 machines (MNT Reform)
iF  linux-image-7.0.3-mnt-reform-arm64        7.0.3-1+reform20260507T091502Z       arm64        Linux 7.0.3 for 64-bit ARMv8 machines (MNT Reform)
rc  linux-image-arm64                         6.6.13-1+reform20240121T174844Z1     arm64        Linux for 64-bit ARMv8 machines (meta-package)
iU  linux-image-mnt-reform-arm64              7.0.3-1+reform20260507T091502Z       arm64        Linux for 64-bit ARMv8 machines (MNT Reform) (meta-package)
jsae@reform ~> ls -lha --sort=size /boot/initrd.img-*
-rw-r--r-- 1 root root 161M May  5 23:30 /boot/initrd.img-7.0.3-mnt-reform-arm64
-rw-r--r-- 1 root root 159M May  5 22:29 /boot/initrd.img-6.19.14-mnt-reform-arm64

As I’ve said in my first message to this thread, you have two problems:

  1. you didn’t use “apt full-upgrade” so now you have ancient kernel images around. You can dpkg --purge linux-image-6.12.25-mnt-reform-arm64 but it will not help you much because:
  2. your initramfs is four times larger than it usually is

You could unpack your initramfs using unmkinitramfs and try to find out which part of it is unusually large or (if it does not contain any private data) upload it somewhere and send me link so that I try to find out what is wrong with it.

1 Like

OK. I doubt I have private data in the initramfs, and will check. Seems like my only path.

Trying to purge the image failed with a bunch of errors.

jsae@reform ~/1/fix-boot> sudo dpkg --purge linux-image-6.12.25-mnt-reform-arm64
(Reading database… 437815 files and directories currently installed.)
Purging configuration files for linux-image-6.12.25-mnt-reform-arm64 (6.12.25-1+reform20250503T130928Z)…
Usage: /usr/bin/linux-run-hooks image MAINT-SCRIPT KERNEL-VER IMAGE-PATH -- MAINT-PARAMS ...
       /usr/bin/linux-run-hooks headers MAINT-SCRIPT KERNEL-VER -- MAINT-PARAMS ...

This command is intended to be called from the maintainer scripts of
Linux kernel image and headers packages.  It executes hooks installed
in the appropriate subdirectories of /etc/kernel and
/usr/share/kernel.

The MAINT-SCRIPT argument must be the name of the maintainer script:
preinst, postinst, prerm, or postrm.

The KERNEL-VER argument must be the kernel version string as shown by
'uname -r' and used in filenames, not the package version.

The IMAGE-PATH argument must be the absolute filename of the kernel
image.

The MAINT-PARAMS arguments must be the parameters received by the
maintainer script.
dpkg: error processing package linux-image-6.12.25-mnt-reform-arm64 (--purge):
 old linux-image-6.12.25-mnt-reform-arm64 package postrm maintainer script subprocess failed with exit status 2
Errors were encountered while processing:
 linux-image-6.12.25-mnt-reform-arm64

I seem to have an Nvidia firmware package in there. I need to find where to save 400 MB temporarily in case your wiser gaze finds more.

row keys to navigate, press ? for help                   
--- /home/jsae/1-projects/fix-boot/6.19/usr/lib/firmware/nvidia ---------------
                          /..                                                  
   97.6 MiB [###########] /ga102
   50.3 MiB [#####      ] /tu102
  432.0 KiB [           ] /tu116
  404.0 KiB [           ] /gb202
  404.0 KiB [           ] /gb100
  368.0 KiB [           ] /gp102
  340.0 KiB [           ] /gh100
  284.0 KiB [           ] /ad102
  264.0 KiB [           ] /gv100
  216.0 KiB [           ] /ga100
  172.0 KiB [           ] /ga107
  172.0 KiB [           ] /ga106
  172.0 KiB [           ] /ga104
  172.0 KiB [           ] /ga103
  164.0 KiB [           ] /gm20b
  148.0 KiB [           ] /tegra210
  136.0 KiB [           ] /tegra124
  132.0 KiB [           ] /tegra194
  128.0 KiB [           ] /tegra186
  120.0 KiB [           ] /gp100
  116.0 KiB [           ] /gm200
   96.0 KiB [           ] /gp107
   92.0 KiB [           ] /tu104
   88.0 KiB [           ] /tu106
   88.0 KiB [           ] /tu117
   76.0 KiB [           ] /gp108
   68.0 KiB [           ] /gk20a
   60.0 KiB [           ] /gp104
   44.0 KiB [           ] /gm206
   36.0 KiB [           ] /gp106
   28.0 KiB [           ] /gm204
@   0.0   B [           ]  gb207
@   0.0   B [           ]  gb206

You will need additional background. I was trying to get the graphical login working and one of the packages required an Nvidia driver despite the hardware in the Reform. I accepted that installation.

Clearly, that was a mistake and I regret not questioning it further.

Which package was that? Lets fix it.

EDIT: You can find out when you installed it by looking into your /var/log/apt/history.log files (requires superuser privileges).

EDIT2: You can also try to apt remove the nvidia package to find out which package on your system requires it.

1 Like

OK.

This is where it stands: I gave up on it a while back. I liked the old text terminal welcome over the tui-greet before and set it to only start there.

Now, I would like to be able to switch between Gnome and Sway at the login. I am 80% sure I was trying to get gdm3 to work and stopped when gdm3 never started even after installed. (I installed Gnome and was unable to get gdm working. )

Then, the whole /boot size problem came up, so I set up wlgreet.

I finally have the unmkinitramfs results up:

You might be able to find out out why gdm didn’t start in journalctl. gdm3 not starting sometimes happens because of errors with gnome-shell or gnome-session.

You removed greetd and tuigreet when you wanted to switch to gdm?

You debug this via ssh or via uart?

What happens when you sudo apt remove firmware-nvidia-graphics?

EDIT: Installing the Nvidia firmware caused the bloat in the boot images.

Removed firmware-nvidia-graphics. No challenges. Looks like exiv was the culprit?:

jsae@reform:~$ sudo apt upgrade
The following packages were automatically installed and are no longer required:
  libgexiv2-2  libthrift-0.22.0  reform-qcacld2-7.0.3-mnt-reform-arm64

Reform is still suffering through the /boot size problem.

EDIT: output

jsae@reform:~$ sudo apt remove firmware-nvidia-graphics
REMOVING:                       
  firmware-nvidia-graphics

Summary:
  Upgrading: 0, Installing: 0, Removing: 1, Not Upgrading: 0
  5 not fully installed or removed.
  Freed space: 160 MB

Continue? [Y/n] 
(Reading database… 437815 files and directories currently installed.)
Removing firmware-nvidia-graphics (20260410-1)…
Setting up initramfs-tools (0.151)…
update-initramfs: deferring update (trigger activated)
Setting up linux-image-7.0.3-mnt-reform-arm64 (7.0.3-1+reform20260507T091502Z)…
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-7.0.3-mnt-reform-arm64
cryptsetup: WARNING: reform_crypt: ignoring unknown option 'luks.discard'
zstd: error 70 : Write error : cannot write block : No space left on device 
E: mkinitramfs failure zstd -q -9 -T0 70
update-initramfs: failed for /boot/initrd.img-7.0.3-mnt-reform-arm64 with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
dpkg: error processing package linux-image-7.0.3-mnt-reform-arm64 (--configure):
 old linux-image-7.0.3-mnt-reform-arm64 package postinst maintainer script subprocess failed with exit status 1
dpkg: dependency problems prevent configuration of linux-image-mnt-reform-arm64:
 linux-image-mnt-reform-arm64 depends on linux-image-7.0.3-mnt-reform-arm64 (= 7.0.3-1+reform20260507T091502Z); however:
  Package linux-image-7.0.3-mnt-reform-arm64 is not configured yet.

dpkg: error processing package linux-image-mnt-reform-arm64 (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of reform-qcacld2-7.0.3-mnt-reform-arm64:
 reform-qcacld2-7.0.3-mnt-reform-arm64 depends on linux-image-7.0.3-mnt-reform-arm64; however:
  Package linux-image-7.0.3-mnt-reform-arm64 is not configured yet.

dpkg: error processing package reform-qcacld2-7.0.3-mnt-reform-arm64 (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of reform-qcacld2:
 reform-qcacld2 depends on reform-qcacld2-7.0.3-mnt-reform-arm64; however:
  Package reform-qcacld2-7.0.3-mnt-reform-arm64 is not configured yet.

dpkg: error processing package reform-qcacld2 (--configure):
 dependency problems - leaving unconfigured
Processing triggers for initramfs-tools (0.151)…
update-initramfs: Generating /boot/initrd.img-7.0.3-mnt-reform-arm64
cryptsetup: WARNING: reform_crypt: ignoring unknown option 'luks.discard'
zstd: error 70 : Write error : cannot write block : No space left on device 
E: mkinitramfs failure zstd -q -9 -T0 70
update-initramfs: failed for /boot/initrd.img-7.0.3-mnt-reform-arm64 with 1.
dpkg: error processing package initramfs-tools (--configure):
 old initramfs-tools package postinst maintainer script subprocess failed with exit status 1
Errors were encountered while processing:
 linux-image-7.0.3-mnt-reform-arm64
 linux-image-mnt-reform-arm64
 reform-qcacld2-7.0.3-mnt-reform-arm64
 reform-qcacld2
 initramfs-tools
Error: Sub-process /usr/bin/dpkg returned an error code (1)

I had disabled greetd when I received the Reform. I tried just installing Gnome and gdm and nothing changed in my start up.

I was starting sway at the command line. It’s time to change.

Edit: I had thought I might try to learn termux and swap between using termux or sway at different times.

Edit2: I think you had suggested a Pocket Reform owner rebuilt the initramfs in a working file and move it to /boot. I have yet to find that guide again.

JournalCtl reports GDM inactive. I need to look up what masking is.

jsae@reform:~$ sudo journalctl -u gdm
Jul 01 14:32:04 reform systemd[1]: gdm.service: Unit cannot be reloaded because it is inactive.
-- Boot 490b937d9f77404381d852d81cf2de46 --
Sep 19 21:18:22 reform systemd[1]: gdm.service: Unit cannot be reloaded because it is inactive.
-- Boot b397ab625aec46a2890da704dab49dff --
Sep 22 13:35:26 reform systemd[1]: gdm.service: Unit cannot be reloaded because it is inactive.
-- Boot f44965fa49834f0aab38869a577b888f --
Feb 07 20:43:26 reform systemd[1]: gdm.service: Unit cannot be reloaded because it is inactive.
-- Boot 86304df256d245489e9c142101580509 --
Feb 11 22:29:49 reform systemd[1]: gdm.service: Unit cannot be reloaded because it is inactive.
-- Boot 8f24d12e222e4c22a9ac07c6aa83fb2c --
Mar 24 08:10:40 reform systemd[1]: gdm.service: Unit cannot be reloaded because it is inactive.
-- Boot 45242a3178384c619259cf9e15c2981d --
Jul 15 21:31:29 reform systemd[1]: gdm.service: Unit cannot be reloaded because it is inactive.
-- Boot 36b8f44deb1f4dda8358cd67135f472e --
Aug 16 09:30:00 reform systemd[1]: gdm.service: Unit cannot be reloaded because it is inactive.
-- Boot 3152ca4aaa5f4840a99da60fbbf6cc6f --
Apr 06 17:24:37 reform systemd[1]: gdm.service: Unit cannot be reloaded because it is inactive.
jsae@reform:~$ sudo systemctl enable gdm.service 
Failed to enable unit: Unit /etc/systemd/system/gdm.service is masked