ReaR backup

A ReaR (Relax and Recover) egy kényelmes kis backup megoldás Linuxra. Futó rendszer mentésére alkalmas, jól automatizálható izé. Mondjuk itt csak egy elég fapad megoldását írom le, de itthon ennyire van szükség, ezt teszteltem ki. Természetesen Debianon, de elég jó kis leírás van pl. Redhat-re is.
Ami jó az egészben, a futó rendszer mentése mellett, hogy rengeteg backup megoldást ismer. Veritas, Veeam, TSM, amik azért nagyobb cégeknél fordulnak elő, de mezei SMB/CIFS, NFS, SSHFS, stb. megosztásra is tud menteni, meg még egy rakás mindenre.
Az alapvető működés az, hogy egy ISO file készül, majd a filerendszerek tartalmáról egy backup a választott backup megoldásra (sima megosztás esetén egy .tar.gz). A visszaállításhoz az ISO-ról kell indítani a gépet, ami felhúzza a hálózatot, diszk layoutot megcsinálja, majd visszarángatja az adatot a .tar.gz -ből.

Mivel alapvetően itthon a virtuálhost/NAS gépen SMB/CIFS megosztás van, meg amúgy sincs szükség napi/heti mentésekre, kevésbé kényelmes, de szögegyszerű módot választottam, ide kerül a backup. Az a macera, hogy az ISO létrehozás sokkal kevesebb kimenetet ismer, mint a backup, és ezek között nincs olyasmi, amihez legalábbis le lehet tárolni a jelszót (még akár nem biztonságos módon is). Szóval backup indítása után legalább egyszer be kell írnom a jelszót az ISO rsync-es másolásához :D (NFS-hez pl. ha minden igaz, megoldható, hogy teljesen automata legyen a mentés.)

A konfig :
TIMESYNC=NTP
BACKUP=NETFS
OUTPUT=ISO
OUTPUT_URL=rsync://backup@a8host/store/homeserver/backup/
BACKUP_URL=cifs://a8host/store/homeserver/backup/
BACKUP_OPTIONS="cred=/etc/rear/cifs"
BACKUP_PROG_EXCLUDE=( "${BACKUP_PROG_EXCLUDE[@]}" '/sys/*' )
BACKUP_PROG_EXCLUDE=( "${BACKUP_PROG_EXCLUDE[@]}" '/proc/*' )
USE_SERIAL_CONSOLE="no"
KERNEL_CMDLINE="console=tty1 systemd.unit=getty@tty1.service"
MODULES_LOAD=( e1000e )

A külön rescue ISO létrehozása :
root@homeserver:~# /usr/sbin/rear -v mkrescue
Relax-and-Recover 2.7 / Git
Running rear mkrescue (PID 4041691 date 2025-09-12 10:13:59)
Using log file: /var/log/rear/rear-homeserver.log
Running workflow mkrescue on the normal/original system
Using autodetected kernel '/boot/vmlinuz-6.12.21-amd64' as kernel in the recovery system
Creating disk layout
Overwriting existing disk layout file /var/lib/rear/layout/disklayout.conf
Using guessed bootloader 'GRUB' for 'rear recover' (found in first bytes on /dev/sda)
Verifying that the entries in /var/lib/rear/layout/disklayout.conf are correct
Created disk layout (check the results in /var/lib/rear/layout/disklayout.conf)
Creating recovery system root filesystem skeleton layout
To log into the recovery system via ssh set up /root/.ssh/authorized_keys or specify SSH_ROOT_PASSWORD
Copying logfile /var/log/rear/rear-homeserver.log into initramfs as '/tmp/rear-homeserver-partial-2025-09-12T10:14:08+02:00.log'
Copying files and directories
Copying binaries and libraries
Copying all kernel modules in /lib/modules/6.12.21-amd64 (MODULES contains 'all_modules')
Copying all files in /lib*/firmware/
Symlink '/usr/share/misc/magic' -> '/usr/share/file/magic' refers to a non-existing directory on the recovery system.
It will not be copied by default. You can include '/usr/share/file/magic' via the 'COPY_AS_IS' configuration variable.
Testing that the recovery system in /var/tmp/rear.aHCQq047CFUljIK/rootfs contains a usable system
/usr/lib/x86_64-linux-gnu/systemd/libsystemd-core-258.so requires additional libraries
    libsystemd-shared-258.so => not found
