Pros: snapshots, testing, rollbacks, docker btrfs storage engine, possibility to have more roots with different distributions...
Using NVME SSD (/dev/nvme0n1) as final drive in this guide.
The main idea is write full image to the drive, convert ext4 to btrfs and add root subvolume to bootargs.
For simplification I am using cp for that migration.
Boot temporary arch / manjaro-arm, btrfs-progs installed from SD Card or SATA drive.
Get manjaro image (personally tested minimal and sway 23.02)
Code: Select all
wget https://github.com/manjaro-arm/om1-images/releases/download/23.02/Manjaro-ARM-minimal-om1-23.02.img.xz
Code: Select all
xz -dc Manjaro-ARM-minimal-om1-23.02.img.xz | dd of=/dev/sda status=progress bs=32M
Code: Select all
mkdir nvme0n1p2 root_ext4
mount /dev/nvme0n1p2 nvme0n1p2
Code: Select all
cp -rp nvme0n1p2/* root_ext4/
Code: Select all
umount /dev/nvme0n1p2
fdisk /dev/nvme0n1
2
n
2
default
default
w
Format root as btrfs
Code: Select all
mkfs.btrfs /dev/nvme0n1p2 -f
Code: Select all
mount /dev/nvme0n1p2 nvme0n1p2
btrfs sub create nvme0n1p2/@root
btrfs sub create nvme0n1p2/@snapshots
btrfs sub create nvme0n1p2/@docker
btrfs sub create nvme0n1p2/@download
btrfs sub create nvme0n1p2/@zigbee
umount /dev/nvme0n1p2
Code: Select all
mount -o noatime,compress=zstd,ssd,subvol=@root /dev/nvme0n1p2 nvme0n1p2
Code: Select all
cp -rp root_ext4/* nvme0n1p2/
Code: Select all
pacman -Sy arch-install-scripts -y
arch-chroot nvme0n1p2
Code: Select all
mount /dev/nvme0n1p1/ boot
pacman -Syu -y
Code: Select all
ls -la /dev/disk/by-partuuid | grep nvme
nano /boot/boot.cmd
Code: Select all
setenv bootargs root=PARTUUID=8a881f56-bac7-224a-9e0e-fb5278f02397 rw rootwait rootflags=subvol=@root
Code: Select all
mkimage -T script -A arm64 -C none -d /boot/boot.cmd /boot/boot.scr
Code: Select all
mkdir /mnt/zigbee
mkdir /mnt/download
nano /etc/fstab
Code: Select all
PARTUUID=88314e46-676b-416b-ac60-3e812b6853b8 /boot vfat defaults,noexec,nodev,showexec 0 0
PARTUUID=8a881f56-bac7-224a-9e0e-fb5278f02397 / btrfs noatime,compress=zstd,ssd,subvol=@root 0 0
PARTUUID=8a881f56-bac7-224a-9e0e-fb5278f02397 /var/lib/docker btrfs noatime,compress=zstd,ssd,subvol=@docker 0 0
PARTUUID=8a881f56-bac7-224a-9e0e-fb5278f02397 /mnt/zigbee btrfs noatime,compress=zstd,ssd,subvol=@zigbee 0 0
PARTUUID=8a881f56-bac7-224a-9e0e-fb5278f02397 /mnt/download btrfs noatime,ssd,subvol=@download 0 0
Code: Select all
exit
reboot
