For the past week, I’ve been trying to switch my /home partition from my 500GB nvme to my 1TB sata ssd. I’ve been asking and receiving help from people in my previous post, but I keep hitting wall after wall in making it work and I seem to be missing a step.
Big thank you to @pixelscript@lemmy.ml, @NateSwift@beehaw.org, for replying to my comments and helping me along.
Previous post:
I finally installed Linux, but I’m having a mixed experience
Context:
OS: Fedora Linux 39 (KDE Plasma) x86_64
Kernel: 6.5.6-300.fc39.x86_64
DE: Plasma 5.27.8
WM: Kwin
CPU: AMD Ryzen 5 5600X
GPU: Nvidia Geforce GTX 1660
I have a 500GB nvme which I want to have my entire / stored within. And I have a 1TB sata ssd which I want to have my /home to be stored in. I’ve tried many of the steps some helpful people here on lemmy have detailed, and though it’s gotten me closer to getting it right, but I still can’t seem to login when I switch my fstab.
Allow me to go through every step I’ve done so far.
I reinstalled fedora, hoping I could separate my /home in the installer. No such luck, anytime I switched my /home partition into the 1TB drive my entire root directory would follow it. I decided to do the auto install on my nvme and do it manually when it’s fully installed.
So just to be clear I am starting from a clean install nothing except neofetch and vim installed.
I created two new directories directly in /. They were /new_home and /old_home.
I formatted my 1TB disk, partitioned it, and then formatted the partition into an ext4, 931.5 G partition.
I mounted it to /new_home
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
└─sda1 ext4 1.0 f56df020-2420-4b0c-af4d-2c4c6a56a0b0 718.4G 16% /new_home
From here I ran the command
sudo rsync -a /home/adelie/new_home
. this is why the current available space is 718.4G. I also added a new file to /new_home called confirm.txt in order to tell which was which at a glance.
I check the permissions and ownership of both /home and /new_home with ls -la
they were identical.
adelie@localhost-live:/new_home$ ls -la /new_home
total 8
drwxr-xr-x. 3 root root 4096 Feb 27 11:06 .
dr-xr-xr-x. 1 root root 204 Feb 25 21:13 ..
drwx------. 15 adelie adelie 4096 Feb 27 11:11 adelie
adelie@localhost-live:/new_home$ ls -la /home
total 0
drwxr-xr-x. 1 root root 12 Feb 25 21:01 .
dr-xr-xr-x. 1 root root 204 Feb 25 21:13 ..
drwx------. 1 adelie adelie 348 Feb 27 11:25 adelie
adelie@localhost-live:/new_home$
The story is the same inside the $USER files, the files and directories are identical and so are there permissions and ownership.
I added /dev/sda1 to fstab to auto boot both drives.
UUID=d5877671-6a39-4d96-9a2a-514b6007a59b / btrfs subvol=root,compress=zstd:1 0 0
UUID=ed92de40-2403-4365-9b5c-eb10d519757c /boot ext4 defaults 1 2
UUID=02E9-123A /boot/efi vfat umask=0077,shortname=winnt 0 2
UUID=d5877671-6a39-4d96-9a2a-514b6007a59b /home btrfs subvol=home,compress=zstd:1 0 0
UUID=f56df020-2420-4b0c-af4d-2c4c6a56a0b0 /new_home ext4 defaults 1 2
At this point I haven’t changed the boot path for /home yet. When I rebooted, everything worked as expected. When I entered the KDE login screen it let me go into my desktop when I inputted my password correctly.
After this I decided to swap them.
UUID=d5877671-6a39-4d96-9a2a-514b6007a59b / btrfs subvol=root,compress=zstd:1 0 0
UUID=ed92de40-2403-4365-9b5c-eb10d519757c /boot ext4 defaults 1 2
UUID=02E9-123A /boot/efi vfat umask=0077,shortname=winnt 0 2
UUID=d5877671-6a39-4d96-9a2a-514b6007a59b /old_home btrfs subvol=home,compress=zstd:1 0 0
UUID=f56df020-2420-4b0c-af4d-2c4c6a56a0b0 /home ext4 defaults 1 2
When I entered into the KDE login screen, anytime I inputted my password correctly it would kick me back to the login screen within the second. At this point I assumed it was a KDE issue and that I was missing a step in order to login correctly.
I read a comment explaining TTY, and that I should try logging in from there to confirm if it was a KDE issue or not. When I tried it I ended up with this.
Fedora Linux 39 (KDE Plasma)
Kernel 6.5.6-300.fc39.x86_64 on an x86_64 (tty3)
Localhost-live login: adelie
Password:
Last login: Tue Feb 27 xx:xx:xx on tty3
-- adelie: /home/adelie: change directory failed: Permission denied
Logging in with home = "/".
From my root account I checked /home and /old_home, and /home contained confirm.txt, meaning that everything mounted properly, I then changed the fstab back to what is was originally.
This is where I’m at now.
I’m totally lost on what step I missed. I’d like to get this working in order to actually be able to use my computer, as I am committed to changing my /home directory before making any major changes or installs. If anybody has any idea on what I missed please feel free to pitch in.
*Update: The issue was SELinux. My SELinux contexts were bad and were denying me access to my own data. I reset the context with this command,
restorecon -Rv /home/
I’d like to give a big thanks to,
/u/shininghero@kbin.social; for pointing out SELinux as a possible issue.
/u/burrito@sh.itjust.works; for providing the command to fix this issue.
/u/kbal@fedia.io; for being so patient with me, and helping me go through the list of possible issues.
You’re not wrong, rsync -a does not copy extended attributes, including selinux stuff. It needs -X added for that.
I think restorecon should be able to analyze and set them again. Something like restorecon -r -v -n /home. The -n doesn’t actually change anything.