UK tech experts · info@vividrepairs.co.uk
Vivid Repairs
Linux terminal on a dark monitor showing partition layout and df command output on a technician workbench
Fix It Yourself · Troubleshooting

increase boot partition size

Published 26 August 202612 min read
As an Amazon Associate, we may earn from qualifying purchases. Our ranking is independent.

Most guides on this topic tell you to run one command and call it done. That works maybe half the time. The other half, your partition layout doesn't cooperate, there's no free space adjacent to /boot, or you're dealing with LVM or encryption that changes everything. This guide covers all three scenarios, in order of complexity, so you can increase boot partition size properly without wiping anything.

TL;DR

To increase boot partition size on Linux: first try removing old kernels to free space fast. If /boot is fundamentally too small, use a partition manager from a live USB to shrink a neighbouring partition and extend /boot. For complex layouts with no adjacent free space, create a new larger partition and migrate /boot to it. Always back up before touching partition tables.

⏱️ 13 min read ✅ High success rate with correct method 📅 Updated July 2026

Key Takeaways

  • You cannot resize a mounted /boot partition. You need a live USB environment.
  • Removing old kernels is the fastest fix if /boot is at least 300 MB and just cluttered.
  • To increase boot partition size properly, shrink a neighbouring partition first to create free space.
  • If /boot moved to a new partition, you must update /etc/fstab and reinstall GRUB or the system won't boot.
  • Target 500 to 1024 MB for /boot going forward. The old 100 to 200 MB defaults are a known failure point.

At a Glance

  • Difficulty: Medium
  • Time Required: 15 to 60 mins depending on method
  • Success Rate: High when the correct method is matched to the layout

What Causes the /boot Partition to Fill Up?

The root problem, almost always, is that the Linux installer defaulted to a tiny /boot partition years ago and nobody changed it. We're talking 100 to 200 MB in many cases. That was fine when kernels were smaller and you'd manually clean up old ones. Now, a single kernel plus its initramfs image can eat 60 to 80 MB on its own. Three or four kernels in and you're full. The system starts refusing updates, apt throws errors, and suddenly you can't install anything.

Here's what's actually happening on disk. Every time you install a kernel update, Linux drops a new vmlinuz file and a new initrd.img file into /boot. Old ones don't get removed automatically unless you tell the package manager to clean them up. So over time, you accumulate a graveyard of kernel versions you haven't booted in months. Some systems also generate rescue images (look for files with 'rescue' in the name in /boot) that take up another 60 to 100 MB and serve very little purpose on a well-maintained machine.

The second problem is partition layout. On many preinstalled systems, /boot sits at the very start of the disk, immediately followed by the root partition or an LVM physical volume with no free space between them. You can't just extend /boot without first shrinking whatever is next to it, and if that neighbour is an LVM volume or an encrypted partition, the steps get more involved. See our guide on managing LVM partitions on Linux if you're in that situation.

Virtual machines are a particular offender here. Whoever provisioned the VM picked a small disk size, the installer split it up with a tiny /boot, and now six months of kernel updates have filled it completely. The fix is the same, but you have the option of expanding the virtual disk first before touching partitions, which is much easier than working with a physically constrained disk.

EFI System Partitions (ESP) have their own version of this problem. On UEFI systems, the ESP is mounted at /boot/efi and holds bootloader files. If you're dual-booting or have installed multiple kernels, a 100 MB ESP fills up fast. The fix is similar to resizing a standard /boot partition but requires FAT32 formatting and the boot,esp flags, which we cover in the advanced section below.

Run df -h /boot to check current usage. If you see 90% or above, you need to act before the next kernel update fails completely.

Increase Boot Partition Size: Quick Fix by Removing Old Kernels

Before you touch any partition tables, check whether you actually need to resize at all. If your /boot partition is 300 MB or larger and it's just full of old kernels, you can recover 200 to 400 MB in about five minutes. This won't permanently increase boot partition size, but it buys you time and might be all you need if you're disciplined about kernel cleanup going forward.

Keep the currently running kernel and at least one previous working version. Never remove all old kernels and leave only one. If the current kernel has a bug, you need a fallback.
1

