How to Install Fedora with a Separate /home Partition

Create a separate /home partition during Fedora installation by selecting custom partitioning and defining a new mount point.

You need a separate /home partition when you reinstall without losing your life's work

You boot the Fedora installer. The default option says "Automatic partitioning". You click it, and the installer warns you that it will wipe your disk. You have a terabyte of configs, code, and documents in /home. You don't want to wipe that. You want to reinstall the OS cleanly while keeping your data intact. A separate /home partition solves this. It isolates user data from the system files so you can destroy and recreate the root partition without touching your personal files.

This setup also helps when you run multiple Linux distributions. You can share a single /home across Fedora, Arch, and Debian, keeping your dotfiles and documents in one place while each OS manages its own root partition. It also prevents a runaway download or log file in /home from filling the root partition and crashing the system.

What the filesystem hierarchy actually does

Linux mounts everything under a single tree. / is the root. /home is a directory under root. If /home lives on the same partition as /, formatting / deletes /home. If /home is on a separate partition, formatting / leaves the other partition alone. The OS sees them as one tree, but the disk has two distinct storage areas.

Think of / as the operating system's workspace and /home as your personal filing cabinet. If they share the same drawer, cleaning the drawer throws away your files. If they are in separate drawers, you can empty the workspace drawer and keep the filing cabinet safe. The installer creates the mount points that tell the kernel which drawer goes where.

Fedora Workstation defaults to Btrfs with subvolumes. A subvolume acts like a partition but lives inside the filesystem. You can create a separate subvolume for /home. This gives you the isolation benefit without the complexity of managing multiple partitions. You can also snapshot / without capturing /home. This is the recommended approach for Fedora.

Configure partitioning in the Anaconda installer

The installer handles the heavy lifting. You only need to make the right choices during the "Installation Destination" step.

Boot the Fedora installer. Proceed through language and keyboard setup until you reach "Installation Destination". Click "Done". The installer detects your disks.

Select "I will configure partitioning" in the storage configuration dialog. Click "Done". You now see the partitioning screen.

Choose "Custom" to open the manual editor. The editor shows existing partitions and free space. If you are installing on a fresh disk, you see free space. If you are reinstalling, you see existing partitions.

Click "Add" to create a new mount point. Set the mount point to /home. Select the filesystem type. Btrfs is the default and recommended choice. LVM is an alternative if you need to span multiple disks. ext4 is a legacy option.

Assign a size. If you have a single disk, the installer calculates the remaining space. You can drag the slider to reserve space for /home. Leave enough room for / to hold the OS and packages. 30 GB is a safe minimum for /. The rest goes to /home.

Click "Add" again for /. Set the mount point to /. Assign the remaining size.

If you selected Btrfs, the installer creates subvolumes. You will see @ for root and @home for home in the subvolume list. This is correct. The subvolume names are internal identifiers. The mount points matter.

Review the layout. Ensure /home points to a different device or subvolume than /. Click "Done" to apply. The installer warns about data loss if you are overwriting existing partitions. Confirm only if you understand the impact.

Proceed with the installation. The installer formats / and mounts /home without formatting if you selected "Reinitialize" only for /. If you selected "Reinitialize" for everything, /home gets wiped. Check the reinitialize options carefully.

Run lsblk -f after boot to verify the layout.

# -f shows filesystem types and labels
# Verify / and /home report different devices or subvolumes
lsblk -f

Look for two entries. One mounts at /. One mounts at /home. If they share the same MOUNTPOINT column value, the separation failed. If they show different FSTYPE or UUID values, the separation succeeded.

Btrfs subvolumes vs physical partitions

Fedora uses Btrfs by default. Btrfs subvolumes provide partition-like isolation without the overhead of separate partitions. You can resize subvolumes on the fly. You can snapshot them. You can exclude them from snapshots.

A separate physical partition requires unmounting and repartitioning tools to resize. A subvolume resizes with a single command. A subvolume also integrates with snapper, Fedora's snapshot tool. You can configure snapper to exclude /home from snapshots. This means you can roll back a broken dnf upgrade without reverting your browser bookmarks or document edits.

