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.
Fedora Linux also comes with SELinux enabled by default. Did you check that the new home folder and all its contents have the proper SELinux tags?
Run anls -lZand check that the directory has theuser_home_ttag,
The user’s home directory is also stored in the /etc/passwd file. Did you update the entry there?No, do not “disable SELinux”. That advice hasn’t been valid for a good 20 years. You can set it to permissive though, to see if it’s the source of the problem.
ok here’s the output
root@localhost-live:/home/adelie# ls -lZ total 36 -rw-r--r--. 1 adelie adelie unconfined_u:object_r:unlabeled_t:s0 0 Feb 27 11:11 confirm.txt drwxr-xr-x. 2 adelie adelie unconfined_u:object_r:unlabeled_t:s0 4096 Feb 25 21:03 Desktop drwxr-xr-x. 2 adelie adelie unconfined_u:object_r:unlabeled_t:s0 4096 Feb 27 19:32 Documents drwxr-xr-x. 2 adelie adelie unconfined_u:object_r:unlabeled_t:s0 4096 Feb 27 10:59 Downloads drwxr-xr-x. 5 adelie adelie unconfined_u:object_r:unlabeled_t:s0 4096 Feb 26 14:15 Essentials drwxr-xr-x. 2 adelie adelie unconfined_u:object_r:unlabeled_t:s0 4096 Feb 27 10:59 Music drwxr-xr-x. 3 adelie adelie unconfined_u:object_r:unlabeled_t:s0 4096 Feb 27 11:00 Pictures drwxr-xr-x. 2 adelie adelie unconfined_u:object_r:unlabeled_t:s0 4096 Feb 27 11:00 Public drwxr-xr-x. 2 adelie adelie unconfined_u:object_r:unlabeled_t:s0 4096 Feb 27 11:00 Templates drwxr-xr-x. 2 adelie adelie unconfined_u:object_r:unlabeled_t:s0 4096 Feb 27 11:00 VideosHere’s your issue. Your selinux contexts are bad so you’re probably being denied access to your own data. To reset the contexts back to normal you can use the restorecon command:
restorecon -Rv /home/The -R tells it to go through the specified path recursively, the v tells it to be verbose in the output and show you what it’s doing.
IT FUCKING WORKED
THANK YOU
Awesome! Enjoy!
This is a shot in the dark, but since the permissions look fine to me, the only other thing that comes to mind is that the SELinux contexts might not have been copied. Fedora is one of the few distros that enables SELinux in enforcing mode right out of the box. That can be very complex to understand if it breaks.
There is a Fedora documentation page about SELinux. The
/var/log/audit/audit.loglog file should be full of errors relating to your /home if it broke. I believe thatstat /homeandstat /new_homeshould display the SELinux context if SELinux is active, and they should be identical.Also possible I’m totally off the mark, though, it’s just a possibility.
I went into /audit.log you asked, I’m gonna be honest as a total linux newbie I have no idea what im looking at . I don’t really know what’s supposed to be an error and what’s irrelevent. This is the only thing that stick out to me
type=SERVICE_START msg=audit(1708923571.909:69): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-userdbd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'^]UID="root" AUID="unset"
Change SELinux configuration into warning only, reboot and see if that helps ? It that works then you know it’s a SELinux thing to solve.
FWIW it is doable :) since I have Fedora (37) and a separate /home and / device. Btrfs in my case.
How did you deal with the home sub volume?
I will edit this with hopefully useful info about my fstab etc. in a few min…— okey dokey —
Here’s my fstab. I had to comment out the home subvol and mount /home
UUID=02b32afc-3e05-412b-8781-xxx / btrfs subvol=root,compress=zstd:1 0 0 UUID=e82e80a8-b169-4127-90ad-xxx /boot ext4 defaults 1 2 UUID=D358-0ADF /boot/efi vfat umask=0077,shortname=winnt 0 2 #UUID=02b32afc-3e05-412b-8781-xxx /home btrfs subvol=home,compress=zstd:1 0 0 /dev/disk/by-uuid/7b194608-a407-4c2c-a0d8-xxx /home auto nosuid,nodev,nofail,x-gvfs-show 0 0Permissions on /home mount point (before mounting device to mountpoint):
$ ls -la /home total 0 drwxr-xr-x. 1 root root 0 Jan 5 20:47 . dr-xr-xr-x. 1 root root 166 Feb 27 18:36 .. $ sudo getfacl home # file: home # owner: root # group: root user::rwx group::r-x other::r-xRelevant output from df
$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb3 998540288 5447260 991484436 1% / /dev/nvme0n1p6 1248619684 932769256 258218276 79% /homeHome dir permissions
$ ls -ldZ /home/mes drwxr-xr-x. 196 mes mes system_u:object_r:user_home_dir_t:s0 12288 Feb 27 19:13 /home/mes $ sudo getfacl /home/mes getfacl: Removing leading '/' from absolute path names # file: home/mes # owner: mes # group: mes user::rwx group::r-x other::r-xLet me know if I can give any additional info.
Did you try logging into your root user account? That will allow you to see current mount points.
Maybe something went wrong with mounting the new volume to /home. Maybe the Btrfs @home volume doesn’t like being mounted anywhere else but /home. TBH I don’t think it’s the latter, but you can’t troubleshoot unless you login. And you have to login as root, as the home path for root is /root, therefore immune to your conundrum.
I’ve entered into my root account to check the mount points and yes I can confrim everything mounted properly. I simply can’t login, as far as I can tell. I’ve made an edit on the post to clarify this.
Before we give up, check your /home/adelie permissions. Especially your ~/.config. I’m quite stumped, I’m afraid.
I just noticed you did login with Adelie, just couldn’t cd to it. I’m on mobile so bear with me. What are the outputs of:
$ whoami
$ ls -l /home/adelie
?
deleted by creator
Have you read the post?
My uneducated guess here is that the id number for adelie has changed. Continue with this login, and then:
sudo chown -R adelie:adelie /home/adelie
Then logout and back in to see if the new /home/adelie is set to the correct id.
I didn’t know users had id numbers, any way to check my current one. I’ve changed fstab to what is was originally since then. I’ve made an edit to clarify this.
cat /etc/passwd |grep adelie
Or use the id command.
I allways symlink(ln -s) some folders from my HDD(Pictures, Movies, Documents, Music) since i dont want to have all my home folder on my slow HDD. May this is an Option for you.
Using the BTRFS file system while swapping mount points around may be the issue. It looks like you don’t have permission to access the new folders even thought you think you should. BTRFS can be strict/inflexible around ownership rules - when you swap the mount points around in fstab, the ownership in BTRFS may no longer map properly with the users for ownership in Linux. You need to take ownership of the files again via Linux commands.
As others have said try using the chown command (change ownership) with the - r flag (recursive so it goes into every subfolder) so that the user adelie owns everything again in your newly mounted /home/adelie folder. You need to do this after you’ve made the fstab change (I.e once you can’t log in) so that it maps properly with adelie in the new set up. Either use sudo to run chown when logged in as adelie in tty or log in as root and run chown.
It looks like you can’t log in graphically because KDE doesn’t have permission to even read any of the file in your new home directory so KDE can’t read any of its config files. It inherits the permission from the linux user adelie. When you log in with tty, you can’t even enter the folder as adelie as you don’t even have permission to read the folders, and you get thrown back to the root file system /.
What chown command should I try. I’ve already tried
sudo chown -R adelie:adelie /homeHonestly I feel like I’ve done everything at this point. Do you think I should reinstall fedora and partition root as ext4 instead of btrfs?