ReaR recovery system in '/var/tmp/rear.aHCQq047CFUljIK/rootfs' needs additional libraries, check /var/log/rear/rear-homeserver.log for details
Creating recovery/rescue system initramfs/initrd initrd.cgz with gzip default compression
Created initrd.cgz with gzip default compression (376121584 bytes) in 98 seconds
Making ISO image
Wrote ISO image: /var/lib/rear/output/rear-homeserver.iso (372M)
Copying resulting files to rsync location
Saving /var/log/rear/rear-homeserver.log as rear-homeserver.log to rsync location
Copying result files '/var/lib/rear/output/rear-homeserver.iso /var/tmp/rear.aHCQq047CFUljIK/tmp/VERSION /var/tmp/rear.aHCQq047CFUljIK/tmp/README /var/tmp/rear.aHCQq047CFUljIK/tmp/rear-homeserver.log' to rsync location
backup@a8host's password: 
Exiting rear mkrescue (PID 4041691) and its descendant processes ...
Running exit tasks
root@homeserver:~#

A backup (ha nem kell ISO, mert már van, akkor rear -v mkbackuponly ) :
root@homeserver:~# /usr/sbin/rear -v mkbackup
Relax-and-Recover 2.7 / Git
Running rear mkbackup (PID 4062403 date 2025-09-12 10:20:20)
Using log file: /var/log/rear/rear-homeserver.log
Running workflow mkbackup on the normal/original system
Using backup archive '/var/tmp/rear.KAqDBJCxsWpZSUE/outputfs/homeserver/backup.tar.gz'
Using autodetected kernel '/boot/vmlinuz-6.12.21-amd64' as kernel in the recovery system
Creating disk layout
Overwriting existing disk layout file /var/lib/rear/layout/disklayout.conf
Using guessed bootloader 'GRUB' for 'rear recover' (found in first bytes on /dev/sda)
Verifying that the entries in /var/lib/rear/layout/disklayout.conf are correct
Created disk layout (check the results in /var/lib/rear/layout/disklayout.conf)
Creating recovery system root filesystem skeleton layout
To log into the recovery system via ssh set up /root/.ssh/authorized_keys or specify SSH_ROOT_PASSWORD
Copying logfile /var/log/rear/rear-homeserver.log into initramfs as '/tmp/rear-homeserver-partial-2025-09-12T10:20:29+02:00.log'
Copying files and directories
Copying binaries and libraries
Copying all kernel modules in /lib/modules/6.12.21-amd64 (MODULES contains 'all_modules')
Copying all files in /lib*/firmware/
Symlink '/usr/share/misc/magic' -> '/usr/share/file/magic' refers to a non-existing directory on the recovery system.
It will not be copied by default. You can include '/usr/share/file/magic' via the 'COPY_AS_IS' configuration variable.
Testing that the recovery system in /var/tmp/rear.KAqDBJCxsWpZSUE/rootfs contains a usable system
/usr/lib/x86_64-linux-gnu/systemd/libsystemd-core-258.so requires additional libraries
libsystemd-shared-258.so => not found
ReaR recovery system in '/var/tmp/rear.KAqDBJCxsWpZSUE/rootfs' needs additional libraries, check /var/log/rear/rear-homeserver.log for details
Creating recovery/rescue system initramfs/initrd initrd.cgz with gzip default compression
Created initrd.cgz with gzip default compression (376121535 bytes) in 98 seconds
Making ISO image
Wrote ISO image: /var/lib/rear/output/rear-homeserver.iso (372M)
Copying resulting files to rsync location
Saving /var/log/rear/rear-homeserver.log as rear-homeserver.log to rsync location
Copying result files '/var/lib/rear/output/rear-homeserver.iso /var/tmp/rear.KAqDBJCxsWpZSUE/tmp/VERSION /var/tmp/rear.KAqDBJCxsWpZSUE/tmp/README /var/tmp/rear.KAqDBJCxsWpZSUE/tmp/rear-homeserver.log' to rsync location
backup@a8host's password:
Making backup (using backup method NETFS)
Creating tar archive '/var/tmp/rear.KAqDBJCxsWpZSUE/outputfs/homeserver/backup.tar.gz'
Archived 67244 MiB [avg 6580 KiB/sec] OK
Archived 67244 MiB in 10465 seconds [avg 6579 KiB/sec]
Exiting rear mkbackup (PID 4062403) and its descendant processes ...
Running exit tasks
root@homeserver:~# 

