Configuring Fedora Rawhide Server using a combination of Btrfs and OverlayFS creates a secure testing environment. This configuration isolates critical for tracking rapidly evolving Rawhide packages from developers allowing the server to load read-only Btrfs base snapshots while using the OverlayFS layer as a storage layer for writing and temporary data. If an update disrupts the OS, the base snapshot remains intact, allowing for rollback after a single reboot. Same configuration may also work and vice versa way. Btrfs-assistant running inside Overlay instance booted via corresponding option of Grub Submenu allows to recover from crash main instance via selection required "ro" snaphot using it's own GUI.
Original disk layout created via Anaconda Blivet GUI
boris@fedoraSRV45:~$ lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sr0
zram0 swap 1 zram0 36997738-0002-4ac8-a610-5fa763846448 [SWAP]
vda
├─vda1 vfat FAT32 59C6-BE04 1014.1M 1% /boot/efi
├─vda2 ext4 1.0 3c0092f6-68b7-46c4-9443-c18b91a93298 1.5G 17% /boot
└─vda3 btrfs a8856089-210e-42ff-8ba4-5f53f91a8dee 59.4G 9% /var/log
/var/cache
/home
/.snapshots
/
$ sudo dnf install btrfs-assistant snapper gawk inotify-tools libdnf5-plugin-actions git make -y
$ sudo dnf install python3-btrfsutil dracut-live -y
========================
Trick Snapper Method
========================
$ sudo umount /.snapshots
$ sudo rmdir /.snapshots
$ sudo snapper -c root create-config /
$ sudo mount /.snapshots
Create the missing directory:
$ sudo mkdir -p /boot/grub
$ sudo dnf install grub2-tools
$ sudo make install
#
UUID=a8856089-210e-42ff-8ba4-5f53f91a8dee / btrfs subvol=@,compress=zstd:1 0 0
UUID=a8856089-210e-42ff-8ba4-5f53f91a8dee /.snapshots btrfs subvol=snapshots,compress=zstd:1 0 0
UUID=3c0092f6-68b7-46c4-9443-c18b91a93298 /boot ext4 defaults 1 2
UUID=59C6-BE04 /boot/efi vfat umask=0077,shortname=winnt 0 2
UUID=a8856089-210e-42ff-8ba4-5f53f91a8dee /home btrfs subvol=@home,compress=zstd:1 0 0
UUID=a8856089-210e-42ff-8ba4-5f53f91a8dee /var/cache btrfs subvol=@cache,compress=zstd:1 0 0
UUID=a8856089-210e-42ff-8ba4-5f53f91a8dee /var/log btrfs subvol=@log,compress=zstd:1 0 0
===============================
Linux fedoraSRV45 7.2.0-61.fc46.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Aug 17 12:34:38 UTC 2026 x86_64 GNU/Linux
LiveOS_rootfs on / type overlay (rw,relatime,seclabel,lowerdir=/run/rootfsbase,upperdir=/run/overlayfs,workdir=/run/ovlwork,uuid=on)
boris@fedoraSRV45:~$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
LiveOS_rootfs overlay 3.1G 25M 3.1G 1% /
devtmpfs devtmpfs 7.6G 0 7.6G 0% /dev
tmpfs tmpfs 7.6G 96K 7.6G 1% /dev/shm
efivarfs efivarfs 256K 114K 137K 46% /sys/firmware/efi/efivars
tmpfs tmpfs 3.1G 25M 3.1G 1% /run
/dev/vda3 btrfs 67G 6.2G 60G 10% /run/rootfsbase
none tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-journald.service
none tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-resolved.service
/dev/vda3 btrfs 67G 6.2G 60G 10% /.snapshots
/dev/vda3 btrfs 67G 6.2G 60G 10% /home
tmpfs tmpfs 7.6G 4.0K 7.6G 1% /tmp
/dev/vda2 ext4 2.0G 326M 1.5G 18% /boot
/dev/vda3 btrfs 67G 6.2G 60G 10% /var/cache
/dev/vda3 btrfs 67G 6.2G 60G 10% /var/log
/dev/vda1 vfat 1022M 8.0M 1015M 1% /boot/efi
tmpfs tmpfs 1.6G 88K 1.6G 1% /run/user/1000
boris@fedoraSRV45:~$ lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sr0
zram0 swap 1 zram0 1a27ea82-33c1-4e83-818c-9da7d6e0b738 [SWAP]
vda
├─vda1 vfat FAT32 59C6-BE04 1014.1M 1% /boot/efi
├─vda2 ext4 1.0 3c0092f6-68b7-46c4-9443-c18b91a93298 1.5G 17% /boot
└─vda3 btrfs a8856089-210e-42ff-8ba4-5f53f91a8dee 59.4G 9% /var/log
/var/cache
/home
/.snapshots
/run/rootfsbase
Main fedora Server Rawhide instance (as of 08/18/26)


No comments:
Post a Comment