Transferir sistema operativo de un medio a otro

Transferir sistema operativo de un medio a otro

Tengo una unidad USB con Manjaro ARM (que se usa para el sistema Raspberry Pi 4) y una tarjeta SD vacía. ¿Existe alguna forma posible de transferir el sistema operativo desde una unidad USB a una tarjeta SD, conservando al mismo tiempo las particiones? Si es posible, ¿se puede hacer mientras Manjaro se está ejecutando?

Aquí está el resultado de lsblk:

$ lsblk # partitions on USB Drive
sda      8:0    1  14.9G  0 disk 
├─sda1   8:1    1 213.6M  0 part /boot
└─sda2   8:2    1  14.7G  0 part /
zram0  254:0    0  11.2G  0 disk [SWAP]

Respuesta1

  1. ¿Existe alguna forma posible de transferir el sistema operativo desde una unidad USB a una tarjeta SD, conservando al mismo tiempo las particiones?

Sí, suponiendo que la tarjeta SD sea al menos tan grande como la unidad USB. Puede ejecutar blockdev --getsize64 /dev/sdapara obtener el tamaño de su unidad USB en bytes y, al cambiar la ruta del dispositivo a la tarjeta SD, puede asegurarse de que tenga al menos la misma cantidad de bytes.

Quizás no sea muy probable que los dispositivos sean exactamente del mismo tamaño, por lo que preferiría crear una tabla de particiones idéntica (con los mismos números de partición para minimizar las molestias) manualmente en la tarjeta SD. Esto garantiza que el espacio adicional en disco potencialmente disponible en la tarjeta SD se pueda utilizar posteriormente, por ejemplo, para ampliar la partición raíz o crear nuevas particiones. Úselo sfdisk -l /dev/sdapara obtener una lista de particiones en /dev/sda en unidades de sectores, y luego use fdisk /dev/sdbpara crear las mismas particiones en la tarjeta SD (suponiendo que su dispositivo de tarjeta SD sea /dev/sdb, actualice según sea necesario).

Después de recrear las particiones, puede copiar el contenido de cada partición una a la vez.

  1. Si es posible, ¿se puede hacer mientras Manjaro se está ejecutando?

Sí, pero en ese caso debes montar los sistemas de archivos de solo lectura para evitar el riesgo de que el sistema operativo corrompa la copia si escribe algo en el disco mientras estás copiando.

Aquí están los comandos para hacer precisamente eso y copiar las dos particiones que enumeró en su pregunta, asumiendo que ha creado las particiones como se describe arriba, y nuevamente asumiendo que su tarjeta SD es /dev/sdb:

mount /dev/sda1 -oremount,ro
dd if=/dev/sda1 of=/dev/sdb1 bs=1048576
mount /dev/sda2 -oremount,rw

mount /dev/sda2 -oremount,ro
dd if=/dev/sda2 of=/dev/sdb2 bs=1048576
mount /dev/sda2 -oremount,rw

Posiblemente a algún software no le guste que el sistema de archivos raíz esté montado temporalmente como de solo lectura; un reinicio solucionará eso.

información relacionada