
Tenho um sistema de arquivos para um dispositivo que estou programando e do qual gostaria de fazer uma cópia exata. Idealmente, gostaria que esta cópia fosse idêntica à pasta de onde foi copiada. Eu tentei usar cp -r
cp -a
e rsync -azvP
tentar conseguir isso. Cada um deles resulta em uma pasta com tamanho diferente (usando du -s
) e, em última análise, mesmo que meu dispositivo fique fora da pasta original, ele não sairá daquela que copiei.
- O que está sendo deixado de fora e os comandos que usei não estão sendo considerados?
- É possível manter tudo idêntico ao copiar um sistema/pasta de arquivos? Se sim, como eu faria isso?
PS Eu postei perguntas semelhantes emStackOverflowmas rapidamente percebi que havia perguntado na exchange errada
Editar: Isso pode não ser útil, mas não importa qual método eu use, o diretório copiado sempre faz com que a máquina em questão entre em Kernel Panic com a seguinte saída.
VFS: Não é possível montar o root fs via NFS, tentando disquete. VFS: Não é possível abrir o dispositivo raiz "nfs" ou bloco desconhecido(2,0) Anexe uma opção de inicialização "root=" correta; aqui estão as partições disponíveis: 1f00
64 mtdblock0 (driver?) 1f02 64 mtdblock2 (driver?) 1f04 2432 mtdblock4 (driver?) 1f05 128 mtdblock5 (driver?) 1f06 4352 mtdblock6 (driver?) 1f07 204928 mtdblock7 (driver?) 50304 mtdblock8 (driver?) 0800
8388608 driver sda: sd Kernel panic - não sincronizando: VFS: Não é possível montar root fs em bloco desconhecido (2,0)
Responder1
Geralmente uso uma das seguintes alternativas:
rsync -aHAX
(adicionar v para verbosidade) garante que você preserve qualquer estrutura de link e x-attrs na pasta de destino durante a cópia. Não se esqueça dea
significa arquivar e já preservar tempo, propriedade e permissões.- Simples
tar cvf
(não compactar para economizar tempo, apenas tartar) é o que eu uso se o primeiro não atende o que preciso por algum motivo e não tenho tempo, mas sempre tento o primeiro.
Para verificar se tudo correu como deveria, você pode executar diff -r <folder1> <folder2>
depois, se quiser.
Responder2
Lendo sua resposta nos comentários, parece que você está tentando copiar a pasta raiz ("Meu dispositivo não inicializa usando o diretório copiado"). Nesse caso, há várias coisas que você deve fazer.
$ cd /
$ mkdir backups
$ tar -cvpf /backups/fullbackup.tar --directory=/ --exclude=proc --exclude=sys \
--exclude=dev/pts --exclude=backups .
Depois de copiar a pasta raiz para o novo sistema, você precisará atualizar o grub antes de inicializar.
$ grub-install --recheck /dev/sdX (Where X is the partition number)
$ update-grub
Responder3
Você poderia tentarFSArchiver. É o sucessor da partimage semelhante, que agora não tem manutenção. Eu usei o partimage e o FSArchiver no passado e ambos funcionaram bem. Pelo que eu sei, ambos fazem cópias de um sistema de arquivos o mais próximo possível do original. Acho que o FSArchiver é um pouco mais poderoso que o partimage. Por exemplo, funciona com ext4, enquanto partimage não. Vera tabela de comparação FSArchiver/partimage.
Responder4
Depende um pouco do que você entende por "idêntico".
- Apenas fazer
rsync
seria bom na maioria das vezes. Às vezes você quertar
compactar tudo em um arquivo e extraí-lo em outro lugar. - Se você quiser um clone do sistema de arquivos completo, poderá
dd
copiar todo o sistema de arquivos.
Se você tiver algum meio de depurar seu dispositivo, tente descobrir qual é exatamente o problema por que ele não funciona no momento.