Free Space by Removing Old Kernels Easy

  1. Check what's installed
    Run dpkg -l 'linux-image*' | grep '^ii' to list every installed kernel. Note the version numbers. Your currently running kernel is shown by uname -r.
  2. Remove old kernel packages
    For each old version you want to remove: sudo apt-get remove --purge linux-image-5.15.0-30-generic (substitute your actual version). Then run sudo apt-get autoremove --purge to catch any leftover dependencies.
  3. Remove rescue images if present
    Check with ls /boot/*rescue*. If they exist: sudo rm /boot/*rescue* and sudo rm /boot/loader/entries/*rescue* if that directory exists on your system.
  4. Verify the result
    Run df -h /boot again. You should see significantly more free space. If you're now below 70% usage, you're sorted for a few more updates.
Success: df -h /boot shows at least 30% free space and apt-get upgrade completes without /boot full errors.

This fix has a high success rate when the problem is purely too many old kernels. But if your /boot is 150 MB total and you've already cleaned it up, you need to actually increase boot partition size at the disk level. That's the next section.

Increase Boot Partition Size with a Partition Manager (Recommended)

This is the method that works for most people with a standard partition layout. You'll boot into a live environment, use a partition manager to shrink the partition next to /boot, and then extend /boot into the freed space. The whole process takes 15 to 30 minutes and doesn't require reinstalling GRUB as long as you're just enlarging the existing partition in place.

The critical rule here: you cannot resize a mounted partition. Full stop. If you try to resize /boot while your system is running from it, you will corrupt the filesystem. Boot from a live USB instead. Most distribution ISOs (Ubuntu, Fedora, Mint) include a partition manager in the live session. Alternatively, download the GParted Live ISO which is purpose-built for this job and boots fast.

Before you do anything, back up your important data. Partition resizing is generally safe with modern tools, but power cuts happen, disks have bad sectors, and mistakes happen. A backup takes 20 minutes. Recovering from a corrupted partition table without one takes days. For guidance on backing up your Linux system before major disk work, see our article on backing up Linux before partition changes.

2

Resize /boot Using a Partition Manager from Live USB Medium

  1. Boot into a live environment
    Write your distribution's ISO or GParted Live to a USB drive using a tool like Balena Etcher or dd. Boot from it and choose the live/try session (not install).
  2. Identify your /boot partition
    Open a terminal and run lsblk -f to see all partitions, their filesystems, and mount points. Your /boot is typically the small ext4 partition near the start of the disk, often /dev/sda1 or /dev/sda2. EFI System Partitions show as FAT32 with the boot and esp flags.
  3. Shrink the neighbouring partition
    In the partition manager, right-click the partition immediately after /boot. Select Resize/Move. Reduce its size by the amount you want to add to /boot (aim for 500 to 1024 MB total for /boot). Make sure the neighbour still has plenty of space for its own data. Apply the change.
  4. Extend /boot into the free space
    Select the /boot partition in the partition manager. Choose Resize/Move. Drag the right edge into the unallocated space, or type the new size directly. Apply all pending operations. This may take a few minutes.
  5. Resize the filesystem to fill the partition
    Open a terminal in the live environment. Run sudo e2fsck -f /dev/sda1 (use your actual device) to check the filesystem, then sudo resize2fs /dev/sda1 to expand it to fill the new partition size. Modern partition managers often do this automatically, but running it manually makes sure.
  6. Reboot and verify
    Reboot into your installed system. Run df -h /boot to confirm the new size. Then run sudo apt-get upgrade to confirm kernel updates install cleanly.
Success: /boot now shows the new, larger size in df -h and kernel updates install without errors.

One thing that catches people out: if the partition immediately after /boot has data right up to its start (no unallocated space between them), the partition manager will need to move that partition before it can extend /boot. GParted can do this, but moving a large partition takes a long time and the risk is slightly higher. Let it finish. Don't interrupt it. Took three reboots before one particular move operation on a 500 GB root partition finished cleanly in testing, but it did finish.

The Arch Linux wiki on parted has solid reference material on partition flags and filesystem types if you want to understand exactly what the partition manager is doing under the hood.

Advanced: Increase Boot Partition Size by Migrating to a New Partition

Sometimes you genuinely can't resize in place. The disk is completely full, the layout is too constrained, or you're working with LVM and encryption where moving partitions is risky. In that case, the cleanest approach is to create a new, larger /boot partition somewhere else on the disk (or on a second disk), copy everything across, and point the system at the new one. This is more involved, but it's reliable and doesn't require you to move existing data around.

This approach does require you to update /etc/fstab and reinstall GRUB. Don't skip those steps. If you copy /boot to a new partition and don't update the UUID in fstab, the system will try to mount the old (now empty or repurposed) partition on boot and fail. Same goes for GRUB: it needs to know where the new /boot lives.

3

Migrate /boot to a New Larger Partition Hard

  1. Create a new partition in available free space
    From a live environment, use GParted or parted to create a new partition in any free space on the disk. Format it as ext4 for a standard /boot, or FAT32 with boot,esp flags for an EFI System Partition.
    sudo parted /dev/sda
    Then in the parted prompt, create the partition, set its type, and write. Exit parted and format:
    sudo mkfs.ext4 /dev/sda3
  2. Mount both old and new /boot partitions
    sudo mkdir -p /mnt/oldboot /mnt/newboot
    sudo mount /dev/sda1 /mnt/oldboot
    sudo mount /dev/sda3 /mnt/newboot
    Substitute your actual device names.
  3. Copy all /boot contents to the new partition
    sudo rsync -avx /mnt/oldboot/ /mnt/newboot/
    The trailing slash on the source is important. It copies the contents, not the directory itself. Verify the copy with ls -la /mnt/newboot/ and compare to ls -la /mnt/oldboot/.
  4. Get the new partition's UUID
    sudo blkid /dev/sda3
    Copy the UUID value. You'll need it for fstab.
  5. Update /etc/fstab on the installed system
    Mount your root partition: sudo mount /dev/sdaX /mnt (replace X with your root partition number). Open /mnt/etc/fstab in a text editor. Find the line for /boot and replace the old UUID with the new one from blkid. Save the file.
  6. Reinstall GRUB from a chroot
    sudo mount /dev/sda3 /mnt/boot
    If UEFI: sudo mount /dev/sdaY /mnt/boot/efi
    Then bind-mount the system directories and chroot:
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    sudo chroot /mnt
    Inside the chroot: grub-install /dev/sda then update-grub. Type exit to leave the chroot.
  7. Reboot and verify before removing the old partition
    Reboot into your installed system. Run df -h /boot to confirm the new partition is mounted and shows the correct size. Boot a few times to be sure. Only then should you go back to the live environment and delete or repurpose the old /boot partition.
Success: System boots normally, df -h /boot shows the new larger partition, and kernel updates install without errors.
If you are on an LVM setup with no free space anywhere on the disk, you will need to attach a second disk, extend the volume group onto it, migrate the LVM physical volume, and then free up space to resize /boot. That process is significantly more complex. See our guide on extending an LVM volume group with a new disk for the full walkthrough.

For EFI System Partitions specifically, the process is nearly identical but you format the new partition as FAT32 and set the boot and esp flags in GParted before copying. The Ubuntu community documentation on partition resizing covers some of the EFI edge cases well, particularly around encrypted setups.

One thing worth knowing: the GNU parted manual documents every flag and partition type you might encounter. If you're unsure what type to assign a new partition, that's your reference.

Preventing /boot From Filling Up Again

Once you've fixed the immediate problem, here's how to stop it coming back. Most important first.

Size /boot generously from the start. If you're reinstalling or setting up a new system, give /boot at least 500 MB. For multi-boot setups or systems that get frequent kernel updates, 1024 MB is better. The historical 100 to 200 MB defaults are a known failure point and there's no good reason to use them in 2026.

Clean up kernels regularly. After each kernel update, remove the oldest version you're no longer using. On Debian and Ubuntu systems, sudo apt-get autoremove --purge handles this if you've already removed the specific package. Some systems can be configured to keep only the last two kernels automatically. Check your distribution's documentation for unattended-upgrades settings.

Consider skipping a separate /boot partition entirely. Unless your hardware requires it (some older BIOS setups, or full-disk encryption with LUKS where /boot must be unencrypted), you don't need a separate /boot partition. Booting directly from the root filesystem simplifies everything and removes this class of problem completely. This is worth considering if you're doing a clean install.

In virtual machines, expand the virtual disk first. If you're running Linux in a VM and /boot is filling up, expand the virtual disk from the hypervisor console before touching partitions inside the VM. It's much easier to add 10 GB to a virtual disk and then extend the partition than to work with a constrained fixed-size disk.

Back up before any disk work. This isn't optional. Partition operations are generally safe but not guaranteed. Keep a current backup before you touch partition tables, every single time.

Increase Boot Partition Size: Summary

To increase boot partition size on Linux, match the method to your situation. If /boot is 300 MB or more and just cluttered with old kernels, clean those up first. That's a five-minute fix. If the partition itself is too small, use a partition manager from a live USB to shrink the neighbouring partition and extend /boot into the freed space. That covers most standard layouts. And if your disk is too constrained to resize in place, create a new larger partition, migrate /boot to it with rsync, update /etc/fstab, and reinstall GRUB. It's more steps but it works cleanly on any layout. Going forward, size /boot at 500 to 1024 MB and clean up old kernels regularly. You won't hit this problem again.

Quick Reference

  • Check usage first: df -h /boot
  • List kernels: dpkg -l 'linux-image*' | grep '^ii'
  • Remove old kernels: sudo apt-get remove --purge linux-image-VERSION then sudo apt-get autoremove --purge
  • Never resize a mounted partition. Use a live USB.
  • After migrating /boot to a new partition, always update /etc/fstab UUID and run grub-install + update-grub.
  • Target 500 to 1024 MB for /boot going forward.

Frequently Asked Questions

At least 500 MB for single-kernel systems. If you run multiple kernels or dual-boot, aim for 1024 MB. The old 100 to 200 MB defaults are too small and will cause upgrade failures.

No. You must boot from a live USB or live ISO so the /boot partition is unmounted. Resizing a mounted partition risks filesystem corruption and data loss.

Not if you only enlarge the existing partition in place. But if you move /boot to a new partition, you must update /etc/fstab with the new UUID and run grub-install followed by update-grub from a chroot.

You have two options. Use a partition manager from a live environment to move a neighbouring partition and create free space adjacent to /boot, or create a new larger partition elsewhere on the disk and migrate /boot contents to it.

Yes, as long as you keep the currently running kernel and at least one previous working kernel. Use 'sudo apt-get remove --purge linux-image-VERSION' and then 'sudo apt-get autoremove --purge' to clean up properly.