Hello I’m Doctor_Rex after 2 posts asking multiple questions I have finally installed Fedora KDE 39 on my desktop.
Previous Posts:
I’m ready to install Linux, but I’d like your opinion first
My Windows 10 install broke, but I’m hesitant to switch to Linux.
I would show you an image of my neofetch but lemmy won’t let me place it due to file size so ¯_(ツ)_/¯.
I would have installed it sooner but due to poor decisions I made when making this PC I had to wait for a Linux compatible WiFi card to arrived.
My experience with Fedora KDE:
I’ve been using Fedora for about 2 days now and, to a degree, it’s working just fine, KDE is slick and is easy to customize. Fedora itself works just fine and it’s discover store works well enough. That said I need some extra help before I fully dedicate myself to daily driving Fedora.
I’d just like to clarify that I love Linux, I love owing my computer, and I love having so much control over it, and I am completely ready to get my hands dirty in order to make it work, to an extent, as more that anything I want a working computer. I’d also like to clarify that I’m sticking to Fedora KDE 39 and am not looking for suggestions.
Questions:
Can I partition /home directory in a different drive and still fuction?
I own one 500GiB nvme ssd, which is where I want to place my root, boot, var, etc, and I have one 1000GiB(1TiB) sata ssd which is where I would like to place my /home directory. I was originally going to do this but I decided to ignore my 1000GiB drive for now just to test Fedora. Would there be any unforseen complications with this set up?
Transferring /home directory without reinstalling Linux?
After running low on storage space on Windows 10 I have considered upgrading to a larger drive, 2-4 TiB. With my switch to Linux I’d like to know if there is an easy way to take all my files from my previous drive into the new one with all the correct paths configured, without reinstalling Linux?
Best way to partition my / and /home directories?
I’m not asking about btrfs or anything like that, I simply want to know, how to best partition my system. I’ve read and seen multiple tutorials about partitioning systems but many of them add other stuff like partitioning /var and /boot, and adding some unformatted space. I simply want to seperate my / and /home without anything extra. How would I best go about that?
Fedora KDE refresh rate seems broken?
I’ve been running Wayland with my NVIDIA GTX 1660 with the Nouveau drivers, I have a 1440p 165hz monitor. Whenever I try to raise my refresh rate in settings above 75hz a giant black box appears at the top of the screen. This problem seems to persist on X11(or maybe I didn’t switch correctly). To me this is a very big issue as I’d like to take full advantage of my hardware, and it also simply makes the system as a whole feel sluggish. Is this a problem I can solve or am I just doomed?
Downloading NVIDIA drivers on Fedora KDE?
I asked this question before in a previous post but it seems that all the answers that were given were for Fedora Workstation(GNOME). Considering the rumors that GNOME might completely remove the X11 session I’d very much like to avoid switching(I want to have plenty of options). How would I go about downloading, installing, and potentially managing the proprietary NVIDIA drivers on Fedora KDE? I’ve searched for an answer to this question but never found a concrete answer.
If you responded to my questions then, Thank You.
Here’s an overview of how Linux reads its filesystems on boot:
- You press the power button on your PC.
- Your motherboard receives power and begins a process called Power-On Self-Test, or POST. This is essentially the motherboard “feeling out” on all of its ports to see what’s connected. It senses all of your hard drive(s).
- The motherboard picks one of the partitions on one of the connected drives and tries to run it as an operating system. For a linux system, you want this to be /boot.
- /boot finds your actual system partition and tries to spin up the OS using it. This partition becomes the “main” one you’ll see by default when it’s fully up and running.
- At some point in the boot process, Linux checks the contents of the file at
/etc/fstab
. “fstab” here is short for “file system table”. It’s basically a list of other partitions plugged into your PC, and a mapping of where it should be mounted in your filesystem. If your system partition was Partition A, for example, and you had another Partition B that you want to be accessed at the path/B
, you’d add a line to your fstab file that says something to the effect of, “hey, reach out to the connected partition with ID <long id string>, and if it’s there, create the folder/B
, and make the files inside of the partition show up there.” This is called “mounting” the filesystem. You can do it manually at any time with themount
command. The fstab file is just a way to get Linux to auto-mount permanent partitions on startup. You can mount any drive to any path, including/home
.
What you need to do is:
- Format your new drive, and create a new partition there.
- Mount the new partition with the
mount
command. Park it anywhere you want./media/new_home
or whatever you like. This will just be a temporary place. - Copy everything from your
/home
directory to the newly mounted one. - Move the existing
/home
folder to literally anyplace else than where it currently is.\home_old
would do. It just needs to be out of the way. You almost certainly want to do this only when logged in as the root user, or from another OS running off a USB. You will not be able to log in as any user after you do this until you finish the following steps. - Edit your
/etc/fstab
file to point your new home partition to the path/home
. This will “hook up” the new partition. - Reboot to make Linux mount the new partition.
- Verify everything works.
- Delete the backup home directory.
Answering some of your questions:
Can
/home
live on a separate drive from the system partition?Yes. Linux does not care in the slightest where any mounted drives are. A drive is a drive is a drive. If it mounts, it mounts. Just make sure it’s in your fstab file.
How should I organize my partitions?
There is no right answer. It depends entirely on what you need and how you intend to use your PC. But since that answer is unhelpful, I’ll tell you how I’ve done mine. I currently have a single 2TiB SSD split up like this:
[ 200 MB boot | ~500 GB system | 2 GB free | ~1.5 TiB home | 8 GB swap ]
Boot comes first and is tiny. System is probably an order of magnitude bigger than it ought to be, but whatever. 2 GB of deliberately unallocated space is there for the exceedingly rare situation where a dumb bug chews up all the storage on the system partition rendering it un-runnable; it’s emergency expansion space I can tack on to get it running just long enough to resolve the problem. Home gets the lion’s share. And swap goes at the end, where home can cannibalize it if some day I decide I don’t need so much swap space.
You would probably organize your drives in a similar way, except one drive would be entirely dedicated to
/home
and nothing else, and system taking up the bulk of the other drive. That would be the easy and naive solution. Some users may be inclined to create other partitions for organizational purposes. I personally don’t care for that organizational pattern, so, w/e.I cannot help you with your display troubles. :(
OK so I tried the steps you detailed and now I cant login, I’m currently typing this from a Live Environment
old home partition = partition A (nvme0n1p3)
new drive/home partition = drive B (sda1)
I formatted drive B following this tutorial link 1. I formatted it with the GPT table
I then partitioned drive B using this tutorial link 2. Made it one large partition with ext4
I then made 2 new directories /media/home_new and /media/home_old
I mounted drive B to /media/home_new/
I mounted partition A to /media/home_old/ (I think this was the problem)
I then edited fstab to mount drive B as new home( I am absolutely sure I used the correct UUID)
I typed in terminal “reboot”
I arrived at the login screen, when I typed my password it accepted the password, the screen played an animation, it would then kick me back to the login screen. Any time I inputted my password correctly it would kick me back to the login screen after the animation.
I’m kind of lost on how to salvage this. I understand I did something wrong but how do I fix this?
*Update: I was able to log back in after changing the fstab back to the old partition
But I’d still like to swap my home directories so where do I go from here
I can’t give you precise directions on how to troubleshoot this, hoping someone else can chime in with some wisdom.
What I can tell you is that being able to log in and then failing to launch a session is definitely evidence that your system either cannot find or cannot access the
/home
directory. I ran into the same thing not too long ago, but I guarantee you that we don’t have the same problem. Mine was file permission related due to installing a new OS. You have the same OS.When you installed your OS, did you create a root user account? Not an account that can use
sudo
, I mean theroot
user. That user has a special home directory,/root
, which is entirely separate from/home
. If you can find a guide that tells you how you can boot your OS as the root user, try that.Put your system back into the broken state with the new partition in the fstab file, reboot, log in as root, and check the filesystem. If you did things correctly, a
/home
directory should be there, and there should be files in it. If you don’t see it, it means for whatever reason it failed to mount on startup. Try using themount
command manually to force it to mount, and see if it gives an error. If it works with the command, it means your fstab is not correct.Best of luck! Welcome to the Linux experience… lmao
If you didn’t create a root user, try:
$ sudo su
This land you in a root prompt. Set the password:
# passwd
You should now be able to log into a root user account. Shift+Ctrl+F1 will land you in the first virtual text only console. Log in as root using the password you just set. You have just tested it. To go back to the graphical interface, Shift+Ctrl+F7 or F8, depending on your distro.
Each F key there will take you to a different virtual terminal session, with the last one usually meant for X (gui). For some reason that’s usually the seventh, but feel free to go in sequence from F2. There might be some blank screens, as most people don’t use this feature so distros simply don’t start terminals there and leave them blank so X is still on F6/7/8 as most people expect.
Old drive with current home directory = Drive A
New drive I wish to use a home directory = Drive B, I gave it an extra file named confirm.txt
I did have a root user account, I just didn’t know how to boot into it
The first time around I forgot to copy my old home folder into my new home folder, but now I know that wasn’t the issue.
After a bit of fiddling I decided to reinstall fedora.
I tried to separate my / and /home from the fedora installer; for some reason fedora wouldn’t let me. Any time I tried to set my /home on my 1TB drive fedora would place my / into said drive. Just to clarify I want my / and everything in it to stay in my 500GB nvme and my /home to be in my 1TB ssd.
I just cut my loses and let fedora do it’s usual install in Drive A. Drive B was left untouched.
For the new install I decided to do some thing different
In / I made two new partitions /new_home and /old_home
I went into fstab and made both drives mount; Drive A mounted into /home and Drive B into /new_home
I rebooted; Logged in as normal and Drive B successfully mounted
From here I reversed it, Drive A into /old_home and Drive B into /home
I rebooted; I entered into the KDE Login screen as usual. I typed my password correctly but after a short animation I was placed back into the login screen.
I logged in as root and checked if everything mounted correctly. It did. From / my /home would place me into Drive B the one with confirm.txt. And Drive A was in /old_home
So now I’m confused. Everything mounted properly but I still can’t login with my account. I’m assuming this might be a KDE problem but I’d like your opinion.
I use KDE on Debian and did not encounter this problem when I did the reverse action (migrated
/home
from a second drive back to the system drive).This may be an insulting question, but are your files in the new home partition inside a
/home
directory on that partition? Because if they are, that would definitely mess it up. If you mounted that to/home
in your fstab file, then the path to your home dir would be/home/home/user
instead of/home/user
. Your user directory needs to be at the root of the filesystem on that partition.I expect you did not make this mistake, but a sanity check never hurts…
Oh, and check the files on the new partition with
ls -l
as well. See who owns them. If you did the copy with the root account or with sudo, the owner of the files might beroot
. They should be owned by the user you are trying to log in as.
Going over your steps, it looks like you forgot to copy the contents of your old home directory (partition A) into the new partition on drive B before editing your fstab file. This would cause the system to boot and not find any home directory (because once you change the fstab file it only knows to look for it on drive B) and then fail to log you in.
You also shouldn’t have to remount your home directory (partition A) before copying files over because it’s already mounted when you boot your system.
Hope this helps! Let me know if you have any questions!
I think they remounted because it was was a live ISO instead of doing it on the actual fedora install. But I might be wrong.
Old drive with current home directory = Drive A
New drive I wish to use a home directory = Drive B, I gave it an extra file named confirm.txt
I did have a root user account, I just didn’t know how to boot into it
The first time around I forgot to copy my old home folder into my new home folder, but now I know that wasn’t the issue.
After a bit of fiddling I decided to reinstall fedora.
I tried to separate my / and /home from the fedora installer; for some reason fedora wouldn’t let me. Any time I tried to set my /home on my 1TB drive fedora would place my / into said drive. Just to clarify I want my / and everything in it to stay in my 500GB nvme and my /home to be in my 1TB ssd.
I just cut my loses and let fedora do it’s usual install in Drive A. Drive B was left untouched.
For the new install I decided to do some thing different
In / I made two new partitions /new_home and /old_home
I went into fstab and made both drives mount; Drive A mounted into /home and Drive B into /new_home
I rebooted; Logged in as normal and Drive B successfully mounted
From here I reversed it, Drive A into /old_home and Drive B into /home
I rebooted; I entered into the KDE Login screen as usual. I typed my password correctly but after a short animation I was placed back into the login screen.
I logged in as root and checked if everything mounted correctly. It did. From / my /home would place me into Drive B the one with confirm.txt. And Drive A was in /old_home
So now I’m confused. Everything mounted properly but I still can’t login with my account. I’m assuming this might be a KDE problem but I’d like your opinion.
I’m not sure what’s going on, I can think of a couple things worth checking.
First I would make sure that all the files are being copied over properly. In a terminal window, run ‘ls -la /home’ and ‘ls -la /new_home’ or ‘ls -la /old_home’ and compare the outputs. Both should be the same and have a folder with your username. Check inside the user folder as well by appending ‘/username’ to the command (ex: ‘ls -la /home/Doctor_Rex’ but use your linux username).
The letters on the left (rwxr-xr-x or something similar) are permissions and should be the same. Continuing across the line there’s another number that isn’t important and then it should say your username twice. If it says “root” you need to update the owner of the files. this can be done by running ‘sudo chown -r username:username /home/username’ where “username” is your linux username.
Lots of configuration settings are stored in files or directories that start with a ‘.’ and are hidden by most file managers and ‘ls’ by default. If these are missing it’d cause problems.
If everything looks the same, you could try logging in from a TTY. This won’t start a GUI, but it will allow us to see if you can log in at all. You can switch to another TTY by pressing ctrl+alt+any function key (f1/f2/f3/etc). Most distros use TTY1 or TTY7 for their GUI, so try ctrl+alt+f2. If it doesn’t change to a terminal screen, try another function key. From there it should prompt you to enter a username and password. Try and log in to your account. If you can, it’s probably an issue with KDE, if you can’t there’s still something wrong with how you have the drives mounted, missing files, or incorrect file permissions.
Sorry if the formatting is a little chaotic, I added the part about checking ownership in after writing the rest
Are you completly sure you copied all the files correctly, not missing any hidden files and such?
This is a great explanation! I have struggled so much (and feared messing the fstab up) now I will be able to change my clunky HD where my home lives 😊 thanks!
-
Your home partition can be anywhere, I would recommend copying the files to your new drive and adding a /home mountpoint flag in the kde partition manager.
-
See above
-
The newest hotness is something like btrfs and pooling drives together under the same mountpoint. Otherwise just do what you were planning, a big root partition and a 1TiB home partition.
-
Probably related to nouveau drivers
I wouldn’t recommend pooling drives to a newbie. It’s more than just how to do it, it’s how to maintain it and troubleshoot it. They’ll get there on their own time. Besides their drive distribution is pretty sensible.
-
You can have /home on a separate drive without any problem, it can even be a network drive versus physically attached.
Format the drive, copy the contents of the current /home, mount the new drive as /home.
/boot and /var are usually separate for good reason. The short version is: you don’t want to mess up /boot and you don’t want /var to fill up and use up all the space in / if it isn’t separate. Most of the everyday growing/changing data on your machine lives in /var.
When you copy /home make sure you get the “hidden” files. They start with a “.” and some programs ignore them by default. That’s also where most configuration files are.
Check out
rsync -avz
The
-z
option enables compression. Don’t use that for local transfers, it will just slow things down. It’s intended for use over a slow internet connection.For the OP : By careful with rsync. A trailing slash in a path name of a rsync command can make a huge difference with rsync. rsync is a fantastic tool for local and remote copying but mind your steps :)
Here, as root, I would prefer option 2 to be sure to not mess up permissions :
1 rsync -av /home/user/ /home2
2 rsync -av /home/user/ /home2/
To answer your disk question, you first must understand how Fedora sets up the disk.
Fedora uses the btrfs filesystem with 2 subvolumes (virtual volumes) called root and home. As you can imagine, root is your os and home is your home directory.
To move those volumes you can use btrfs send and btrfs received. You need to do more research into how those commands work but long story short they are just fancy file copies. You also will want the new disk formated as btrfs
Once you have moved your data you will need to update the boot so that it can mount your disks. If you don’t you will end up in either a grub recovery shell or initramfs.
Another option is to use dd to copy your data to another drive. dd is a simple program that reads raw data and then writes it. It doesn’t have any safe guards so it will happily wipe out important data if you mess up the syntax. Use at your own risk.
Or the destination can be any format and you can the files (with permissions) and update the fstab. Best from a live environment or root user account so nothing is open.
Your filesystem mountpoints are in /etc/fstab. Moving your home is a matter of adding a line there, with your other disk, and /home as mountpoint and rebooting or running “mount -a”. (You will probably want to ask around about the details when you decide to do it.)
Also, as soon as you mount it, whatever is on /home will be masked. Don’t despair, it’s still there, but it’s better to rename it beforehand (“mv /home /home-old”) and create a new directory for it (“mkdir /home”).
Running your system with a / and /home partitions only is perfectly fine. Don’t fall for the people that claim there’s a single right way to partition your disks.
NVidia GPUs are notorious troublemakers. Expect to always have something about it in need of fixing.
Can I partition /home directory in a different drive and still fuction?
Yes, that is the recommended thing to do.
Transferring /home directory without reinstalling Linux?
Not a problem, just format your other partition and add/change an entry on /etc/fstab, next time you reboot the home will be in the new partition. For how to write this line check out how the other lines are written, it’s essentially the UUID of the partition (or sometimes it’s name, but that’s discouraged since the name depends on the order the drives are plugged), some options and the location to mount the partition. Should be straightforward to copy the one for / to write a /home one.
Best way to partition my / and /home directories?
Just format your partition and add it to fstab. The other things are for doing the same with other folders.
Fedora KDE refresh rate seems broken?
Nouveau is not great, NVIDIA is a shitshow and hamper open source development actively, but their proprietary drivers mostly “work”, so I would just install those.
Downloading NVIDIA drivers on Fedora KDE?
No idea, they should be in the package manager though.
I’m not going to address the Fedora/KDE specific questions because I’m more of a generalist.
Can I partition /home directory in a different drive and still fuction?
Transferring /home directory without reinstalling Linux?
Best way to partition my / and /home directories?
Take the time to learn how Symbolic Links or Symlinks work. Once you have that down, you can pretty much put whatever you want, wherever you want.
https://www.futurelearn.com/info/courses/linux-for-bioinformatics/0/steps/201767
https://www.liquidweb.com/kb/creating-and-removing-symbolic-links-symlinks/
This is cool, thank you
Linux is usually very flexible. /home is just the standard, but you could configure for example your user A to use /home/a/ as home and configure your user B to use /home2/b/ which you have saved on a USB drive that you normally will not connect. You can check this for yourself by looking at the /etc/passwd file with a text editor. Your user C can e.g. have its home in /var/lib/my-fancy-home/c/
Years ago some Linux howtos or Linux distributions during their installation recommended to have several different partitions (I believe some of the BDSs like OpenBSD still offer such an option during installation). One advantage of that for /home is that you can have different mount options like noexec for preventing the execution of files inside your home directory which can be a good security measure. But I am not sure what the impact is for KDE and GNOME desktop files as launchers. These need to be executable files.
Years ago some Linux howtos or Linux distributions during their installation recommended to have several different partitions (I believe some of the BDSs like OpenBSD still offer such an option during installation)
There are advantages of having multiple partitions for multiple mount points.
OpenBSD can do partitioning for you, and it is not recommended to use a huge single root partition. If you can’t do partitioning, use the default layout.
One advantage of that for /home is that you can have different mount options like noexec for preventing the execution of files inside your home directory which can be a good security measure.
If you never do development.
Anyone just having / and /home in separate partition are actually windows users, or not sysadmin.
Having / and /home on separate partitons is something you can do, and something some people recommend (it allows you to reinstall your OS or try a new one without moving your personal files around).
It’s not that hard to set up, but it’s easier with the terminal. Are you comfortable with using the terminal and command line?
With the card thing, just as a shot in the dark, are you using HDMI or Displayport? I know that older versions of the HDMI spec had trouble with high resolution and refresh rate monitors. But I think the propriety driver is just recommended nowadays for Nvidia in general.
KDE and Gnome both use the same drivers, so if it’s the same underlying distro (I’m not that sure about the Fedora side), the same instructions should just hopefully work.
With the black box, you should do a report, the advantage of this is if you do it, and a developer actually addresses it, it’ll be solved for everyone, meaning your only troubleshooting step will be waiting for an update:
https://nouveau.freedesktop.org/Bugs.html
It’d help them out too, and that’s also a very likely spot to get troubleshot, as the devs are very knowledgeable.
Unfortunately the situation with nvidia is just horrible ATM because nvidia won’t stop being horrible.
You can definitely move your home wherever you want. Mount your new home wherver you want and copy files using
rsync -a /home/$USER /mnt/newhome/
orcp -ar …
. Thea
param (in both) is for also copying permission modes/owners. Do it as root. After having that done, setup mountpoint in your fstab.Does rsync do the selinux labels too? (it’s been a while since I last used Fedora/Centos) It may be a good idea to check here as well: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/sect-security-enhanced_linux-working_with_selinux-maintaining_selinux_labels_
deleted by creator
Great answer, I recommend OP tries this. I was actually going to link to the same exact article about the drivers, and that should work for installing them.
For the home directory question, you actually don’t have to reboot at all. You’ll do most of this as the root user. Just create a new user and put its home directory somewhere like /tmp. Logout, log back in as your temp user, format the new drive, move your home directory (rsync is your friend), edit the fstab (I personally prefer labeling all my partitions and using the labels in fstab). After that, to test your settings, create a new, empty, /home matching the permissions of the old directory. Then type “mount -a”. This goes back through fstab and mounts everything listed if it’s not already mounted. Look for your home directory in /home. If it’s there, you should be able to “su - yourusername” and if you are in your home directory with all your files, you’re all good. No need to reboot. Log out of the temp user account, log back in as you and delete the temp user.
That’s way harder than it needs to be. They can just format the new disk and then use btrfs send/receive to move the home partition
Thank you @[email protected] for asking these questions, and for everyone giving answers. I was trying to plan out my proxmox installation, and you’ve all pointed me in the right direction.
Oh, also, I have my /home on a separate partition. I rsync-ed the old /home folder onto the new partition, then modified the fstab to mount the new /home on the new drive. I found it easier to do it in a live Linux environment. It’s honestly all I ever use my Ubuntu install USB for anymore. Having basic functionality on a thumb drive is a neat party trick, and gets me mucho brownie points rescuing docs off of unbootable windows systems too.