Hirdetés

Ha ez megvan, akkor van backupunk. Szükség esetén az ISO-ról bootolva lehet visszaállítani. Az ISO kialakítja a céllemezen a megfelelő filerendszert, csatlakozik a hálózatra, és visszamásolja a készített .tar-ból a backupot. Eddig olyan bugokat láttam, amik LVM illetve több hálókártya esetén okoztak gondot, bár a több hálókártya már az ISO-ban lekezelhető : ki lehet választani a sorrendet kézzel, illetve általában egy hálózat megléte már elég a .tar eléréshez. Ha a visszaállított rendszer ugyanarra a hardverre kerül, mint amiről a backup készült, akkor nyilván semmi gond nem lesz, más hardverre, vagy új virtuális gépre való visszaállítás esetén szinte biztos, hogy kell majd a hálózaton konfigurálni. Utóbbi esetben az is fontos, hogy ugyanolyan boot könyezet legyen, tehát a BIOS/UEFI ugyanolyan módban induljon.

Visszaállítás

Bebootolunk a CD-ről, majd a login alapértelmezésben root, nincs jelszó. (Ezt persze lehet állítani a mentés konfigjában, hogy legyen jelszava, milyen user, stb.)


Boot

Itt volt valami bug, mert ugyan nem ugyanolyan gépre tettem vissza a backupot, mint amiről mentettem, de ugyanolyan hálókártya volt benne. A home szerveremben az Intel e1000e modul kezeli a hálózati kártyát, és a visszaállítás tesztelésére használt virtuális gépbe is ugyanilyen kártya került, mégsem ismerte fel a Rear ISO.

Ki kellett hát adni a
modprobe e1000e
modprobe e1000
dhclient 
parancsokat, és lett háló.

Érdekes módon pl. egy KVM-es virtuálgépről készült mentés szó nélkül felismeri a hálózatot. Ha ugyanarra a hardverre kerül vissza az OS, akkor is fel kell húznia a hálót, mert a használatban levő kernelmodulokat menti a Rear.

A hálózat megléte ugyanúgy egy ip a s vagy ifconfig -a paranccsal ellenőrizhető, mint bármilyen Linuxon, meg hát úgyis elhasal, ha nincs háló ;]

Másik fontos dolog, hogy ugyanazon az útvonalon legyen elérhető a backup, mint amivel az ISO készült, különben lehet felmountolni kézzel a /mnt/local -ba a backupot tartalmazó könyvtárt (nyilván ez a parancs CIFS/SMB esetén működik) :
mount -t cifs -o username=user,password=password //szerver/útvonal/ /mnt/local
Ez amúgy hasznos akkor is, ha nem hálózatról, hanem külső adathordozóról akarunk visszaállni, nyilván akkor egy sima mount parancs megoldja.

Ha sikerült, akkor egy rear recover paranccsal már indul is a visszaállítás. Végigkérdezi a diszk kiosztást, partíciókat, hálózatot, ezeket általában módosítani is lehet. (Az alapbeállításokkal, ha megfelelően néz ki a gép, amire visszatesszük - azaz, nem kisebbek a diszkek, stb. - jónak kell lennie.) A rear mountonly csak felcsatolja a backupot, amiből ki lehet nyerni file-okat egy manuális javításhoz. (Van még pár opció.) Ha hibára fut, akkor a kimenet végén ott lesz a logfile is, amiből megtudhatjuk, mi baja :D
A végén pedig egy reboot paranccsal újraindul a gép, és mára visszaállított OS bootol.


Ha nincs háló, csinálni kell :D


Ilyen kérdésből elég sok van, a legtöbbre persze lehet nyomni a yes meg az 1-et, ha megfelelő a célhardver


És ha itt mind a 60GB-ot visszamásolta, akkor már kész is :DDD

