Here’s what I did: I bought a new 512 GB SSD to replace my old 256 GB SSD, which was getting full. I put the new SSD in an NVME to USB adapter and then booted to a Fedora 38 live USB and cloned the old drive into the new drive using dd if=/dev/nvme0n1 of=/dev/sda. Then I used gparted to expand the LUKS partition to cover the rest of the disk. I did not have to unlock the encryption for this. After that, I powered off, removed the 256 GB SSD and installed the 512 GB SSD, then booted normally. I did not erase either of the SSDs.

Now when I get into Fedora 38, GNOME Disks reports that /dev/mapper/luks-5e5f911c... is a 511 GB ext4 partition with 80 GB free, and /dev/nvme0n1p3 is a 511 GB LUKSv2 partition, but when I run df, this is what I see:

nate@redgate:~$ df / -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/luks-5e5f911c...  233G  159G   63G  72% /

What did I do wrong?

  • NateNate60@lemmy.mlOP
    link
    fedilink
    arrow-up
    31
    ·
    1 year ago

    I figured it out. I need to run resize2fs afterwards. I ran sudo resize2fs /dev/mapper/luks-5e5f911c... and that solved the issue.

    • phx
      link
      fedilink
      arrow-up
      10
      ·
      edit-2
      1 year ago

      Yup. This applies to filesystems regardless of whether they’re in an encrypted partition it not… You need to grow the FS size to fill the partition.

      For other FS types it’s:

      xfs_resize /path/to/device

      btrfs filesystem resize max /path/to/mountpoint

      For LVM you may also need to first pvresize and then lvresize

      Not sure about JFS or others

  • hperrin@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    1 year ago

    KDE’s partition manager can resize LUKS partitions and the file systems inside of them. Be sure to have a back up (which it sounds like your old SSD is already).

    Edit: Oh, nm, you already figured it out. :)

  • Moosemouse@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    1 year ago

    Did you expand the filesystem itself?

    You go from physical (your dd) to encrypted (luks) to lvm(if used) to your filesytem itself.

    You probably have btrfs so check out Resizing btrfs

    Edit: I can read, you have ext4 :)

    Check out resize2fs, IIRC it can do it live on a mounted partition

  • Corngood@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    What does lsblk show? You might have to resize the ext4 filesystem as well as the luks volume.

    • NateNate60@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I wasn’t aware that rsync also copied system files. I’m curious to know why my method is unsafe. The only potential problem I see with what I did is mixing up if and of in dd.

      • cybersandwich@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        1 year ago

        Your method is safer imo as long as you get the dd command right. Because afterwards you’ll have two bootable copies of your system. If you mess up resizing the filesystem on the new drive, just dd again from the old one.

        Glad you figured it out.

        • Dataprolet@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          rsync also gives you two bootable copies of your system. Even better, it gives you a checksum based copy of your files including permissions.

      • Dataprolet@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        Safe/unsafe might be the wrong word, but rsync is resumable and also copies permissions for example. dd is more like the brute force method of data transfer.

        • NateNate60@lemmy.mlOP
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          Pause and resume are nice but dd also gives you the permissions. It copies everything, byte for byte, hence why it’s a “low-level copy”