# Hacer backup

## Moses22

¿Qué tal, cracks? 

Me gusta toquetear y aprender. Entonces, bueno, ya mi gentoo totalmente operativo y en uso, peor al hacer pruebas y tal, lo mas probable es que me cargue el sistema alguna vez.

Estaba pensado en instalar un segundo gentoo en otra particion del mismo HDD para hacer un backup. ¿ Puedo clonar mi sistema a la particion libre?

¿Es complicado la configuracion de Grub?

----------

## pelelademadera

tenes varias opciones... el comando dd

```
dd if=/dev/sd** of=/devsd##
```

 siendo sd** el origen y ## el destino del backup

el mayor problema es que necesitas 2 discos de igual tamaño.

otra opcion es cp -a

montas el origen y el destino y luego

```
cp -a /mnt/origen /mnt/destino
```

ventajas, solo necesitas el espacio usado del disco en el volumen destino.

clonezilla o similares.

podes utilizar un tar.gz o similar comprimido. si bien no va a servirte al vuelo para salvar en caso de algun problema.

creo que lo mas sencillo es el metodo del cp -a, y la linea de grub solamente tenes que cambiar el root, (siempre tene en cuenta que en caso de cambiar el kernel y borrar el viejo, no te va a funcionar salvo que vayas actualizando el backup. con borrar el viejo no me refiero a hacer el unmerge o un deepclean, sino borrar el initrd especifico de /boot.

una vez tengas el backup, podes ir actualizando mediante un rsync.

tene en cuenta que todos los metodos sirven cuando no estas booteando de ese sistema, basicamente tenes que bootear un live cd/usb o similar para ejecutarlo

----------

## chrootman

Hola,  lo he clonado varias veces con gparted sin ningún problema, además de que no se demora nada y es bastante sencillo, puedes reacomodar todo, agrandar partición boot, meter una partición dentro de una extendida, etc, lo único en que hay que tener cuidado es saber donde está (X) el disco clonado y reinstalar el grub, puedes tener dos gentoo, pero tienes que crear un nuevo UUID para ese disco con el mismo gparted o desde el terminal y volverlo a reasignar en fstab ese nuevo UUID. 

```
# blkid | grep UUID

# umount /dev/sdbX

# tune2fs -U random /dev/sdbX

# blkid | grep sdbX

# mount /dev/sdb1
```

```
# sudo grub-install --recheck /dev/sdX

# grub-mkconfig -o /boot/grub/grub.cfg
```

Para variar un poco tenía funtoo y accedía mediante chroot desde uno a otro y viceversa hasta que me di cuenta que como no podía desenmascarar ciertos paquetes en funtoo me quedé sólo con gentoo y a veces lo clono a otro disco para hacer pruebas, 

```
# mkdir /mnt/funtoo

# cd /mnt/funtoo/

# mount /dev/sda3 /mnt/funtoo 

# mount /dev/sda1 /mnt/funtoo/boot

# mount /dev/sda4 /mnt/funtoo/home

# mount --rbind /dev /mnt/funtoo/dev

# mount --make-rslave /mnt/funtoo/dev

# mount -t proc /proc /mnt/funtoo/proc

# mount --rbind /sys /mnt/funtoo/sys

# mount --make-rslave /mnt/funtoo/sys

# mount --rbind /tmp /mnt/funtoo/tmp

# chroot /mnt/funtoo /bin/bash

export PS1="(chroot) $PS1" 
```

Si te cargas el sistema alguna vez puedes hacer respaldos con timeshift, rsync hacia otra partición, tienes que instalar esas dependencias

```
# emerge --ask app-backup/timeshift

# emerge libgdata

# emerge dev-libs/libgee

    > libgee

    > libvte

    > json-glib

    > rsync

$ timeshift-gtk
```

O bien

```
$ wget https://github.com/teejee2008/timeshift/releases/download/v19.01/timeshift-v19.01-amd64.run 

# chmod +x timeshift-v19.01-amd64.run

# ./timeshift-v19.01-amd64.run
```

Por ejemplo una vez me cargue funtoo com un error sin solución y lo salvé desde gentoo así:

```
# blkid

# timeshift --restore --snapshot '2020-07-17_17-15-26' --target /dev/sdb3
```

Luego tienes que darle el número del dispositivo donde estaba "/", "boot" ,"home" y donde estaba el grub, en mi caso era sdb. En el caso de que si puedas acceder a timeshift gráfico todo es automático, solamente resturas con una de las imágenes y listo!

Para desmontar:

```
# exit

# umount -lf /mnt/funtoo/dev

# umount -lf /mnt/funtoo/sys

# umount -lf /mnt/funtoo/tmp

# umount -lf /mnt/funtoo/proc

# umount -lf /mnt/funtoo/home

# umount -lf /mnt/funtoo/boot

# umount -lf /mnt/funtoo/

# reboot
```

Last edited by chrootman on Sun Oct 24, 2021 12:51 am; edited 1 time in total

----------

## pcmaster

 *Moses22 wrote:*   

> ¿Qué tal, cracks? 
> 
> Me gusta toquetear y aprender. Entonces, bueno, ya mi gentoo totalmente operativo y en uso, peor al hacer pruebas y tal, lo mas probable es que me cargue el sistema alguna vez.
> 
> Estaba pensado en instalar un segundo gentoo en otra particion del mismo HDD para hacer un backup. ¿ Puedo clonar mi sistema a la particion libre?
> ...

 

Te recomendaría que te instalaras un hipervisor (por ejemplo, virtualbox) y los experimentos los hagas en una máquina virtual, que puedes re-instalar las veces que quieras sin cargarte el sistema principal.

----------

## papu

 *Moses22 wrote:*   

> ¿Qué tal, cracks? 
> 
> Me gusta toquetear y aprender. Entonces, bueno, ya mi gentoo totalmente operativo y en uso, peor al hacer pruebas y tal, lo mas probable es que me cargue el sistema alguna vez.
> 
> Estaba pensado en instalar un segundo gentoo en otra particion del mismo HDD para hacer un backup. ¿ Puedo clonar mi sistema a la particion libre?
> ...

 

no se si es para lo que quieres hacer:

yo lo que uso es rsync para mis backups y copias incrementales,  tarde mucho en encontrar la instruccion para hacerlo y configurar todo segun mis gustos pero va muy bien , ya me ha salvado 3 veces minimo por haber jodido algo grave, en 10 min se instala  yo uso   una particion para boot y otra para el resto.

```
para backup:      sudo rsync -aAXHS --info=progress2 --exclude-from=~/carpetas_excluidas  / /destino

para restituirlo: sudo rsync -aAXHS --info=progress2 /destino  /
```

el fichero carpetas_excluidas es para filtrar lo que no quieres hacer backup, en mi caso filtro tolo lo que no es necesario para que funcione el s.o tras restituir la copia asi como hd montados en /mnt, seria algo asi:

```
 

~ $ cat ~/carpetas_excluidas

/dev/*

/home/papu/.VirtualBox/*

/home/papu/.cache/*

/home/papu/.config/falkon/profiles/default/File System/*

/home/papu/.config/skypeforlinux/Cache/*

/home/papu/.local/share/baloo/*

/home/papu/.local/share/Steam/*

/home/papu/.local/share/Trash/*

/home/papu/.local/share/wineprefixes/*

/home/papu/.svn/*

/home/papu/ViewPower/log/*

/home/papu/.wine/*

/home/papu/Juegos/*

/lost+found/*

/media/*

/mnt/share/*

/mnt/sources/*

/mnt/virtualbox/*

/proc/*

/root/.cpan/*

/run/*

/sys/*

/tmp/*

/usr/src/*

/var/cache/*

/var/log/*

/var/tmp/*

```

https://www.vicente-navarro.com/blog/2008/01/13/backups-con-rsync/

 :Smile: 

----------

## chrootman

Buen comando, el otro día estaba probando algo parecido con un programa que ni me acuerdo su nombre, uno que es más para respaldar que para salvar el sistema, aunque igual se podía omitir, estilo timechine.  Esto también. Quería agregar algo, en archlinux hay un patch que resuelve el problema de "Timeshift will only start in Live USB Mode":

```
$ timeshift-launcher

E: ts: Failed to get partition list.

App config loaded: /etc/timeshift.json
```

Así que probé con una versión más nueva agregando el overlay guru

```
$ layman -a guru
```

Lo enmascaré:

/etc/portage/package.mask

```
*/*::guru
```

Desenmascaré:

/etc/portage/package.unmask 

```
app-backup/timeshift::guru
```

Pero continuaba el problema, así que enmascaré:

```
>=sys-apps/util-linux-2.37
```

E instalé la versión sys-apps/util-linux-2.36.2

Y ahora puedo ejecutarlo como siempre  :Smile: 

----------

## papu

 *Quote:*   

> Timeshift is similar to applications like rsnapshot, BackInTime and TimeVault but with different goals. It is designed to protect only system files and settings. User files such as documents, pictures and music are excluded. This ensures that your files remains unchanged when you restore your system to an earlier date. If you need a tool to backup your documents and files please take a look at the excellent BackInTime application which is more configurable and provides options for saving user files

 

puedes probar al backintime que dice que es más completo y esta disponible sin overlay , todos creo se basan en rsync

 :Wink: 

----------

## chrootman

```
$ backintime-qt

Back In Time

Version: 1.2.1

Back In Time comes with ABSOLUTELY NO WARRANTY.

This is free software, and you are welcome to redistribute it

under certain conditions; type `backintime --license' for details.

Traceback (most recent call last):

  File "/usr/lib/python3.9/site-packages/dbus/bus.py", line 177, in activate_name_owner

    return self.get_name_owner(bus_name)

  File "/usr/lib/python3.9/site-packages/dbus/bus.py", line 361, in get_name_owner

    return self.call_blocking(BUS_DAEMON_NAME, BUS_DAEMON_PATH,

  File "/usr/lib/python3.9/site-packages/dbus/connection.py", line 652, in call_blocking

    reply_message = self.send_message_with_reply_and_block(

dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NameHasNoOwner: Could not get owner of name 'net.launchpad.backintime.serviceHelper': no such name

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "/usr/share/backintime/qt/app.py", line 1592, in <module>

    cfg = backintime.startApp('backintime-qt')

  File "/usr/share/backintime/common/backintime.py", line 521, in startApp

    return getConfig(args, False)

  File "/usr/share/backintime/common/backintime.py", line 669, in getConfig

    cfg = config.Config(config_path = args.config, data_path = args.share_path)

  File "/usr/share/backintime/common/config.py", line 279, in __init__

    self.setupUdev = tools.SetupUdev()

  File "/usr/share/backintime/common/tools.py", line 1715, in __init__

    conn = bus.get_object(SetupUdev.CONNECTION, SetupUdev.OBJECT)

  File "/usr/lib/python3.9/site-packages/dbus/bus.py", line 241, in get_object

    return self.ProxyObjectClass(self, bus_name, object_path,

  File "/usr/lib/python3.9/site-packages/dbus/proxies.py", line 250, in __init__

    self._named_service = conn.activate_name_owner(bus_name)

  File "/usr/lib/python3.9/site-packages/dbus/bus.py", line 182, in activate_name_owner

    self.start_service_by_name(bus_name)

  File "/usr/lib/python3.9/site-packages/dbus/bus.py", line 277, in start_service_by_name

    return (True, self.call_blocking(BUS_DAEMON_NAME, BUS_DAEMON_PATH,

  File "/usr/lib/python3.9/site-packages/dbus/connection.py", line 652, in call_blocking

    reply_message = self.send_message_with_reply_and_block(

dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1
```

Ni idea sobre que hacer. Luego encontraré alguna solución. Uso systemd.

----------

## chrootman

Se supone que lo de backtime se soluciona con python3_8 y dev-python/PyQt5 python_targets_python3_7, lo cual no quise hacer, en arch funciona con python3_9. También podría funcionar editando /usr/share/backintime/qt/serviceHelper.py dejando en la primera sentencia from PyQt5.QtCore import QCoreApplication. Tampoco resultó ser una buena solución enmascarar util-linux-2.37 por errores también con reglas de udev, issues de dbus, lo típico, en lo referente a timeshift. Si a alguien le aparece "This operation requires a freshly checked filesystem" cuando quiere cambiar el UUID no funciona chequearla desde el propio gparted sino que ejecutar desde el terminal fsck.ext4 -fy /dev/x o bien si en la partición original tenía un flag por ejemplo /boot u otro, dejarla igual en la del destino. 

```
/dev/*

/home/chrootman/.VirtualBox/*

/home/chrootman/.cache/*

/home/chrootman/.local/share/Trash/*

/home/chrootman/Downloads/*

/lost+found/*

/media/*

/mnt/rsync_respaldo/*

/mnt/backup/*

/mnt/arch2/*

/mnt/funtoo/*

/mnt/gentoo2/*

/mnt/ntfs/*

/mnt/respaldo/*

/mnt/hfs/*

/mnt/timeshift/*

/mnt/veracrypt/*

/mnt/windows/*

/proc/*

/root/.cpan/*

/run/*

/sys/*

/tmp/*

/usr/src/*

/var/cache/*

/var/log/*

/var/tmp/*

/var/ccache/*

/var/lib/snapd/cache/*

/home/chrootman/.local/share/baloo/*

/home/chrootman/.local/share/TelegramDesktop/* 

/home/chrootman/Standard Notes Backups/*

#/home/chrootman/.config/google-chrome

/home/chrootman/.wine/*
```

Si escribo excluidas sola me aparece error code 11 o algo, así que lo escribí así:

```
sudo rsync -aAXHS --info=progress2 --exclude-from=/home/chrootman/excluidas  / /mnt/rsync_respaldo
```

Lo otro es que hay que omitir también el destino porque o sino recursivamente se va llenando el destino montado.

En veracrypt se puede llenar incrementalmente con rsync no hay necesidad de escribir unmask=002 porque eso no es para ext4.

```
rsync -aAXHS --info=progress2 /media/veracrypt1/* /mnt/gentoo2
```

En pocos segundos ya tenía mi sistema encriptado completo y clonado para subirlo o restaurarlo donde quisiera. Me sirvió para deshacerme de una partición boot y dejar todo en el root.

Para sincronizar un contenedor con un host remoto, me topé con este comando para copiar un archivo y luego sincronizar:

```
$ rsync -v --progress --checksum --inplace test.tc $REMOTE_HOST:
```

```
-u, --update                

omitir archivos que son más nuevos en el receptor

-t, --times                 

preservar los tiempos de modificación
```

Incluso se pueden dividir los containers y subirlos a diferentes lados

```
lxsplit -s <archivo> 1000M
```

```
emerge --ask app-misc/lxsplit
```

Aquí hay scripts interesantes de rsync

En otro sistema operativo usaba cloudmounter o mount duck, ahora voy a ver como usar rclone u otro.

https://wiki.gentoo.org/wiki/Dm-crypt/es

----------

