Created
July 7, 2025 22:19
-
-
Save tjcomserv/57e1edee0aab181eb9c04e619d44ef6c to your computer and use it in GitHub Desktop.
Setup Raspberry Pi with BTRFS and ZRAM
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| flash Rasbery Pi os image to sd card. | |
| sudo mkdir /mnt/boot | |
| sudo mkdir /mnt/rootfs | |
| sudo mkdir /tmp/rootfs-backup | |
| sudo mount /dev/mmcblk0p1 /mnt/boot | |
| sudo mount /dev/mmcblk0p2 /mnt/rootfs | |
| sudo rsync -aAX --info=progress2 /mnt/rootfs/ /tmp/rootfs-backup/ | |
| sudo umount /mnt/rootfs | |
| sudo apt install cloud-guest-utils -y | |
| sudo growpart /dev/mmcblk0 2 | |
| sudo mkfs.btrfs -f /dev/mmcblk0p2 | |
| sudo mount /dev/mmcblk0p2 /mnt/rootfs | |
| [check brtfs partition size] | |
| sudo btrfs filesystem usage /mnt/rootfs | |
| sudo btrfs subvolume create /mnt/rootfs/@ | |
| sudo btrfs subvolume create /mnt/rootfs/@home | |
| sudo rsync -aAX --info=progress2 /tmp/rootfs-backup/ /mnt/rootfs/@ | |
| sudo rsync -aAX --info=progress2 /mnt/rootfs/@/home/ /mnt/rootfs/@home | |
| sudo rm -rf /mnt/rootfs/@/home/ | |
| sudo nano /mnt/rootfs/@/etc/fstab | |
| [Replace ext4 lines with:] | |
| /dev/mmcblk0p2 / btrfs defaults,subvol=@,compress=zstd 0 1 | |
| /dev/mmcblk0p2 /home btrfs defaults,subvol=@home,compress=zstd 0 2 | |
| sudo nano /mnt/boot/cmdline.txt | |
| [change] | |
| rootfstype=ext4 | |
| [to] | |
| rootfstype=btrfs rootflags=subvol=@ | |
| sudo umount /mnt/boot | |
| sudo umount /mnt/rootfs | |
| [zram] | |
| sudo apt update | |
| sudo apt install git | |
| git clone https://github.com/foundObjects/zram-swap | |
| cd zram-swap | |
| sudo ./install.sh | |
| sudo dphys-swapfile swapoff | |
| sudo reboot | |
| cat /proc/swaps | |
| sudo apt install btrfs-progs timeshift | |
| sudo timeshift --btrfs --create --verbose | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment