22
submitted 4 days ago by arsus5478@lemmy.ml to c/linux@lemmy.ml

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

you are viewing a single comment's thread
view the rest of the comments
[-] monovergent@lemmy.ml 3 points 4 days ago* (last edited 3 days ago)

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:

  1. Shrink nvme0n1p3 by 1.5 GB
  2. Create a new partition and format
  3. dd the old boot partition to the new partition
  4. Resize the new /boot partition to the full 1.5 GB
  5. Delete the old boot partition
  6. 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.

this post was submitted on 16 Aug 2025
22 points (100.0% liked)

Linux

57274 readers
249 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS