Esta pregunta responde a la pregunta de cómo uso una computadora externa para crear una copia de seguridad de mi RPi.
Me pregunto si puedo crear una imagen de respaldo de la tarjeta SD que está actualmente en uso, y copiarla en un archivo en un dispositivo de almacenamiento USB. es posible? Si no, ¿hay alguna forma de crear una copia de seguridad de un RPi sin involucrar a otra computadora?
dd
, investiguersync
.dd
copia con un tamaño de bloque apropiado probablemente sea más rápido para una copia "nueva". Hacer una copia de archivo por archivo en medios flash / SD es probablemente una mala idea.Respuestas:
Aquí hay una introducción al uso
rsync
para realizar copias de seguridad en el Pi. Una vez que se crea el respaldo inicial, mantenerlo actualizado de esta manera es mucho más rápido que extraer constantemente toda la imagen. Puede hacer esto en un disco duro local o en una red.En realidad, no desea una copia completa de un sistema en ejecución como respaldo, ya que algunas de las cosas aparentemente en el sistema de archivos solo existen en tiempo de ejecución. Incluir eso en una copia de seguridad y luego usarlo para recrear una imagen más tarde puede crear problemas para usted.
Hay algunas otras excepciones también.
rsync
puede aceptar una lista de patrones ( glob ) para excluir, y esos se pueden leer desde un archivo, así que primero veamos qué debería estar en dicho archivo. Tenga en cuenta que las entradas son de la forma/directory/*
y no/directory
. Esto se debe a que queremos que existan, pero no queremos copiar nada en ellos.Estos realmente no existen en el disco. Son una interfaz para el núcleo, que los crea y los mantiene en la memoria . Si copia estos y luego los copia de nuevo en un sistema y lo inicia, será (en el mejor de los casos) sin sentido, ya que el núcleo los usa como puntos de montaje para las interfaces [Si desea ver qué sucede cuando monta una partición del sistema de archivos en un directorio con datos, intente. Funciona y no hará ningún daño, pero las cosas que estaban en el directorio ahora son inaccesibles.]
Tenga en cuenta que es crítico que existan los puntos de montaje
/sys
y/proc
. Pero no deberían contener nada. Próximo:El
dev
directorio no es exactamente lo mismo queproc
ysys
pero para nuestros propósitos se encuentra. Si cree que debe guardar esto para poder tener los mismos nodos de dispositivo en su copia de seguridad o algo así, está equivocado . No te molestes. No copiedev
. Hace mucho tiempo, Linux funcionaba de esa manera, pero ya no lo hace.Este es un caso especial con la mayoría (quizás todas) de las distribuciones específicas de Pi, como Raspbian. En realidad, es un punto de montaje para la primera partición, vfat. Vamos a lidiar con eso por separado. Hagas lo que hagas, no te molestes en incluirlo aquí, porque de nuevo, es un punto de montaje.
/run
generalmente tampoco está en el disco, está en la memoria. Quizás también/tmp
podría serlo (esto ahorraría un poco de acción de la tarjeta SD), pero en cualquier caso, como los nombres implican, estos no son lugares para almacenar datos persistentes. Las aplicaciones que los usan esperan que se eliminen en cada arranque.Esto es importante especialmente si planea realizar una copia de seguridad en un disco duro o una memoria USB y el dispositivo está en
/mnt
o/media
(el montaje automático tiende a usar este último), porque si no excluye la ubicación de esos dispositivos en el sistema de archivos, lo hará cree un bucle que haga una copia de seguridad del contenido de la unidad, hasta que se quede sin espacio. Creo quersync
podría ser lo suficientemente inteligente como para detectar algo tan tonto, pero trate de evitar probar la premisa.En la copia de seguridad real: cree un directorio para hacer una copia de seguridad en el disco duro montado localmente, USB, etc., por ejemplo, "pi_backup". Alternativamente, puede hacer una copia de seguridad en una ubicación remota a través de
ssh
(consulte a continuación) o utilizando un sistema de archivos montado en la red, pero esto probablemente tomará un tiempo la primera vez.Si el archivo que contiene la lista para excluir es
/rsync-exclude.txt
1 y su unidad es/mnt/usbhd
, para hacer la copia de seguridad real:Observe que hay una barra inclinada final
pi_backup/
.Esto tomará un tiempo y producirá una gran cantidad de resultados (si desea examinar eso en un registro, agregue
> rsync.log
).--delete
no tiene sentido la primera vez, pero para mantener la copia de seguridad actualizada úsela. Esto garantiza que las cosas que luego eliminó en el Pi también se eliminen de su copia de seguridad. Laa
recursividad conjuntos en los directorios y se asegura de todos los atributos de archivo partido.-H
es preservar los enlaces duros 2 ,v
es detallado , por lo que obtienes algo de salida (de lo contrariorsync
es silencioso). Miraman rsync
para más.Hay un acceso directo mediante el cual puede omitir el
--exclude-from
archivo. Si está seguro de que todas las cosas que no desea copiar (/tmp
etc.) están en sistemas de archivos separados, puede usar:-x
ha sido insertado. Esta es la forma abreviada de--one-file-system
, que le dice quersync
no cruce los límites del sistema de archivos. Personalmente, prefiero el--exclude-from
, pero por ejemplo, Raspbian predeterminado,--one-file-system
funcionará bien. Puedes usar ambos si quieres tener mucho-x
cuidado: DEso no es una copia de seguridad completa. Es suficiente si no ha puesto nada
boot
y está de acuerdo con usar la copia de seguridad para restaurar el sistema al pegar la tarjeta en una computadora y ejecutar:También puede hacer esto con una tarjeta con una nueva imagen (suponiendo que sea la misma que su imagen base), aunque eso es un poco ineficiente si tiene que crear la imagen (porque luego sobrescribirá la mayor parte). También puede conectar otra tarjeta SD a través de un adaptador USB con dicha imagen y utilizar el método anterior para mantener una tarjeta duplicada.
Si ha agregado cosas
/boot
(por ejemplo, un núcleo personalizado), incluido/boot/config.txt
, también querrá respaldar eso (bastante simple, no hay mucho). Simplemente hágalo por separado, y cuando restaure, esas cosas irán en la primera partición.Vea aquí si desea crear una imagen de estilo Raspbian en blanco en la que luego podría hacer una copia de seguridad. Puede usar una metodología similar para crear una tarjeta de estilo Raspbian vacía: en lugar de tratar con un
.img
archivo, estaría tratando con un dispositivo real (por ejemplo/dev/sdb
), lo que significa que todo lo que tiene que hacer es crear la tabla de particionesfdisk
y luego formato/dev/sdb1
ysdb2
(o lo que sea) conmkfs
.¡Pero copiar toda la imagen es más fácil! ¿Por qué molestarse con esto?
No es tan dificil; Restablecí a una tarjeta en blanco (formateada según el último enlace) en 10 minutos. Sí, solo usarlo
dd
todo es más simple (si encuentra cosas como palabras confusas ...), PERO luego toma bastante tiempo cada vez que desea actualizar su copia de seguridad porque debe hacer el 100% de ella cada vez. Utilizandorsync
, una vez que existe una copia de seguridad, la actualización es mucho más rápida, por lo que puede configurarlo para que ocurra sin problemas todos los días a través de cron. Sobre una red incluso. Cada seis horas Cuanto más lo haga, menos tiempo le llevará.rsync
víassh
Aquí hay un ejemplo:
"Opciones" sería, por ejemplo,
-av --delete --exclude-from=/rsync-exclude.txt
y "opciones ssh" es lo que normalmente usa (si es que lo hace). Debe tener acceso root a travésssh
de hacer esto a los efectos de una copia de seguridad del sistema (fijadoPermitRootLogin=yes
en/etc/ssh/sshd_config
y reiniciar el servidor).1 Deberías conservar este archivo. Puede poner comentarios en las líneas que comienzan con
#
o;
. Esto podría incluir elrsync
comando real , que se puede copiar y pegar más tarde para que no tenga que recordarlo cada vez.2 Gracias a Kris por señalar
rsync
que no hace esto automáticamente.fuente
mkdir /tmp/backupable && mount --bind / /tmp/backupable
y rsync eso? Eso también tiene la ventaja de hacer una copia de seguridad de los datos almacenados en lugares que están "sombreados" por algo montado allí.--exclude-from
es una mejor idea. Si tiene tiempo, podría escribir esto como una respuesta separada, tiene mi voto y puedo hacer referencia a eso. Esta respuesta es bastante larga..img
puedes; Esto y esto debería ayudar a explicar cómo están estructurados y pueden crearse.Un script de trabajo de la Comunidad Raspberry hecho por un miembro allí.
Puede reutilizar y ajustar el código como quiera. Está bien documentado y se explica por sí mismo.
Considere agregar comentarios al foro original o publique su propia versión para ayudar a madurar el contenido. Dale un poco, dale un poco.
* Y gracias por devolver AndersW (Instrucciones para la escritura GIT)
fuente
rsnapshot
suena promocionalrsync
es el camino a seguir; cuando tenga tiempo mañana agregaré una respuesta.rsnapshot
También vale la pena investigar.He adaptado la respuesta @goldilocks en rsync para hacer una copia de seguridad en el pi. Respaldo a una
ext4
partición en un HDD montado en el Pi. Si el HDD no está montado, rsync se copiaría en el directorio de montaje (hasta que la tarjeta SD esté llena). Si el HDD no está montado enrw
modo, se generan numerosos mensajes de error. Ninguno de estos es deseable, así que verifico que mi partición esté montada enrw
modo antes de continuar.NOTA 2015-03-03 Modifiqué mi respuesta para copiar con precisión los enlaces duros. El original funcionó, pero convirtió muchos enlaces en archivos. Además de desperdiciar espacio, esto compromete muchos usos que suponen que los enlaces duros están en su lugar. (Mi imagen actual tiene 869 enlaces, muchos en Raspbian).
Mi guión para hacer esto sigue. (Mi partición está
PiData
montada en/mnt/PiData
Restaurar (o actualizar otra Pi) con lo siguiente: -
He mejorado
rsync-exclude.txt
para eliminar archivos innecesarios.El primer grupo son los directorios documentados por @goldilocks https://raspberrypi.stackexchange.com/users/5538/
El segundo grupo son los archivos y directorios creados por OS X cuando accedo a mi Pi usando AFP (Apple Filing Protocol). (Normalmente son invisibles en OS X, pero no en Raspbian. En cualquier caso, no hay necesidad de hacer una copia de seguridad). Incluso si nunca usa AFP, no le harán daño.
El tercer grupo son archivos que no necesitan copia de seguridad (y ciertamente no se copian a otra Pi). Ejemplos fake-hwclock.data, informes RPi-Monitor. Probablemente tendrás otros.
fuente
Tengo tres Pis corriendo en mi red local y necesito hacer una copia de seguridad de ellos en una base regular con cron cuando están en funcionamiento. Es por eso que creé un script que es capaz de crear copias de seguridad dd, tar y rsync y restaurarlas. Prefiero usar rsync para mis copias de seguridad, pero otras personas prefieren dd o tar. Ya lo usa mucha gente. Espero que sea útil para otros también :-) raspibackup - Raspberry crea copias de seguridad de sí mismo
fuente
Aquí está nuestra herramienta estable para tales propósitos: https://github.com/aktos-io/aktos-dcs-tools
Esta herramienta se escribe en
make ssh
las conexiones,make backup-root
,make mount-root
desde lugares remotos en mente al principio, y después se añaden sesiones locales. Por lo tanto, admite copias de seguridad locales, copias de seguridad remotas directas, copias de seguridad remotas proxy. Las copias de seguridad se realizan de forma incremental (solo se transfieren los diferenciales) y los directorios de copia de seguridad son independientes (simplemente elija un directorio / versión para restaurar, cualquier directorio tiene una copia de seguridad completa). Por supuesto, tiene versiones (backup.last-0 es la más nueva). Puede interrumpir el proceso de copia de seguridad en cualquier momento y continuar más tarde.Aquí están las instrucciones para su problema específico:
EDITAR
Ahora hay un nuevo objetivo agregado: puede crear una tarjeta SD física a partir de sus copias de seguridad con un comando:
Siga las instrucciones, cree su tarjeta SD, inicie RaspberryPi con esta tarjeta SD recién creada.
fuente
Aquí hay un enfoque completamente diferente. Puede usar LVM ( L gico V olumen M anager) para hacer copias de seguridad coherentes. Además de otras mejoras como agregar, expandir y reducir el almacenamiento fácilmente o restaurar el sistema operativo a un estado anterior desde una instantánea, también puede hacer copias de seguridad. No debe preocuparse por los archivos dinámicos modificados durante la copia de seguridad, configurar los sistemas de archivos de solo lectura, excluir directorios específicos u otra cosa. Con LVM , simplemente crea una instantánea, monta esta instantánea y realiza una copia de seguridad con el método que prefiera. Puede hacer una copia con
cp -a
, hacer un espejo conrsync
, hacer un archivo contar
o hacer una imagen condd
. Suponiendo que haya montado un dispositivo de respaldo/mnt/usbhd/pi_backup/
, puede hacer, por ejemplo:Solo se necesita un poco de tiempo para configurar LVM . Para hacerlo, puede ver copias de seguridad e instantáneas fáciles de un sistema en ejecución con LVM .
fuente
Encontré una herramienta de respaldo que hace imágenes instalables.
También tiene utilidades para montar y reducir imágenes.
Esto puede ser útil para otros.
La documentación que viene con ella es muy breve, así que noto lo siguiente:
ext4
partición formateada en su Pi en/mnt
o/media
(cualquier formato que permita archivos grandes y sea compatible con Pi, por ejemplo, se puede usar exFAT o una unidad de red)./mnt/Image/BusterBackup.img
He modificado ligeramente el original (para copiar puntos de montaje), para calcular correctamente los desplazamientos y tamaños de partición y he añadido un par de comentarios.
fuente
Abra la terminal y escriba 'lsblk -f'.
Esto debería mostrar todos los dispositivos de almacenamiento conectados.
Luego escriba 'dd if = / dev / [el NOMBRE de su tarjeta sd] bs = 1M'.
Esto llevará un tiempo, por lo que es posible que desee ejecutarlo en segundo plano.
Esta es exactamente la misma forma en que hace una copia de seguridad de su tarjeta SD en Linux.
fuente