If you choose LVM, you get logical volumes. LVM volumes behave like partitions but support dynamic resizing and spanning. LVM is useful if you have multiple disks and want to pool them. LVM is also useful if you need to resize volumes without unmounting.

Standard partitions are the simplest option. They work everywhere. They are harder to resize. They require a live USB and gparted to change size. Use standard partitions only when you need maximum compatibility or are dual-booting with Windows and want strict isolation.

Use Btrfs subvolumes when you want snapshots and flexible resizing without repartitioning. Use LVM when you need to span multiple disks or resize volumes dynamically without unmounting. Use separate physical partitions when you are dual-booting with Windows and want strict isolation. Stay on the default Btrfs subvolumes if you only deviate from the defaults occasionally.

Verify the layout after boot

The installer writes /etc/fstab to ensure the partitions mount on boot. Fedora also uses systemd mount units. Check the mount status.

# -T shows filesystem type
# Verify / and /home are on different devices
df -hT / /home

The output shows two rows. The Type column shows btrfs or ext4. The Size column shows the allocated space. The Mounted on column shows the mount point. If /home shows the same Filesystem device as /, the separation is not working as expected.

Check the subvolume structure if you used Btrfs.

# List all subvolumes on the root filesystem
# Look for 'home' with a different ID than 'root'
sudo btrfs subvolume list /

The output lists subvolumes with IDs. @ usually has ID 256. @home has a different ID. The path column shows the subvolume name. The top level column shows the parent. If @home exists, the subvolume separation is active.

Check the fstab entry to confirm the mount options.

# /etc/fstab excerpt
# UUID=... /home btrfs subvol=@home 0 2
# subvol=@home tells the kernel to mount the specific subvolume
# 0 2 means no dump, pass number 2 for fsck order

The subvol=@home option ensures the kernel mounts the correct subvolume. If this option is missing, the kernel mounts the root subvolume at /home, which breaks the layout. Anaconda writes this option automatically. Do not edit /etc/fstab manually unless you know exactly what you are doing. Manual edits drift and cause boot failures.

Common pitfalls and permission repairs

A separate /home introduces permission issues if you reinstall and the user ID changes. Linux identifies users by UID, not username. If your old user had UID 1000 and the new user has UID 1001, the files in /home are owned by UID 1000. The new user cannot access them.

Check the ownership of your home directory.

# -l shows detailed permissions
# Verify the owner matches your current user
ls -ld /home/$USER

If the owner is nobody or a different UID, run chown to fix it.

# -R recurses into all subdirectories
# $USER expands to the current username
# Fixes ownership if the UID changed during reinstall
sudo chown -R $USER:$USER /home/$USER

This command restores ownership. It may take a moment on large directories. Do not skip this step if you see permission denied errors.

Another pitfall is filling /home and thinking the system is broken. If /home fills up, applications that write to /home fail. The OS continues to run. If / fills up, the OS breaks. Services crash. Logs stop writing. A separate /home protects / from user data growth. Monitor both partitions.

# -h shows human-readable sizes
# Check usage percentage for both partitions
df -h / /home

If /home is over 90% full, clean up old downloads or move data to external storage. If / is over 90% full, clear the package cache or remove old kernels.

# --cleaner removes cached package metadata
# Frees space in /var/cache/dnf
sudo dnf clean all

SELinux can also cause issues if you move /home or change mount options. SELinux labels files with contexts. If the context is wrong, services cannot access files. Fedora relabels on boot if needed. You can force a relabel if you suspect context corruption.

# Touching this file triggers a full relabel on next boot
# This can take several minutes on large disks
sudo touch /.autorelabel

Reboot after creating this file. The system relabels everything. This fixes most SELinux denials related to filesystem changes. Check journalctl -t setroubleshoot for denial summaries if you still see errors.

Decision matrix

Use Btrfs subvolumes when you want snapshots and flexible resizing without repartitioning. Use LVM when you need to span multiple disks or resize volumes dynamically without unmounting. Use separate physical partitions when you are dual-booting with Windows and want strict isolation. Stay on the default Btrfs subvolumes if you only deviate from the defaults occasionally.

Where to go next

Verify the mount points before you format. A wrong click wipes data. Check lsblk twice. Trust the package manager. Manual file edits drift, snapshots stay.