Fedora
Installation
The installation is graphical. I followed the guide written at 1. Worth noting, during the graphical installation, in the storage editor, I added sandbox subvolume at /srv/sandbox.
Post Installation
ls -lash ~
mv -v ~/.mozilla/ ~/.mozilla-old
btrfs subvolume create ~/.mozilla
cp -arv ~/.mozilla-old/. ~/.mozilla/
rm -rfv ~/.mozilla-old/
restorecon -vRF ~/$(ls -A)
sudo bash -c "cat > /etc/dnf/libdnf5-plugins/actions.d/snapper.actions" <<'EOF'
# Get snapshot description
pre_transaction::::/usr/bin/sh -c echo\ "tmp.cmd=$(ps\ -o\ command\ --no-headers\ -p\ '${pid}')"
# Creates pre snapshot before the transaction and stores the snapshot number in the "tmp.snapper_pre_number" variable.
pre_transaction::::/usr/bin/sh -c echo\ "tmp.snapper_pre_number=$(snapper\ create\ -t\ pre\ -c\ number\ -p\ -d\ '${tmp.cmd}')"
# If the variable "tmp.snapper_pre_number" exists, it creates post snapshot after the transaction and removes the variable "tmp.snapper_pre_number".
post_transaction::::/usr/bin/sh -c [\ -n\ "${tmp.snapper_pre_number}"\ ]\ &&\ snapper\ create\ -t\ post\ --pre-number\ "${tmp.snapper_pre_number}"\ -c\ number\ -d\ "${tmp.cmd}"\ ;\ echo\ tmp.snapper_pre_number\ ;\ echo\ tmp.cmd
EOF
sudo snapper -c root set-config ALLOW_USERS=$USER SYNC_ACL=yes
sudo snapper -c home set-config ALLOW_USERS=$USER SYNC_ACL=yes
sed -i.bkp \
-e '/^#GRUB_BTRFS_SNAPSHOT_KERNEL_PARAMETERS=/a \
GRUB_BTRFS_SNAPSHOT_KERNEL_PARAMETERS="rd.live.overlay.overlayfs=1"' \
-e '/^#GRUB_BTRFS_GRUB_DIRNAME=/a \
GRUB_BTRFS_GRUB_DIRNAME="/boot/grub2"' \
-e '/^#GRUB_BTRFS_MKCONFIG=/a \
GRUB_BTRFS_MKCONFIG=/usr/bin/grub2-mkconfig' \
-e '/^#GRUB_BTRFS_SCRIPT_CHECK=/a \
GRUB_BTRFS_SCRIPT_CHECK=grub2-script-check' \
config
At this point, all the setup and configuration needed to enable snapshot and rollback support on the system is now complete. Snapper is ready to manage your system and home snapshots. GRUB will detect snapshots automatically, and you can restore them easily if something goes wrong. Your system is now snapshot ready. However, to enable automatic snapshotting follow further.
sudo snapper -c home set-config TIMELINE_CREATE=no
sudo systemctl enable --now snapper-timeline.timer
sudo systemctl enable --now snapper-cleanup.timer
Plug in HARDCODE and use dotfiles.
mkdir ~/.ssh
cp /run/media/user/HARDCODE/hardcode/project/dotfiles/.ssh/* ~/.ssh/
firefox -CreateProfile "profile_name"
cp /run/media/user/HARDCODE/hardcode/project/dotfiles/.local/share/applications/* ~/.local/share/applications/
# Install RPM Fusion Repos
sudo dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
# Perform System Upgrade
sudo dnf -y update
# Massive DNF5 Install (The "Clean" way)
# This swaps ffmpeg-free for ffmpeg automatically via --allowerasing
sudo dnf install -y --allowerasing @development-tools @multimedia @sound-and-video ffmpeg p7zip p7zip-plugins git git-lfs btop gnome-tweaks fastfetch
# Flathub is pre-configured as a part of the Third-Party Repositories. It shows as a button on first boot.
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# Install Flatpak Apps
flatpak install -y flathub com.mattjakeman.ExtensionManager
# Logout or reboot.
- Setup the Neovim
- Setup the Virtualisation feature.
- Setup the Source feature.
- Setup the Sandbox feature.
Using this guide to setup backup system: 234.
Hostname is computer because this is a generic computer. By default, Fedora doesn't play nicely with timeshift because it doesn't name subvolumes the way timeshift expects (it expects @ and @home). Use btrfs-assistant instead of timeshift. Install gnome-tweaks because, by default, Fedora's GNOME doesn't enable minimise and maximise buttons in the title bar of windows. Tools like Refine and Tuner are unncessary.
Fedora seems much better than Ubuntu. The experience is more streamlined. It doesn't divert from upstream as much as Ubuntu. It provides more recent updates due its rolling updates approach that is different from Ubuntu that uses snapshots. The downside is the shorter support lifespan which is only a single year.
Virtualisation steps were inspired by 5. Steam steps by 6. NVIDIA drivers by 7.
-
https://sysguides.com/install-fedora-42-with-snapshot-and-rollback-support ↩
-
https://dev.to/alldaylinux/fedora-43-post-install-guide-10-essential-things-to-do-after-installing-2m15 ↩
-
https://sysguides.com/install-fedora-42-with-snapshot-and-rollback-support ↩
-
https://github.com/mizifool/Fedora-43-post-installation-guide-for-Nvidia-users ↩
-
https://docs.fedoraproject.org/en-US/quick-docs/virtualization-getting-started/ ↩
-
https://docs.fedoraproject.org/en-US/gaming/proton/ ↩
-
https://github.com/Comprehensive-Wall28/Nvidia-Fedora-Guide ↩