Я удивлен, что никто не упоминает дамп и восстановление. Это будет намного быстрее, чем dd , если у вас есть свободное место в файловой системе.
Обратите внимание, что в зависимости от рассматриваемой файловой системы вам могут понадобиться разные инструменты:
Обратите внимание, что некоторые программы не встраивают -в сжатие (все, кроме канала дампа)-на стандартный вывод и используют pigz по мере необходимости. ;-)
Компиляция — это процесс преобразования языка, такого как C, в инструкции для ЦП. Различные процессоры имеют разные наборы инструкций. Думайте об этом как о x86 _64, являющемся другим языком ЦП, отличным от armel.
Хотя технически возможно создать компилятор, который может писать на любом языке с набором инструкций (), я не верю, что есть такие, которые могут просто переключаться.
Таким образом, чтобы использовать GCC для компиляции для armel, вам нужна копия GCC, которая сама была скомпилирована для написания armel. Вот в чем загвоздка... Чтобы добиться того, что вы пытаетесь сделать, вам нужна копия GCC, которая будет скомпилирована для armel, но эта копия GCC должна работать на (и быть скомпилирована для )x86 _64. Это известный как кросс-компилятор :компилятор, код которого компилируется для одного набора инструкций, который при использовании компилирует код в другой набор инструкций.
Вам понадобится компиляторgcc-arm-linux-gnueabi
(https://packages.debian.org/buster/gcc-arm-linux-gnueabi). Вы можете обнаружить, что этот get споткнулся из-за компиляции заголовочных файлов (на# include <...>
)или библиотек(undefined reference to...
). Боюсь, я так давно этим не занимался, что даже не могу вспомнить, как сказать компилятору использовать заголовки и библиотеки из вашей целевой системы. Это может быть то, что вам нужно исследовать.