
Tengo un sistema de archivos para un dispositivo que estoy programando y del que me gustaría hacer una copia exacta. Lo ideal sería que esta copia fuera idéntica a la carpeta desde la que se copió. He intentado usar cp -r
cp -a
y rsync -azvP
tratar de lograr esto. Sin embargo, cada uno da como resultado una carpeta con un tamaño diferente (usando du -s
) y, en última instancia, aunque mi dispositivo se ejecute fuera de la carpeta original, no se ejecutará desde la que copié.
- ¿Qué se queda fuera que los comandos que he usado no tienen en cuenta?
- ¿Es posible mantener todo idéntico al copiar un sistema de archivos/carpeta? Si es así, ¿cómo haría para hacerlo?
PD: publiqué preguntas similares enDesbordamiento de pilapero rápidamente me di cuenta de que lo había preguntado en el intercambio equivocado.
Editar: Esto puede no ser útil, pero no importa qué método use, el directorio copiado siempre provoca que la máquina en cuestión entre en Kernel Panic con el siguiente resultado.
VFS: No se puede montar root fs a través de NFS, probando con disquete. VFS: No se puede abrir el dispositivo raíz "nfs" o Unknown-block(2,0). Agregue una opción de arranque "root=" correcta; aquí están las particiones disponibles: 1f00
64 mtdblock0 (¿controlador?) 1f02 64 mtdblock2 (¿controlador?) 1f04 2432 mtdblock4 (¿controlador?) 1f05 128 mtdblock5 (¿controlador?) 1f06 4352 mtdblock6 (¿controlador?) 1f07 204928 mtdblock7 (¿controlador? ) 1f08 50304 mtdblock8 (¿controlador?) 0800
8388608 controlador sda: sd Kernel pánico - no se sincroniza: VFS: no se puede montar root fs en bloque desconocido (2,0)
Respuesta1
Generalmente uso una de las siguientes alternativas:
rsync -aHAX
(agregue v para mayor detalle) se asegura de conservar cualquier estructura de enlace y atributos x en la carpeta de destino mientras copia. No olvidea
que significa archivar y conservar el tiempo, la propiedad y los permisos.- Simple
tar cvf
(no comprimirlos para ahorrar tiempo, solo alquitranarlos) es lo que uso si el primero no cumple con lo que necesito por cualquier motivo y no tengo tiempo, pero siempre pruebo el primero.
Para comprobar que todo salió como debería, puedes ejecutar diff -r <folder1> <folder2>
después si quieres.
Respuesta2
Al leer su respuesta en los comentarios, parece que posiblemente esté intentando copiar la carpeta raíz ("Mi dispositivo no arranca usando el directorio copiado"). En ese caso hay varias cosas que debes hacer.
$ cd /
$ mkdir backups
$ tar -cvpf /backups/fullbackup.tar --directory=/ --exclude=proc --exclude=sys \
--exclude=dev/pts --exclude=backups .
Una vez que haya copiado la carpeta raíz en el nuevo sistema, deberá actualizar grub antes de que arranque.
$ grub-install --recheck /dev/sdX (Where X is the partition number)
$ update-grub
Respuesta3
Tu podrías intentarFSArchiver. Es el sucesor de la imagen parcial similar, que ahora no se mantiene. He usado partimage y FSArchiver en el pasado y ambos han funcionado bien. Hasta donde yo sé, ambos hacen copias de un sistema de archivos que es lo más idéntico posible al original. Creo que FSArchiver es un poco más poderoso que partimage. Por ejemplo, funciona con ext4, mientras que partimage no. Verla tabla de comparación FSArchiver/partimage.
Respuesta4
Depende un poco de lo que quieras decir con "idéntico".
- Simplemente hacerlo
rsync
estaría bien la mayor parte del tiempo. A veces desea utilizartar
para empaquetar todo en un archivo y extraerlo en otro lugar. - Si desea un clon del sistema de archivos completo, puede utilizarlo
dd
para copiar todo el sistema de archivos.
Si tiene algún medio para depurar su dispositivo, intente averiguar cuál es exactamente el problema por el cual actualmente no se ejecuta.