Se você não puder montar o sistema de arquivos original em seu ambiente, poderá usar debugfs
para examinar o layout do sistema de arquivos e copy
dos arquivos para o seu destino. Com um pouco de trabalho, você poderia fazer o script debugfs
listar, atravessar, copiar o sistema de arquivos original para um local temporário, usar mke2fs -d
para gravá-lo no novo sistema de arquivos ou copiá-lo diretamente para o local de destino.
Se você estiver disposto a escrever seu próprio código, você pode usar libext2fs
para abrir o sistema de arquivos, ler a árvore de diretórios e copiar recursivamente para o sistema de arquivos de destino (que também pode ser aberto usando libext2fs). Isso seria muito mais fácil do que escrever qualquer um dos seus próprios códigos para manipular o formato ext4 em disco.
Se a barreira para acessar o dispositivo eMMC como um dispositivo de bloco em seu ambiente (desculpe, eu não sei nada sobre isso, apenas o lado ext4), então você poderia escrever um driver IO personalizado para libext2fs (como lib/ext2fs/unix_io.c
ou .../nt_io.c
) que pode ler / gravar dispositivos eMMC diretamente, em seguida, use scripts debugfs + ou uma ferramenta de cópia personalizada libext2fs.