lsblk
:
I need to enlarge nvme0n1p2 by shrinking nvme0n1p3 (LUKS)
do I have to do something with /boot/efi? enlarge as well?
backing up as of now
Back up everything before you start playing with partitions.
No, seriously, do it.
I got away with a 380 MB /boot during upgrade, though that assumes you aren’t dual booting another distro that also needs some room. Have you tried deleting old kernel versions?
But if you want to future-proof, the issue is that shrinking a partition from its “top” is not a supported function. For ease of explanation, suppose we want a 1.5 GB /boot partition:
- Shrink nvme0n1p3 by 1.5 GB
- Create a new partition and format
dd
the old boot partition to the new partition- Resize the new /boot partition to the full 1.5 GB
- Delete the old boot partition
- For good measure, reinstall GRUB to make sure it is aware of the new partition: https://wiki.debian.org/GrubEFIReinstall
This assumes your fstab file mounts by UUID (default in recent versions of Debian). If not, update /etc/fstab to match the new partition. It’s been a while since I last did this, so definitely have your backup on hand and perhaps double check with other resources in case I left out any steps.
More precisely, shrinking relies on the presence of empty blocks. A filesystem usually fills from “top” to “bottom”, so there would be no empty blocks to shave off the top of your nvme0n1p3, you can only shave off at the end. If you really don’t want /boot at the end, you’ll have to shrink nvme0n1p3, back it up, delete nvme0n1p3, expand /boot, re-create nvme0n1p3, and
dd
the backup back into its place.combine efi and boot into a single partition and switch to systemd-boot