
Compilé un rootfs de Linux en una carpeta en un servidor remoto. Necesito descargarlo y colocarlo en una tarjeta SD en una computadora local y usarlo para iniciar una computadora integrada. ¿Cómo puedo conservar todos los atributos de los archivos al descargarlos? Gracias.
Respuesta1
tar
debería poder hacerlo. Almacena información sobre propiedad y permisos y es recursivo de forma predeterminada. Entiendo que, al final, la propiedad de los archivos en la tarjeta SD no debe depender de los usuarios o grupos definidos en el servidor, ni de los usuarios o grupos definidos en la computadora local; entonces --numeric-owner
es una buena idea.
Mientras extraes, necesitas usar las banderas --same-owner
y --same-permissions
(que son las predeterminadas si lo haces como root).
Si tiene la autoridad en el servidor remoto para montar un archivo como un dispositivo de bloque ( losetup
), puede crear un sistema de archivos dentro del archivo mount
y luego implementar sus archivos en él para que "conserven todos los atributos" ( sudo cp -a
). Luego (después de umount
y sync
) losetup -d
descarga dicho archivo únicamente y lo envía sin formato a una partición de una tarjeta SD local (con dd
, o lo cp
que cat
sea) o lo monta localmente y recupera los archivos.
Tenga en cuenta que muchas mkfs
herramientas pueden funcionar con un archivo normal. Además, las implementaciones modernas mount
pueden montar un archivo normal de forma semidirecta (haciendo todo losetup
lo relacionado con usted). Probablemente no tengas que utilizarlo explícitamente losetup
. Puede ser como:
# on the server
truncate -s <desired_image_size> image
mkfs.<type> <options> image
sudo mount image <mountpoint>
sudo cp -a <directory>/* <mountpoint>/ # warning: * doesn't match dotfiles
sudo umount <mountpoint>
Incluso si necesita pasos adicionales que no se pueden realizar en el servidor, descargar archivos en forma de un sistema de archivos completogarantíasque todas las funciones admitidas por el sistema de archivos permanecerán durante la transferencia. Su preocupación es preservarlos mientras los copia desde/hacia otro sistema de archivos, pero la transferencia en sí no puede alterarlos. En algunos casos, esto puede ser mejor que tar
, especialmente si necesita características "exóticas" (aunque no parece ser el caso aquí). Por tanto este método es el más genérico.