What is good software for incremental backup and good partitioning scheme for reliable snapshots of Manjaro system AND /home

After 12 hours, I am going for a clean install of Manjaro. I have 1TB hard disk. I am considering following partition
sda1 —> 300mb — FAT32 — /boot/efi
sda2 —> 90GB — BTRFS — /
sda3 —> 900GB BTRFS — /home
sda4 —> 9GB — Swap

Comments or links to guidance are sought for incremental backup of / & /home :

  1. Is it possible to keep system snapshots on sda2, and /home snapshots on sda3?
  2. Is btrfs good for reliable snapshots?
  3. Is timeshift good for reliable snapshots?

My system information

System:
  Kernel: 5.15.41-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.1.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-5.15-x86_64
    root=UUID=2e646780-2ffb-409b-b567-fb0780bd7300 rw rootflags=subvol=@ quiet
    apparmor=1 security=apparmor
    resume=UUID=2b349ccd-c725-40e4-927d-e49c60e5a66a udev.log_priority=3
  Desktop: KDE Plasma v: 5.24.5 tk: Qt v: 5.15.4 wm: kwin_x11 vt: 1 dm: SDDM
    Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 81D2 v: Lenovo ideapad 330-15ARR
    serial: <superuser required> Chassis: type: 10 v: Lenovo ideapad 330-15ARR
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: SDK0Q55724 WIN
    serial: <superuser required> UEFI: LENOVO v: 7VCN46WW date: 12/10/2018
Battery:
  ID-1: BAT0 charge: 24.6 Wh (97.6%) condition: 25.2/35.0 Wh (72.1%)
    volts: 8.3 min: 7.6 model: LGC L17L2PF0 type: Li-poly serial: <filter>
    status: N/A