Jó kis cucc ez, elég kényelmes is tud lenni, és az ólajtón is fut (tehát mindegy, van-e a gépen asztali környezet). :K Ha ingyenes GUI-s megoldás kell, akkor a Veeam (bár ez szöveges, de nem paracssoros), Duplicati, ilyesmik is megfelelnek.

  • LordAthis

    csendes tag

    LOGOUT blog

    válasz laed #2 üzenetére

    Szerintem kicsit félreértetted az írásom lényegét.

    Adat:
    Alapból redundáns tárolókat használok, és S.M.A.R.T. figyeléssel (Pl H.D.Sentinel) Linuxon is...
    ..külső meghajtón is el van mentve a fontosabb adat, tehát nem érinti 1-1 újratelepítés az adataimat, plusz nem a rendszer meghajtón vannak.

    Utoljára akkor volt gondom az adatok mentésével, amikor a WinF** nekiállt egy frissítés után a fájlrendszerét összekavarni. :DDD
    Akkor is kizárólag a friss adatokat érintette a dolog, mert rendszeres időközönként mentek.
    (Plusz jó ideje redundáns RAID kötetekkel dolgozok.)

    "Rendszer mentés" - "Adat-mentés" szerintem két különálló fogalom. Illetve illene, hogy az legyen!
    Gyakorlatban az ügyfeleimnek már a Win98 idején is több partíciót készítettem a Win alapú rendszerekhez is!
    (C: Win SYS, - D: Swap - E: Tár/Container)
    Gyakran az E-re került a "Programfiles" könyvtár is, így a telepített (Főleg játékok esetén volt érdekes a dolog) programok saját fájljai és mentései is megmaradtak egy új Win telepítés esetén.
    Ugyanígy 1-1 esetben a "Documentum and Settings" is átkerült az E-re.

    A Swap csere is Linux másolat volt, alapból nem lett töredezett a C, kilépéskor utasítottam (egy REG érték hozzáadásával a telepítés után) hogy törölje, így a boot is gyors lett! (Minimálisan lassabb leállással)

    Ezek 7-8-10-11 esetén is jól működő dolgok. :DDD
    (Rendszeresen utoljára XP és Win7 telepítésekkel foglalkoztam több, mint 10 évvel ezelőtt.
    Mostanában kell majd újra elkezdenem, újra ügyfelezni fogok.)
    Nyilván vannak változások, majd tanulmányozom a témát.

  • laed

    senior tag

    válasz LordAthis #1 üzenetére

    de valahogy sohasem volt szükségem rendszer mentésre, csak WinFos esetén

    Mert a Linux olyan modern, hogy még az adattároló sem mehet tönkre. :)
    Vagy mégse??

  • LordAthis

    csendes tag

    LOGOUT blog

    :C

    Azt nem mondom, hogy nem nyírtam még ki Linuxot, de valahogy sohasem volt szükségem rendszer mentésre, csak WinFos esetén... :K

    Valahogy ugyanazt a formulát alkalmazom több, mint 10 éve, és még a Linux is óriásit fejlődött közben, de azok a fránya alapok, amiket anno egy barátom rakott össze, és tanított meg, még kitartanak.
    (Ja, és természetesen amiket még olvastam/tanultam hozzá.)
    Több partíció, nem automatikus telepítés, néhány beállítás, aztán mindig megtalálja, hogy volt már fent rendszer, voltak programok, beállítások.
    Rákérdez, hogy visszategye-e.
    Aztán az esetek többségében (Tényleg, nem is emlékszem már másra!), nemhogy mindent visszapakol, de még a programok is ott nyílnak meg, ahol legutoljára befejeztem a dolgomat.
    Volt olyan, hogy az összeomlott rendszer gépestől két évre félre volt téve.

    A VGA drivert és beállításokat bactam el, keményen, grafikus felület összeomlott. (Ezt mondjuk rendszeresen sikerült anno...)
    Új telepítés, frissebb verziójú Debian (merthogy azt nem írtam, hogy a legtöbbször a Debian és a kistestvére futott nálam) letöltve, azzal, mégis minden ment onnan, ahol befejeztem.

    Természetesen felhasználói fájlok külön partíción, Swap, stb is, szépen beállítva minden, és minden esetben ugyanazok beállítva. (Felhasználói név, jelszavak, titkosított kötet, stb.)

    Pedig nem vagyok egy nagy Linux gugu.

    Ezzel a mentésre használható temérdek alkalmazással most megleptél!

Tovább a fórumba.