Para_lyzed

@Para_lyzed@lemmy.world

This profile is from a federated server and may be incomplete. Browse more on the original instance.

(Newbie question) Did i handle my system crashing correctly?

Ive just installed Linux (Fedora 40 KDE) on my main PC over the weekend, so im a complete newbie and i apologize if some of my questions are nonsensical 😅. Yesterday evening the system seemed to completely lock up at a certain point while playing Red Dead Redemption 2 for the first time (installed & run via steam using proton...

Para_lyzed, (edited )

This is not very common knowledge, but it is no longer recommended to press S or U before B for SysRq. The official documentation of sysrq has stopped recommending this practice, as it may be harmful to modern filesystems. Writing to a storage device while the kernel is in a bad state has the potential to cause corruption, and modern journaling filesystems like EXT4 and BTRFS are designed to survive crashes like this with minimal (or no) corruption. Instead, you’ll likely want to use Alt+SysRq+REIB (and make sure you are waiting multiple seconds between each keypress, as they do not complete instantly!).

You may instead try to kill the most memory intensive non-vital process with Alt+SysRq+RF, which may stop you from crashing to begin with (this works especially well for memory leaks). SysRq+F will invoke the oom (out of memory) killer, which will kill the most memory intensive non-vital process without causing a kernel panic.

If you need to restart, the most ideal situation is to enter a TTY and cleanly reboot, in which case you can do Alt+SysRq+R to grab control from the display manager, then Ctl+Alt+F3 or Ctl+Alt+F4 (I believe most distros have the first login session run on the TTY accessible from Ctl+Alt+F2) to switch to another TTY. You can then log in and do sudo systemctl reboot if your computer is still responsive. You may need to kill some processes before your system becomes responsive enough to log in on a TTY, which is where Alt+SysRq+F is useful, but in extreme situations it may require Alt+SysRq+EIB.

So a basic order of steps to try may look like:

  1. Try Alt+SysRq+RF and wait a few seconds to see if your system starts responding. If not, you can either try it another time or two, or move on to 2.
  2. See if you can switch to a TTY with Ctl+Alt+F3. If so, try to log in and sudo systemctl reboot. Else move onto 3.
  3. If you are in a TTY, switch back to the main login with Ctl+Alt+F2. Then do Alt+SysRq+REIB.

In the spirit of other users giving mnemonic devices, you could remember REIB with Reboot Even If Broken, or the oom killer RF with Resolve Freeze (someone else can probably think of something better for RF; I’m not great at making mnemonic devices).

TL;DR: There are SysRq combinations that are less prone to damage/corruption than Alt+SysRq+REISUB, so use the above flowchart, or just remove the S and U for Alt+SysRq+REIB (if you don’t want to troubleshoot first) for less chance of filesystem corruption from a bad kernel. You can often recover the system without having to hard reset (Alt+SysRq+B). And ALWAYS wait between SysRq keys, as they do not finish instantly.

Para_lyzed, (edited )

Yes, this is patched in 6.9. Since it’s a new major release, it’ll take a few weeks before we see it in Fedora while they check for major regressions and stability. Stable updates (like 6.8.8 to 6.8.9) are much quicker, usually taking only a few days, but major releases add much more to the kernel and need to be properly tested for regression. If you wanted to use Bazzite, you’d have to compile the 6.9 kernel yourself and overlay it, though I’m not sure the steps you’d need to take exactly given that I’ve never tried compiling the kernel for an atomic distro before. Perhaps you can find something online about it, but I didn’t find an easy guide when I searched it (just non-atomic kernel compilation). I did find documentation on how to change the kernel in an rpm-ostree based system, but you’ll still have to compile it yourself and then override the rpm you compile with that method. Instructions on compiling a kernel for Fedora can be taken from here for reference.

I’m going to hack together some stuff from both sources with what I think will work in Bazzite using rpm-ostree (and a toolbox so you don’t have to overlay a bunch of packages as build dependencies). This is untested, as I really don’t want to have to compile a kernel myself; my computer isn’t nearly fast enough for that to be reasonable right now. Luckily, based on the custom kernel documentation, it seems this process is quite easy with Fedora’s kernel dist-git. No manual configuration should be required, just a few commands (Secure Boot complicates things dramatically, but the Fedora documentation already has the instructions for getting this to work with Secure Boot, so that should hopefully just work).

None of the commands I provide are irreversible, and can be reverted easily. Since we are working with an atomic distro, you can always rollback to a previous version if you encounter issues. Reverting to the default kernel is as simple as removing the override we create for the compiled one.

WARNING: This will use Fedora 41’s kernel configuration. It may differ from both Fedora 40 and Bazzite’s kernel configuration. Understand that there is a small chance this will cause problems, in which case you can rollback to the previous version or remove the override at any time to uninstall and revert back to the base kernel.

Open up a terminal, and enter the default toolbox (if you do not have a default toolbox yet, you can create one with toolbox create)


<span style="color:#323232;">toolbox enter
</span>

From the Fedora custom kernel documentation

Install dependencies inside toolbox


<span style="color:#323232;">sudo dnf install fedpkg
</span><span style="color:#323232;">fedpkg clone -a kernel
</span><span style="color:#323232;">cd kernel
</span><span style="color:#323232;">sudo dnf builddep kernel.spec
</span>

Checkout from the Fedora kernel dist-git


<span style="color:#323232;">git clone https://src.fedoraproject.org/rpms/kernel.git
</span>

Switch to Fedora 41 branch (since it has 6.9 already)


<span style="color:#323232;">git switch f41
</span>

Do you use Secure Boot? Because if you do, then it gets WAY more complicated and I don’t know for a fact that this will work properly. Only do the stuff in the Secure Boot section if you use Secure Boot!

---------------SECURE BOOT CONFIG---------------

NOTE: Update values enclosed in <> to appropriate values (for example, changing <your name> to mranachi or <MOK certificate nickname> to MOK-temp-6-9-kernel)

Add your user to /etc/pesign/users if it does not already exist.


<span style="color:#323232;">nano /etc/pesign/users
</span>

Run authorize user script


<span style="color:#323232;">sudo /usr/libexec/pesign/pesign-authorize
</span>

Create a new Machine Owner Key


<span style="color:#323232;">openssl req -new -x509 -newkey rsa:2048 -keyout "key.pem" 
</span><span style="color:#323232;">        -outform DER -out "cert.der" -nodes -days 36500 
</span><span style="color:#323232;">        -subj "/CN=<your name>/"
</span>

Import MOK into your UEFI key database


<span style="color:#323232;">mokutil --import "cert.der"
</span>

Create a PKCS key file


<span style="color:#323232;">openssl pkcs12 -export -out key.p12 -inkey key.pem -in cert.der
</span>

Import the certificate and key into the nss database


<span style="color:#323232;">certutil -A -i cert.der -n "<MOK certificate nickname>" -d /etc/pki/pesign/ -t "Pu,Pu,Pu"
</span><span style="color:#323232;">pk12util -i key.p12 -d /etc/pki/pesign
</span>

Add line %define pe_signing_cert <MOK certificate nickname> to the kernel.spec file (I am assuming it is in the current directory based on the wording of the Fedora documentation, though I have not seen any of these files. It may be located elsewhere, but I have no idea where if that is the case)


<span style="color:#323232;">nano kernel.spec
</span>

---------------SECURE BOOT CONFIG---------------

Build RPMs using the default Fedora 41 configs (this could take a very long time on slow hardware, but assuming you have a good CPU, it could actually take as little as 4 minutes)


<span style="color:#323232;">fedpkg local
</span>

Exit the toolbox so we can install the RPM


<span style="color:#323232;">exit
</span>

From the rpm-ostree kernel change documentation

Install the new kernel. I don’t know what the name of the RPM will actually be, so you may want to ls x86_64 and modify this command to match the appropriate RPM(s). Also, I can’t remember if exiting the toolbox keeps you in the same folder, so you may need to navigate back to the correct folder with cd kernel after exiting.


<span style="color:#323232;">rpm-ostree override replace ./x86_64/kernel-*6.9*.rpm
</span>

Clean up


<span style="color:#323232;">cd ../
</span><span style="color:#323232;">rm -r kernel/
</span>

You may also optionally want to remove the build dependencies inside the toolbox if you want to save space.

Reboot, and in theory, you should be done (if you did the Secure Boot steps, you’ll have to accept the key when you reboot). I’d like to remind you that you can rollback any changes if you encounter any issues, as that is one of the many benefits of atomic distros.

Uninstalling compiled kernel

To revert the override (once 6.9 releases to Fedora 40 repos), simply do the following (this effectively uninstalls the compiled kernel and reverts back to whatever is in the base image):


<span style="color:#323232;">rpm-ostree override remove kernel-*6.9*.rpm
</span>
Para_lyzed, (edited )

I replied about getting the updated kernel on Bazzite on another one of your comments, but I want to clarify that this is not only a bug for those that have resizable bar and 4g decoding as BIOS options, and it does not always happen on game start. I just want to reinforce that this is very likely the exact issue you are experiencing, and it is patched in kernel version 6.9. The only reason you don’t see the popup from the linked issue is because that is a check that was added in 6.9rc-5 to validate hardware capabilities; the root issue underneath has been present since 6.6.30, but only results in a crash with no error dialog. This particular kernel bug happens when the CPU runs out of VRAM space that is accessible to it, and tries to move data to other parts of VRAM (with the help of the GPU) to make space in the section visible to the CPU. Since resizable bar makes all VRAM visible to the CPU, that’s why it fixes the issue for some, but that is not the root cause of the problem. There is an off by one error discussed in the kernel bug thread that was linked that incorrectly handles the VRAM swapping and only became an issue after a check was written to validate the hardware capabilities (which fails due to the off by one error). This can happen after some time playing the game, after the CPU-accessible part of VRAM is filled up, however long that takes.

This will be fixed in a few weeks when the 6.9 kernel is pushed to the Fedora repos, or you could compile and install the 6.9 kernel using my instructions on your other comment. Or you could continue to use Mint until the kernel is updated, whatever works for you. Other than this one obscure kernel bug, Bazzite will generally be the much better option for gaming as far as performance and user experience goes. Mint follows the Debian/Ubuntu update cycle, so its kernels are old and without many enhancements to gaming that exist in the newer versions of the kernel present in Bazzite and Fedora. Of course, you can choose whatever distro you’d like, I just wanted to provide a method for you to switch back to Bazzite if you prefer it (and explain what the issue is and how to fix it).

Para_lyzed, (edited )

Actually, this particular issue is a bug in the Linux kernel that has been patched in version 6.9. The display manager isn’t going to change anything other than (maybe) the issues their wife had on Bazzite. In fact, OP stated in their post that they are running an AMD GPU (5700XT). You can always install the X11 package as an overlay and switch to it if you want with Fedora Atomic or Bazzite. It’s still in the repos, it just isn’t the default anymore. There’s no need for an image with X11 in it by default, especially with explicit sync support coming soon that will fix many of the remaining issues with Nvidia on Wayland.

Para_lyzed,

Fedora does test everything before they ship it. Each major kernel release can go through as much as a month of testing for stability and regression. SteamOS is based on Arch, where they don’t test the kernel for regression. Despite testing though, this is an incredibly obscure issue, and obviously the Fedora team can’t catch every kernel bug. It only happens on some hardware, and only in the event that the VRAM visible to the CPU is filled, and less used portions of the CPU-visible VRAM are moved to other parts of VRAM that only the GPU can see. This is why resizable bar fixes the issue for many, as it makes all VRAM visible to the CPU, so there is no move that happens (moving the VRAM data has an off by one error). This issue goes all the way back to 6.6.30, and was only discovered 3 weeks ago, and took 2 weeks to find the root cause of and patch in the stable version of kernel 6.9. It was only found because the 6.9 release candidates added checks for hardware capabilities, and the off by one error that is the root cause of this issue threw an error with the hardware capability checks. I’m not a kernel developer, so I don’t know all the details, but it is discussed in the issue I linked if you want more explanation.

Para_lyzed, (edited )

Yes, that may be the case, but that comes with its own downsides as well. The most recent version of SteamOS runs the 6.1.52 kernel from September (thus it should be unaffected by this bug, since it was introduced in 6.6.30). I don’t follow kernel changelogs very closely (so I don’t know all the new features and improvements that are being missed from new versions), but there are lots of optimizations and new features constantly being added to the kernel. Of course, the tradeoff is that you don’t get new bugs, but you also have to backport bug fixes or else you’ll have the bugs present in your current version for a very long time (often the kernel devs do this, but depending on what version a given distro uses, the distro maintainers may have to do it themselves). It’s not as big of a freeze as Debian based systems (EDIT: Some of the time; right now they are technically behind Debian on the kernel minor release, but in SteamOS 3.6 (which is in beta), they will be updating to 6.5), of course, but it’s a choice that has tradeoffs. Different people will subscribe to different opinions on kernel updates, given that no one way is clearly superior for user experience and features alike.

As for proprietary packages that are held from Fedora for copyright issues (media codecs and Nvidia drivers, for instance), there are always uBlue images like Bazzite, Bluefin, and Aurora that fix that. One of the very few stipulations to the Red Hat sponsorship for Fedora is that they do everything possible to avoid legal trouble, hence why those packages aren’t included in the base repos or installed by default. It’s a small caveat that disappears once you install the correct packages.

I think SteamOS is by far the most optimized OS for the Steam Deck, but I don’t think it’s very useful to use it on any other hardware (there are better options). Kernel updates will always be a point of conflict for at least some people regardless of what model you use, but I personally appreciate the quick turnaround for major kernel versions in Fedora. It’s actually improved my experience on my laptop significantly, as there have been recent changes that apply to my specific hardware (in some of the 6.6 releases, for instance). Of course, anyone can be free to prefer a slower rollout, and that is equally valid. The bug fixes for the issue OP is having should be backported to 6.8 anyway, so it shouldn’t necessitate waiting for 6.9 to hit Fedora in a few weeks.

Para_lyzed,

SteamOS currently runs 6.1, which is an LTS kernel, it just isn’t the latest LTS kernel (that’s 6.6 released at the end of 2023). Steam also makes modifications to the kernel they use in SteamOS, so they have their own versions custom built for Steam Decks. I should revise my previous statement slightly. Debian Bookworm is on 6.1 as well, but SteamOS 3.6 (in beta) uses 6.5 (which is non-LTS). Debian skips every other LTS kernel because they release every 2 years, but SteamOS (eventually) upgrades each LTS kernel or some non-LTS between? They did the same thing with 5.13 a couple years ago (5.10 and 5.15 are LTS). I don’t really follow their releases since I don’t own a Steam Deck, so I don’t really know the rationale there. Funnily enough, looking through posts about it online, it seems that SteamOS is sometimes ahead of Debian on the minor kernel version and sometimes behind (when they’re on an LTS kernel). Currently, they are behind Debian on minor release (6.1.52 vs 6.1.76). Very strange, no idea what’s going on there.

But I specifically mean the packaging delays. There are sometimes sync issues with drivers, like this recent one with no free stuff that is used alongside the normal stuff.

Hm, interesting. I don’t recall experiencing anything like that personally since I hardly use anything from RPMFusion, but that does seem frustrating. Looks like it was fixed very quickly, at least.

And with Cisco-openh264 they cant to anything, Cisco ships the packages which is legally binding, and there are issues sometimes.

Ah yeah, I’ve heard about that. I can’t remember the last time I installed Cisco’s openh264 though since I started using VLC, which can handle video and audio formats without installing extra codecs. I think MPV can do the same? I’m not sure what comes with my browser, but it is packaged as a flatpak and seems to run media just fine. Maybe there is some other use for openh264 that I’m not aware of that just doesn’t come up in my normal use, but I don’t think I’ve installed any media codecs in Fedora for a couple years now. Granted, I don’t play videos often (but I do play MP4s when I do), and all my music is in FLAC format, so I’m probably an edge case. I also don’t game, but I remember seeing something recently in this sub where someone may have had codec issues while playing a game.

But Fedora is doing a great job, and the fact that rpmfusion exists alone is pretty hillarious. These are obviously Fedora people maintaining the stuff in secret, in a country where patent laws are not enforced (but are also in place afaik).

Well, Fedora is a community project, so it’s very difficult for anything individual maintainers do to come back to Fedora so long as the name isn’t put on it directly. If I were to speculate, most of the RPMFusion maintainers are Fedora community contributors (and I imagine they likely wouldn’t work at Red Hat, given Red Hat’s apprehension towards copyrighted material). I don’t think it’s really any different legally speaking from a Fedora contributor working on a personal project on the side. The fact that you can manually add the repo to Fedora doesn’t connect the two in a legally binding sense. So as long as it isn’t being funded by Fedora, and their branding is absent, then it shouldn’t really matter. I don’t know about the actual legal aspects of the packages they are distributing, or what country/countries RPMFusion repos are hosted in, but so long as nobody is profiting/losing substantial profit, it likely isn’t even worth pursuing any legal recourse to begin with.

You are at the bleeding edge, but I often find bugs that are simply there and need to be fixed. Once KDE Plasma 6 is on some LTS release like CentOS Stream, I may think about switching.

Yeah, that’s fair. There are definitely bugs that pop up every once and awhile, but for the most part they’re minor (at least the ones I notice). This kernel bug is among the more major bugs I’ve seen with Fedora in the past few years, but I only know about it from this post; I haven’t experienced it myself. I imagine there have been similar things (or worse) like this that have gone over my head as I didn’t experience them myself. Perhaps my experience has also been more stable because I’ve been using GNOME up until Fedora 40. I do find my experience with Fedora to be much more stable than Arch, but that is to be expected given their release models. I can only recall having experienced 1 or 2 bugs in the past year on Fedora, which is less than I experienced when I used Ubuntu many, many years ago, and the bugs were fixed much faster than they were on Ubuntu, where it would often take months for a patched version of the package to enter the Ubuntu repos. That’s all anecdotal, however.

The reason I usually recommend Fedora to people (and uBlue images by extension) is that it sits on some middle ground between the rolling release bleeding edge distros like Arch, and the stable, LTS, frozen for 2 years distros like Debian. I have grievances with both of those models that are addressed with Fedora, and that’s what makes it a good distro for me. My experience with bugs hasn’t really been any more common than when I was using LTS distros, but that may be a fluke. I will likely be moving one of my servers to Debian in the future though, because it makes sense for its purpose. Different release models benefit different uses (and people), of course.

Para_lyzed,

But browsers should be installed as an RPM, because Flatpak uses the same seccomp filter for all apps. That isnt even really secure, but prevents browsers from spawning user namespace sandboxes. Which means they have very little process isolation.

User namespaces are not the only method of sandboxing in Linux. I use Mullvad browser, which is a fork of Firefox maintained in tandem with the Tor browser (without Tor integration), so I’ll mainly discuss Firefox. Here are some relevant comments on Firefox’s internal sandbox in flatpaks:

Firefox’s internal sandbox is designed to function properly without user namespaces or chroot

Firefox uses nested seccomp filters to achieve process isolation

The TL;DR is that Firefox uses seccomp-bpf on each process (with per-process nested seccomp filters) to intercept all syscalls for sandboxing, which does not require the use of user namespaces. User namespaces are used where possible, simply to add an additional layer of padding as a method of defense in depth. Since the syscalls are already intercepted and handled with seccomp-bpf, it could easily be argued that this is redundant and unnecessary given the way the Firefox sandbox works, based on the comments of the Firefox developer I linked to.

Chromium browsers had very bad issues with sandboxing, as they assumed that user namespaces would always be available (which breaks on any distro with them disabled in the kernel, as was the case with Debian and Arch just a few years ago, or any install that uses the linux-hardened kernel), and Chromium does not use seccomp-bpf for their process isolation like Firefox (or at least it didn’t when the bugzilla I linked to was made). I believe those issues have been fixed however, and Chromium-based browsers (at least the ones that implement the patch or something similar) should also have proper process isolation in flatpaks now. I don’t follow that very closely since I don’t use Chromium-based browsers, though. Here’s the flatpak Chromium patch that uses flatpak-spawn to fix process isolation in Chromium-based browsers for reference. It was mentioned in one of the Firefox bugzilla pages I linked to earlier. Since it isn’t an upstream fix, I wouldn’t trust that all Chromium-based browsers use it, but that’s an issue to bring up with Google (assuming it hasn’t been fixed upstream in the past couple years). Firefox specifically designed their sandbox to work in these situations where Chromium may fail.

Mullvad Browser isn’t available as an RPM (or even DEB), and while they have a tar.xz download that I imagine just installs the browser in the folder it’s extracted to (not source tarball; it’s all pre-compiled), I have no idea if that receives automatic updates, and I’ve never used a Linux app packaged like that, so I choose to use the flatpak instead.

Para_lyzed, (edited )

The name “atomic” in the context of operating systems refers to an operation in which all steps are applied without interruption (for instance, atomic operations like locking a file cannot be stopped by system interrupts, and once started are ran to completion regardless of the scheduler). Atomic operating systems take that concept, and apply it to base operating system updates. All changes to the operating system are applied simultaneously without interruption. The methods that different operating systems use for this vary, but since we’re talking about Fedora, I’ll explain Fedora’s image based atomic model using rpm-ostree.

Fedora Atomic is based on an image of the root filesystem that is perfectly consistent across all installs. When you update your system (with rpm-ostree), you fetch the entire root image from the repo instead of fetching individual packages. Updating works similarly to version control software like Git, where each version has a list of changes from the previous one, branches, and a variety of other similar features like rebasing. The operating system essentially runs similarly to a Git repository. rpm-ostree pulls the latest image from the image repository, and creates a new local branch on your system with all the changes in it. The root filesystem covered by the image is immutable (which means it is read-only and cannot be changed), to ensure that the root image is always perfectly consistent with the image from the repo (everything is perfectly reproducible). In order to switch to the new branch, you must reboot into it. This ensures that nothing changes while updating, and since the whole root filesystem is immutable, it’s best for stability to load into the new branch through a reboot (to ensure all behavior is consistent). Technically, you can apply changes live, but it is not recommended to do that and requires you to use an additional flag with the rpm-ostree command. This ensures that, in practice, your system is never in a state “between” updates. Once an update starts, it will finish to completion (or it will fail and the update won’t be applied), making updating an atomic operation (an update runs to completion, or it essentially doesn’t run at all; nothing in between). This is a great safeguard against crashes or power losses during updates.

The benefit of atomic distros is that all installations have a perfectly consistent root filesystem, so the system can be tested by the developers in the exact configuration in which it will be deployed to the end user. Any packages you want to install on top of the root filesystem can be installed in a few ways. Most GUI apps should be installed as Flatpaks where possible (installed to the home folder, which is read-write, so you can do it without rebooting), terminal apps can be installed in a toolbox (a default containerization system installed in Fedora that allows you to emulate a read-write root filesystem by mounting extra folders inside the container), or you can overlay the packages on top of the root filesystem through rpm-ostree. Toolbox has dnf installed in it, so you can install packages inside a container as you would install them in non-atomic Fedora. Package overlays download the packages from the Fedora repos, and mount them read only on top of the root filesystem (hence the “overlay”, as the packages are independently mounted over top the root filesystem). Overlays have the highest chance to change the behavior of your system, so they are generally recommended as the last option, since they decrease the benefit of consistent install behaviors, meaning that your extra packages aren’t tested as thoroughly as the root filesystem. In practice, overlays don’t generally cause any more “instability” than installing a package on a non-atomic distro, but again, it slightly diminishes one of the main benefits of atomic distros.

Essentially, all updates are applied at reboot, which means that you can just have updates running in the background and keep doing whatever you want, and as soon as you reboot, changes are instantly applied (no “installing” to wait for). Your operating system will keep some amount of previous branches (usually the current branch and 2 or 3 most recent branches) so you can boot into a previous branch from GRUB if an update breaks anything without having to restore from a backup. You can then rebase rollback to the previous branch (make the image of the branch you selected your current root image) once you can be sure that everything works properly. You can also rebase into another image entirely at any time (from Fedora Atomic GNOME to Fedora Atomic KDE, or into Bazzite or Aurora for example). The root image will change, but all of your overlays and persistent data will stay. EDIT: Note that rebasing into an image with a different DE might cause config issues, as /etc is mutable, and would be essentially the same as installing a new DE on a non-atomic distro. Some recommend against doing it, whereas some have success at it. YMMV. Here is a blog post detailing some issues a user had when rebasing from Silverblue to Kinoite as an example.

Atomic operating systems are emerging as a great option for desktops, as they increase stability, reliability, and recoverability greatly over the traditional model.

Para_lyzed,

Bazzite also has a lot of extra gaming-oriented changes to Fedora, such as including the System76 scheduler, which can increase performance in games. Since Bazzite has versions with Nvidia drivers in the root image, it makes it easier to use Nvidia cards.

By the way, if you hadn’t figured out the install for Nvidia drivers in Kinoite, here is a simple guide for how to do it. Also, there is documentation from the RPM fusion repo on how to install the drivers, which you can find here (that’s where the commands from the article came from). There are more details elsewhere in the documentation if you need them, such as how to get the Nvidia drivers to work with Secure Boot on atomic distros (though I’d recommend just using Bazzite for that because it can be a pain to get working manually).

Para_lyzed, (edited )

Bazzite is definitely a great option if you have an Nvidia card or you are looking for gaming performance. It includes some gaming oriented features and optimizations like the System76 scheduler that aren’t in the regular Fedora Atomic builds that have the potential to increase performance, and make things easier (such as having a build with Nvidia drivers in the root image). I don’t really game at the moment, so I don’t have personal experience with Bazzite, but I’ve been on Fedora Atomic KDE for a while now and it has been a great experience. I’ve heard lots of great things about Bazzite, so I would expect it to be a similar experience (maybe a bit easier). I feel comfortable recommending both, but the more appropriate choice will depend on what you use your computer for and your own preferences, of course.

While I haven’t personally rebased to a different image before, it should be pretty seamless, except for some potential config issues if you are switching to an image with a different DE (i.e. switching from GNOME to KDE). I’ve seen people in this community mention successfully rebasing to another DE, but Bazzite’s documentation recommends against it. I imagine that there may be config issues in /etc or in your home folder from switching DEs, just as may be expected when switching to a different DE on a non-atomic system. Your milage may vary there, essentially; Fedora and uBlue just don’t officially test rebasing between different DEs. I usually tend to be cautious in my recommendations, so I generally recommend users to try out different DEs on a VM before deciding on one, and to do a full reinstall when switching DEs. There’s a chance that is overkill, but it is certainly safe. Here is a blog post detailing some issues a user had when rebasing from Silverblue to Kinoite as an example. It seems that the issues can be fixed, but since the rebase between DEs is not officially tested, it is prone to small issues like these (though it appears at least some of the ones in that post have been fixed upstream now). The issues in that post were all incredibly minor, so you could likely fix your system in place if you were to try this (maybe you won’t even have any issues; half of the post was about an issue caused by the fish shell, which is not the default), though you’d have to know where to look to find any issues (I’d start by checking overlaid packages and seeing if there are any from the old DE). You can always rollback safely, as each previous version the OS saves has it’s own unique /etc folder (even though it isn’t part of the root image).

Switching between Fedora Atomic and Bazzite is more supported (when you keep the same DE), but different images can add and remove packages from the root image, so you may find that you’ll need to overlay packages/remove overlays when switching between them (such as Nvidia drivers). I don’t imagine that posing an issue as an end user in most cases (outside of the Nvidia drivers), just thought it was worth mentioning, as it is an edge case that could pop up. That’s one of the reasons that adding overlays isn’t the first recommendation for installing packages, as they have the potential to make rebasing a bit more complicated for a handful of packages that may be different between different images. I would imagine that an update (or even the rebase itself) would fix any dependency issues (hence why I don’t see it being an issue for an end user in most cases), but I don’t know that for a fact. None of my information on rebasing is based on experience, except for rebasing to a new major version (i.e. Fedora 39 to Fedora 40), so you should look into that more yourself if you want more concrete details. Also, I mistakenly mentioned rebasing to a previous version of your image from before an update. That is actually called a rollback, and uses the rpm-ostree rollback command, more info here (I’ve edited my previous comment to reflect that). Bazzite has some good documentation on rebasing here, and I don’t see any mention of package conflicts between Bazzite and Fedora Atomic, though you will likely want to remove an Nvidia driver overlay if switching from Fedora Atomic to Bazzite. You very likely won’t need to make any other changes. There are people in this community with far more rebasing knowledge than I can provide/find from searching, so you can always make a post asking about it if necessary, and someone should be able to help.

It’s also helpful to note that documentation for Fedora Atomic (sometimes you get better search results by using “Silverblue”, as that was the original project name), Bazzite, and Bluefin are often interchangeable, as they are all based on Fedora Atomic. You may find some things more easily documented in Bazzite/Bluefin than on Fedora Atomic or vice versa, but much of that documentation applies exactly the same to any version. For any additional information about rpm-ostree, I would unironically suggest reading the manual page through man rpm-ostree or online at a site like this if you aren’t comfortable with the terminal interface for man pages (quick tip: you can search for a term in man by typing / followed by the search term, and you can use n and N to go to the next/previous occurance).

I’m just here to help people out when I can, so if my comments are able to help anyone, I see it as time well spent. Sometimes it even helps me learn new things myself, and cements concepts I was already familiar with, so it’s mutually beneficial!

Para_lyzed,

Aliases are fine, just place them in your .bashrc and make sure they aren’t going to conflict with any packages you have installed/will install. The only potential downside is if you install a package that adds an executable to your path with the same name as an alias, but you can just change the alias if that’s the case. Since dnf/yum aren’t installed in the atomic versions, you could even make an alias with one of those (and if you’re in a toolbox, just use the one you don’t have an alias for when installing packages). That guarantees you won’t have a conflicting executable name from newly installed packages, and I’d say it makes a bit more sense than sys, but as long as you can remember it, it shouldn’t realistically matter; just a suggestion.

Para_lyzed, (edited )

The flowchart is as follows:

LibreOffice or OnlyOffice for desktop apps (no, they are not Microsoft apps, but yes they use Microsoft formats and can edit and save Microsoft documents/spreadsheets/etc). OnlyOffice is the closest of the two to the Windows experience.

If you really aren’t open to using alternative software (which is strange given that you’re using Linux), then the web apps exist. I’ve heard they’re really close to the actual desktop suite, though I don’t have any interest in ever using them as we have very good free and open source alternatives available (see above).

If the web apps don’t cut it for you, then you can run the official apps in a VM, or maybe through WINE. Here’s the WINE DB page for Microsoft Office, which lists various Office versions and their level of compatibility through WINE.

Copilot will likely not be possible to secure on Linux in a standalone desktop app (unless someone somewhere hacked something together through Electron to use a web version). Another user said that Copilot is available inside Microsoft Edge, so I suppose you could install that, though I’d highly discourage that. Reliance on LLMs is quite frankly a plague to society, and often feeds incorrect, biased, or purely fabricated responses, as LLMs merely attempt to predict what word is most likely to occur next based on a set of training data, none of which was vetted for accuracy, racism, zionism, sexism, etc. LLMs like copilot do not have any form of intelligence, and do not understand what they are saying. I highly recommend you just use a search engine in your browser, because it’ll feed you the same info all the LLMs were trained on anyway.

OneDrive recently received native support in GNOME, so I think you should be able to access it in your settings under accounts/connected services (whatever GNOME calls it nowadays)? I’ve never tried to use it, so other people will know better than I will there, but it should be possible to use.

Para_lyzed,

This is a very interesting concept, and I would also like it. Would this even be possible on Wayland though? I know it should be possible on X11, but I’m unsure if the Wayland isolation would entirely prevent a usage tracking program like this from seeing what the focused window is, or seeing the total time a process has spent in the background (depending on what type of usage is being tracked).

Para_lyzed,

I’ve seen a few people in this sub asking for a desktop client, so it seems like something (some) people would be interested in. Maybe reach out to the Thunder devs and see if you can become an official flatpak maintainer (assuming you have flatpak experience and know what you’re getting into) if they don’t have time to maintain it themselves. You could also maybe get the “desktop” flag added to Thunder in this list if you were to do that, which would help people find it.

Para_lyzed,

LocalSend looks great, but I don’t think it captures OP’s intention. It would require someone else to download the app if they wanted to receive a file, but OP is asking for something that uses the already existing Airdrop/Quick Share so that they could send a file to someone without them having to install anything. I’ve had similar wants, as when I’ve wanted to share something with someone in public that I don’t really know, I’ve just had to upload it to send.vis.ee, but that can be quite slow and inefficient. Something leveraging both Airdrop/Quick Share (that doesn’t require you to be connected to the same WiFi network like LocalSend) would be ideal, as those are features included by default on stock iOS and Android (no install required). For instance, there was something similar called WarpShare that allowed you to share something via Airdrop from an Android device to an Apple device (but only in that direction), but its development has stalled and it isn’t capable of using Quick Share for Android devices.

Para_lyzed,

Then it may be a Ventoy thing, or even just a bad flash drive

Para_lyzed,

Did you check the MD5sum? If you did (and it actually matches), try using a different media creator. You can use something like Rufus or Fedora Media Writer (yes, you can install non-Fedora ISOs with it, the only extra feature it has is that it will automatically download Fedora ISOs you want). If other media creation tools don’t work, try a different flash drive, as that’s the next most likely issue.

Para_lyzed,

Are you able to manually mount the EFI partition while chrooted? Running an update won’t fix the problem if you don’t have the EFI partition mounted properly. To that end, are you able to manually mount the EFI partition at all? That would be a very big problem if not.

While chrooted, try the following before updating:


<span style="color:#323232;">mount /dev/sda1 /efi
</span>

I’m a bit confused by the partitioning scheme, as I don’t see a /boot mount, are the files usually stored in /boot stored in /efi here? Usually the EFI partition only contains EFI binaries. Unless perhaps your /dev/sda3 is a LUKS encrypted boot partition? Sorry, I’m not very familiar with Arch, it’s strange to me to not see a /boot mountpoint in the /etc/fstab

It may be a good idea to just roll back the snapshot if none of this works, though that will only change the btrfs partition, so it won’t fix any issues inside the EFI partition if there are any issues there. Here’s an article about how to do that with btrfs.

Para_lyzed,

Great choice, I’m running Kinoite (Fedora Atomic KDE) myself! The atomic nature of the distros make them less prone to breakage, and much easier to recover from (since you can just roll back to the previous branch instead of restoring a BTRFS snapshot).

Para_lyzed, (edited )

Just to throw another option out there, partclone will only copy data that is being used in a partition, without all the empty space. I don’t believe it helps for encrypted partitions, but you could always just image the unencrypted filesystem with partclone to a drive with full disk encryption to work around that (and still prevent storing data unencrypted). Saves a lot of space.

Also, in the context of backups, I often prefer to use btrfs send to create and update backups through snapshots quickly and efficiently instead of imaging (though of course that requires you to use btrfs). Full imaging is pretty inefficient for my needs, and takes a lot of time.

Para_lyzed, (edited )

Since you’re using Fedora Atomic, I’ll give you instructions for rpm-ostree:

Run rpm-ostree status and find the deployment with the dot to the left of it. Example output:


<span style="color:#323232;">State: idle
</span><span style="color:#323232;">Deployments:
</span><span style="color:#323232;">● fedora:fedora/40/x86_64/kinoite
</span><span style="color:#323232;">                  Version: 40.20240509.0 (2024-05-09T00:47:51Z)
</span><span style="color:#323232;">               BaseCommit: 2f8263a33190c4e1320233aebbdc8f337b0a6abcba371d4870ae43fba33aea62
</span><span style="color:#323232;">             GPGSignature: Valid signature by 115DF9AEF857853EE8445D0A0727707EA15B79CC
</span><span style="color:#323232;">          LayeredPackages: akmod-nvidia akmods asusctl asusctl-rog-gui libratbag-ratbagd mullvad-vpn rpmdevtools
</span><span style="color:#323232;">                           supergfxctl virt-manager xorg-x11-drv-nvidia
</span><span style="color:#323232;">            LocalPackages: rpmfusion-free-release-40-1.noarch rpmfusion-nonfree-release-40-1.noarch
</span><span style="color:#323232;">
</span><span style="color:#323232;">  fedora:fedora/40/x86_64/kinoite
</span><span style="color:#323232;">                  Version: 40.20240507.0 (2024-05-07T00:44:22Z)
</span><span style="color:#323232;">               BaseCommit: c7fb680111ecf1736e473cf6f9169f69e5f2ec6b50814f7017bd6f9f3c1bdaf2
</span><span style="color:#323232;">             GPGSignature: Valid signature by 115DF9AEF857853EE8445D0A0727707EA15B79CC
</span><span style="color:#323232;">          LayeredPackages: akmod-nvidia akmods asusctl asusctl-rog-gui libratbag-ratbagd mullvad-vpn rpmdevtools
</span><span style="color:#323232;">                           supergfxctl virt-manager xorg-x11-drv-nvidia
</span><span style="color:#323232;">            LocalPackages: rpmfusion-free-release-40-1.noarch rpmfusion-nonfree-release-40-1.noarch
</span>

First one has a dot next to it, which means it’s the active version. Copy the value after “BaseCommit:” (in my case it is 2f8263a33190c4e1320233aebbdc8f337b0a6abcba371d4870ae43fba33aea62)

Run rpm-ostree db list <paste commit hash here> | grep amd. Example output (my command was rpm-ostree db list 2f8263a33190c4e1320233aebbdc8f337b0a6abcba371d4870ae43fba33aea62 | grep amd):


<span style="color:#323232;">amd-gpu-firmware-20240410-1.fc40.noarch
</span><span style="color:#323232;">amd-ucode-firmware-20240410-1.fc40.noarch
</span>

In my case, running the most recent update on Fedora Atomic KDE, it looks like I’m running version 20240410-1 of amd-gpu-firmware. Yours may vary depending on what update you’re on.

Para_lyzed,

Since they’re running Fedora Atomic, the commands are through rpm-ostree, as dnf is disabled. I’ve provided the relevant instructions.

Para_lyzed,

If you want easy Arch, recommend EndeavourOS. Manjaro is a pile of steaming garbage just waiting to break itself. EndeavourOS is easy for beginners, doesn’t break itself constantly, and gets all the features of Arch from mainline Arch, not the Manjaro repos. I strongly suggest you revise your recommendation to EndeavourOS; there’s very good reason behind why this community dislikes Manjaro.

Para_lyzed,

I used Manjaro for about 6 months, never used AUR or made any real modifications to my install (except for troubleshooting), and had to fully reinstall 2 times and fix config issues on files I’ve never touched a handful of times in that 6 months because a standard update broke everything. I then went on to use EndeavourOS for a year and never had a single issue the entire time I used it, so my problems were not related to Arch, it was Manjaro. Similar stories are constantly echoed about Manjaro, and I have a hard time believing that the entire Internet is astroturfing a Linux distro for no reason. I, as a quite experienced Linux user of over a decade, have never tried any distro that has been anywhere close to as bad as Manjaro. I’ve had an install brick itself once outside of Manjaro, and that was due to an obscure hardware bug that got through QA. I’ve never had to spend as much time fixing a distro as I did with Manjaro, and it was on a laptop that I only used for browsing and schoolwork. I didn’t even bother to change the wallpaper because I only had it there to try out. So no, nothing that happened was related to the packages I installed, the (nonexistent) changes made to configs, or the use of the AUR. That was a perfectly normal Manjaro install breaking itself for absolutely no reason. You can feel free not to trust my anecdotal evidence, but almost everyone I’ve seen in this community who has said they’ve used Manjaro has echoed similar stories. This isn’t a unique or rare experience.

EndeavourOS has great value to users new to Arch that don’t want to set everything up from scratch. It is basically vanilla Arch without the setup hassle of vanilla Arch. I don’t see why that wouldn’t have value, and I don’t really understand why you’d recommend Manjaro over it. The 2 week freeze that Manjaro does on packages doesn’t actually help stability. It does nothing at best, and makes things worse in most other cases.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • InstantRegret
  • DreamBathrooms
  • ethstaker
  • magazineikmin
  • osvaldo12
  • Durango
  • Youngstown
  • ngwrru68w68
  • slotface
  • rosin
  • mdbf
  • kavyap
  • khanakhh
  • megavids
  • tester
  • thenastyranch
  • cisconetworking
  • tacticalgear
  • cubers
  • everett
  • modclub
  • GTA5RPClips
  • anitta
  • Leos
  • provamag3
  • normalnudes
  • lostlight
  • All magazines