Memory:
  RAM: total: 7.38 GiB used: 4.99 GiB (67.6%)
  RAM Report:
    permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: AMD Ryzen 3 2200U with Radeon Vega Mobile Gfx bits: 64
    type: MT MCP arch: Zen family: 0x17 (23) model-id: 0x11 (17) stepping: 0
    microcode: 0x810100B
  Topology: cpus: 1x cores: 2 tpc: 2 threads: 4 smt: enabled cache:
    L1: 192 KiB desc: d-2x32 KiB; i-2x64 KiB L2: 1024 KiB desc: 2x512 KiB
    L3: 4 MiB desc: 1x4 MiB
  Speed (MHz): avg: 1516 high: 1656 min/max: 1600/2500 boost: enabled
    scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 1395 2: 1457
    3: 1656 4: 1557 bogomips: 19969
  Flags: 3dnowprefetch abm adx aes aperfmperf apic arat avic avx avx2 bmi1
    bmi2 bpext clflush clflushopt clzero cmov cmp_legacy constant_tsc cpb cpuid
    cr8_legacy cx16 cx8 de decodeassists extapic extd_apicid f16c flushbyasid
    fma fpu fsgsbase fxsr fxsr_opt ht hw_pstate ibpb irperf lahf_lm lbrv lm
    mca mce misalignsse mmx mmxext monitor movbe msr mtrr mwaitx nonstop_tsc
    nopl npt nrip_save nx osvw overflow_recov pae pat pausefilter pclmulqdq
    pdpe1gb perfctr_core perfctr_llc perfctr_nb pfthreshold pge pni popcnt pse
    pse36 rapl rdrand rdseed rdtscp rep_good sep sev sev_es sha_ni skinit smap
    smca sme smep ssbd sse sse2 sse4_1 sse4_2 sse4a ssse3 succor svm svm_lock
    syscall tce topoext tsc tsc_scale v_vmsave_vmload vgif vmcb_clean vme
    vmmcall wdt xgetbv1 xsave xsavec xsaveerptr xsaveopt xsaves
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl and seccomp
  Type: spectre_v1
    mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2
    mitigation: Retpolines, IBPB: conditional, STIBP: disabled, RSB filling
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: AMD Raven Ridge [Radeon Vega Series / Radeon Mobile Series]
    vendor: Lenovo driver: amdgpu v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
    ports: active: eDP-1 empty: HDMI-A-1 bus-ID: 03:00.0 chip-ID: 1002:15dd
    class-ID: 0300
  Device-2: IMC Networks EasyCamera type: USB driver: uvcvideo bus-ID: 3-1:2
    chip-ID: 13d3:5a02 class-ID: 0e02 serial: <filter>
  Display: x11 server: X.Org v: 21.1.3 compositor: kwin_x11 driver: X:
    loaded: amdgpu unloaded: modesetting alternate: fbdev,vesa gpu: amdgpu
    display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22")
    s-diag: 582mm (22.93")
  Monitor-1: eDP-1 mapped: eDP model: AU Optronics 0x38ed built: 2014
    res: 1920x1080 hz: 60 dpi: 142 gamma: 1.2 size: 344x193mm (13.54x7.6")
    diag: 394mm (15.5") ratio: 16:9 modes: max: 1920x1080 min: 640x480
  OpenGL: renderer: AMD RAVEN (LLVM 13.0.1 DRM 3.42 5.15.41-1-MANJARO)
    v: 4.6 Mesa 22.0.4 direct render: Yes
Audio:
  Device-1: AMD Raven/Raven2/Fenghuang HDMI/DP Audio vendor: Lenovo
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
    bus-ID: 03:00.1 chip-ID: 1002:15de class-ID: 0403
  Device-2: AMD Family 17h/19h HD Audio vendor: Lenovo driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 03:00.6
    chip-ID: 1022:15e3 class-ID: 0403
  Sound Server-1: ALSA v: k5.15.41-1-MANJARO running: yes
  Sound Server-2: JACK v: 1.9.21 running: no
  Sound Server-3: PulseAudio v: 15.0 running: yes
  Sound Server-4: PipeWire v: 0.3.51 running: yes
Network:
  Device-1: Realtek RTL8821CE 802.11ac PCIe Wireless Network Adapter
    vendor: Lenovo driver: rtw_8821ce v: N/A modules: rtw88_8821ce pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 port: 3000 bus-ID: 01:00.0 chip-ID: 10ec:c821
    class-ID: 0280
  IF: wlp1s0 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: noprefixroute scope: link
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: Lenovo driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1
    port: 2000 bus-ID: 02:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp2s0 state: down mac: <filter>
  WAN IP: <filter>
Bluetooth:
  Device-1: Realtek Bluetooth Radio type: USB driver: btusb v: 0.8
    bus-ID: 3-2:3 chip-ID: 0bda:c024 class-ID: e001 serial: <filter>
  Report: rfkill ID: hci0 rfk-id: 2 state: up address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 931.51 GiB used: 210.75 GiB (22.6%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/sda maj-min: 8:0 vendor: Toshiba model: MQ04ABF100
    size: 931.51 GiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    type: HDD rpm: 5400 serial: <filter> rev: 3E scheme: GPT
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 922.42 GiB size: 922.42 GiB (100.00%)
    used: 209.73 GiB (22.7%) fs: btrfs dev: /dev/sda2 maj-min: 8:2 label: N/A
    uuid: 2e646780-2ffb-409b-b567-fb0780bd7300
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 568 KiB (0.2%) fs: vfat dev: /dev/sda1 maj-min: 8:1 label: NO_LABEL
    uuid: B8BC-E27B
  ID-3: /home raw-size: 922.42 GiB size: 922.42 GiB (100.00%)
    used: 209.73 GiB (22.7%) fs: btrfs dev: /dev/sda2 maj-min: 8:2 label: N/A
    uuid: 2e646780-2ffb-409b-b567-fb0780bd7300
  ID-4: /var/cache raw-size: 922.42 GiB size: 922.42 GiB (100.00%)
    used: 209.73 GiB (22.7%) fs: btrfs dev: /dev/sda2 maj-min: 8:2 label: N/A
    uuid: 2e646780-2ffb-409b-b567-fb0780bd7300
  ID-5: /var/log raw-size: 922.42 GiB size: 922.42 GiB (100.00%)
    used: 209.73 GiB (22.7%) fs: btrfs dev: /dev/sda2 maj-min: 8:2 label: N/A
    uuid: 2e646780-2ffb-409b-b567-fb0780bd7300
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
  ID-1: swap-1 type: partition size: 8.8 GiB used: 1.01 GiB (11.5%)
    priority: -2 dev: /dev/sda3 maj-min: 8:3 label: swap
    uuid: 2b349ccd-c725-40e4-927d-e49c60e5a66a
Unmounted:
  Message: No unmounted partitions found.
USB:
  Hub-1: 1-0:1 info: Hi-speed hub with single TT ports: 4 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-2: 2-0:1 info: Super-speed hub ports: 4 rev: 3.1 speed: 10 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
  Hub-3: 3-0:1 info: Hi-speed hub with single TT ports: 2 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 3-1:2 info: IMC Networks EasyCamera type: Video driver: uvcvideo
    interfaces: 2 rev: 2.0 speed: 480 Mb/s power: 500mA chip-ID: 13d3:5a02
    class-ID: 0e02 serial: <filter>
  Device-2: 3-2:3 info: Realtek Bluetooth Radio type: Bluetooth
    driver: btusb interfaces: 2 rev: 1.1 speed: 12 Mb/s power: 500mA
    chip-ID: 0bda:c024 class-ID: e001 serial: <filter>
  Hub-4: 4-0:1 info: Super-speed hub ports: 1 rev: 3.1 speed: 10 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
Sensors:
  System Temperatures: cpu: N/A mobo: N/A gpu: amdgpu temp: 50.0 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 263 Uptime: 18h 33m wakeups: 60185 Init: systemd v: 250
  tool: systemctl Compilers: gcc: 12.1.0 clang: 13.0.1 Packages: 1334
  pacman: 1325 lib: 368 flatpak: 0 snap: 9 Shell: Zsh v: 5.9 default: Bash
  v: 5.1.16 running-in: konsole inxi: 3.3.16

Why not one BTRFS filesystem, and then make home its own subvolume? This way you get the most efficient use of your available space, without wasting so much of it (90GB) solely on root.

1 Like

Given that / and /home are separate partitions in your example, that’s how it would be by default.

Yes, but see below.

Yes, but…

  1. Snapshots are not backups. If you want to make backups, then you need a physically separate drive, with a partition formatted with a Linux-native filesystem.

  2. timeshift does not include /home by default — the developer recommends against that — although you can tell it to.

2 Likes

I’ll have to correct you there, since there seems to be a conflation with the terms “backups” and “snapshots”.

Here is the “proper” way to explain it:

(clears throat)

:warning: :warning: :warning: Snapshots. Are. NOT. Backups. :warning: :warning: :warning:

:grin:

Maybe with some fireworks exploding into neon letters can also help get the message across.

3 Likes
  1. Because I also want separate snapshots of /home.
  2. My documents are around 100GB (may grow to 150GB), largely pdf, text, libreoffice docs

For backup I use external harddisk.

Snapshots can be done on a per-subvolume basis.


Subvolumes are not partitions nor block devices. You don’t “size them” upon creation. (You can create “quotas”, but that’s out of the scope of this discussion.)

1 Like

How many topics do you need to open about the same thing?

2 Likes

Yes. For backup I regularly use external harddisk. Moot question is, whether or not 90/900 gb for / and /home is reasonable ratio for Manjaro system and my documents (around 100GB which may grow to 150GB), largely pdf, text, libreoffice docs ???

I am puzzled, because an experienced member suggested separate partition for /home for reliable snapshot of Documents. I am myself not good at linux, else I would not have posed the question.

You’re sure they weren’t referring to subvolumes, and advising against including @home (i.e, /home) in your Timeshift snapshots?

Partitions are not the same as subvolumes.


And your question (for this topic) was already answered here:

1 Like

Ok. In that case /home will remain subvolume of larger btrfs partition. Same as my present partitioning.

Ok. I give up my quest for snapshots of /home and remain contented with backup on external HDD every few months.

Thank you all for inputs. Snapshot of /root (subvolume @) failed to restore 2 days back. Forced to clean install Manjaro again.

If there exist a fail-safe and step-by-step guide to (i) partitioning, (ii) Manjaro installation and (iii) taking/restoring snapshots, please share. Else people like me would learn hardway, stumbling on mistakes.

Thing is, from quickly reading your previous threads, no one found what caused your issues to begin with. I’ll sound pessimistic, but even if you take all the precautions available, there is absolutely no warranty they won’t happen again…

:100: Yes

:100: Yes

I do use snapper :footprints:

Look with forumsearch for “Timeshift” and decide yourself

Tip:

Use btrfs with 2 Devices and RAID

You find good Information about Btrfs in the wiki

1 Like

Previously I used full disk encryption with the /home as a subvolume.

When trying to restore from snapshot boot files could not be reached, due encryption and restored system would boot.

Now I have a seperate encrypted home partition and / system partition with boot files not encrypted…

Restoring and booting works now perfect.

There is another way: Linux Kernels in /boot and /boot/efi for GRUB menu should not be encrypted.
Restoring at booting work fine too.

3 Likes

Great, is there an instruction how to do this? With the calemares installer I don’t get that result.

Yes. I failed to communicate something.

In my case, I do not need encryption. Next time I will test restore before populating /home

It used to be easily accomplished with manjaro-architect which hasn’t been updated in a while.

But for anything that goes outside of the standard installation partitioning scheme, you can prepare your partitions, encrypted containers, logical volumes, subvolumes, filesystems, etc, ahead of time, and then use the “Manual” option during installation to tell Manjaro what to use and how to mount it. (It will also require entering a chroot environment before rebooting to make the necessary edits to fstab, crypttab, grub, and whatever else that is relevant to your setup.)

2 Likes