Skip Navigation

Share your partition scheme!

How did you partition your disk before installing Linux? Do you regret how you set it up?

I'm looking for some real users experiences about this and I'm trying to find the best approach for my setup.

Thank you for sharing!

51 comments
  • Are you going to dual boot? Do you have some other special requirement? If not, there's no reason to overthink partitioning in my opinion. I did this for my main NVME:

    • Partition table: GPT
    • /boot : 1GB fat32 partition. Depending on your needs (number of kernels, initramfs's, other OSs) you might be fine with 500MB or even less. But because resizing can be a pain and I have the space to spare, I would much rather overprovision.
    • / : LUKS2 partition containing a btrfs filesystem with all the remaining space

    I use a swap file so I don't use a swap partition. If you want more control over specific parts of the filesystem, eg a separate /home that you can snapshot or keep when reinstalling the system, then use btrfs subvolumes. This gives you a lot of the features a partition would give you without committing to a specific size.

    This is the only partitioning scheme I have never regretted. When I've tried to do separate partitions I find myself always regretting the sizes I've allocated. On the other hand, I have not actually seen any benefit of the separation in practice.

  • I've been using Linux for over a quarter of a century. Initially I spent hours attempting to come up with the best partitioning scheme but these days I pick LVM and use the defaults.

    If I run out of space, I add a drive (or grow the virtual one) and gow the filesystem into the extra space.

    Sometimes I need temporary space and use sshfs to mount a directory from another machine.

    In other words, today you have infinite options to adjust according to need, partition schemes are not nearly as important.

    Even swap space can live as a file on a normal partition if required.

    That said. If you have specific use cases, check what's required. Specifically because different uses need different attributes, it pays to check.

  • save 80gb for root, sone swap (if not on an ssd) rest for /home. that way reinstalling or switching has minimal risk of losing my /home

  • I just clicked all drives in the Anaconda installer.

  • ½TB nvme SSD for the OS and any system/user level binary

    1TB sata SSD for code projects, docker, and videogames

    10tb HDD for just having a massive amount of fairly stable storage space. I gotta tell you I sleep really well knowing that at 4 in the morning a compressed disk image of my work SSD is being written to the hard drive.

  • I used to split my drive in half to dual boot. But I've never booted back into windows since installing Linux Mint.

    Should have just wiped the drive and installed Linux

    • I set up a dual boot over the winter, I've gone back to windows maybe 3 times at most.

      I'll still keep it around in case I ever decide to dabble in games that use rootkit anticheat (though since quitting destiny 2 I don't see that happening lmao) and for other very occasional utility, but I'm definitely thinking of shrinking that partition even further

  • with the majority here, I just use distro default / automatic setup in installer

    LONG ago, I did the whole hand-crafted thing, obsessing over exactly how large each partition had to be, but with increasing speed and lowering prices of storage, this attention to detail now seems pretty irrelevant:

    • hda split into /boot, /tmp, (swap), /, /opt, /usr, /var
    • hdb split into (swap) and /home
  • It blows my mind that we had multiple modern ways to setup volumes in Linux (LVM, ZFS, BTRFS) for decades, yet people keep using partitions like it's 1990.

    • What would you recommend then?

      • I recommend creating 3 partitions. One for UEFI, one for /boot and one for LVM.

        Inside the LVM you can assign volumes with complete flexibility. You can expand and shrink volumes. You can leave space unallocated and allocate it when the need presents itself. You can combine multiple disks in a single volume. You can do RAID over LVM or the other way around.

        Or you can go with ZFS or BTRFS, they have subvolumes and other nice features built in.

        What you don't have is to be stuck with fixed layout partitions anymore.

  • I enjoy the way OpenSuse Tumbleweed set it up:

    Laptop:

     
        
    NAME                                   MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
    nvme0n1                                259:0    0 476.9G  0 disk  
    ├─nvme0n1p1                            259:1    0     1G  0 part  /boot/efi
    └─nvme0n1p2                            259:2    0 475.9G  0 part  
      └─cr_nvme-eui.044a5011215f41f7-part2 254:0    0 475.9G  0 crypt 
        ├─system-root                      254:1    0   168G  0 lvm   /var
        │                                                             /usr/local
        │                                                             /srv
        │                                                             /root
        │                                                             /opt
        │                                                             /boot/grub2/x86_64-efi
        │                                                             /boot/grub2/i386-pc
        │                                                             /.snapshots
        │                                                             /
        ├─system-swap                      254:2    0     2G  0 lvm   [SWAP]
        └─system-home                      254:3    0 305.9G  0 lvm   /home
    $ sudo fdisk -l
    Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
    Disk model: UMIS RPIRJ512VME2OWD
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    
    Device           Start        End   Sectors   Size Type
    /dev/nvme0n1p1    2048    2099199   2097152     1G EFI System
    /dev/nvme0n1p2 2099200 1000215182 998115983 475.9G Linux LVM
    
      

    Desktop:

     
        
    NAME              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
    nvme0n1           259:0    0 931.5G  0 disk  
    ├─nvme0n1p1       259:1    0   512M  0 part  /boot/efi
    └─nvme0n1p2       259:2    0   931G  0 part  
      └─cr-auto-1     254:1    0   931G  0 crypt 
        ├─system-root 254:2    0   610G  0 lvm   /var
        │                                        /usr/local
        │                                        /root
        │                                        /srv
        │                                        /opt
        │                                        /boot/grub2/x86_64-efi
        │                                        /boot/grub2/i386-pc
        │                                        /.snapshots
        │                                        /
        ├─system-swap 254:3    0  62.5G  0 lvm   [SWAP]
        └─system-home 254:4    0   1.2T  0 lvm   /home
    nvme1n1           259:3    0 931.5G  0 disk  
    └─nvme1n1p1       259:4    0 931.5G  0 part  
      └─cr-auto-2     254:0    0 931.5G  0 crypt 
        └─system-home 254:4    0   1.2T  0 lvm   /home
    $ sudo fdisk -l /dev/nvme?n1
    Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
    Disk model: WD_BLACK SN850X 1000GB                  
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    
    Device           Start        End    Sectors  Size Type
    /dev/nvme0n1p1    2048    1050623    1048576  512M EFI System
    /dev/nvme0n1p2 1050624 1953525134 1952474511  931G Linux LVM
    
    
    Disk /dev/nvme1n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
    Disk model: WD_BLACK SN850X 1000GB                  
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    
    Device         Start        End    Sectors   Size Type
    /dev/nvme1n1p1  2048 1953525134 1953523087 931.5G Linux LVM
    
      
51 comments