Eu preciso fazer uma cópia de um sistema linux funcional, que (estando contido em / e o novo local seja preparado em / mnt / sdb5) pareça conter uma quantidade considerável de hard-, soft-links e arquivos especiais em / dev; lidaria cpio
com esse trabalho sem aplicar magia adicional?
Salvaguardas atualmente conhecidas:
- não remover / modificar o sistema em execução até o momento em que a cópia for considerada inicializável e com a qual trabalhar
root=/dev/sdb5
; Antes de remover, faça um backup completo da partição. - usará o cpio para arquivar cada diretório raiz separadamente, descompactando-o do ambiente LiveCD, para que a partição doadora não seja prejudicada
Mas ainda assim, não perderá tempo apenas porque o cpio perdeu algum sinalizador e danificou as permissões / tipo de nó / soft ou hardlink.
Qual ferramenta usar / quais rochas subaquáticas evitar?
Respostas:
Para responder à pergunta real sobre
cpio
: Estas são as bandeiras para as quais eu usariacpio
:Claro, como você não está copiando pela rede, eu usaria
cp
:E se você quiser fazer a cópia várias vezes,
rsync
é uma escolha melhor para seus recursos de retomada. (Ele tambémcp
lida com ACLs e atributos estendidos e, opcionalmente, pode trabalhar através da redecpio
. Portanto, é a opção mais útil, exceto para fazer a primeira cópia localmente, que eu prefiro usarcp
.)Não esqueça de copiar
/boot
e/dev
!/boot
é fácil, basta copiá-lo. Mas/dev
é muito mais complicado hoje em dia, uma vez que está ocultoudev
. Eu recomendo o seguinte procedimento:mkdir /tmp/dev
mount --move /dev /tmp/dev
/dev
para/mnt/sdb5
usando um dos comandos acimamount --move /tmp/dev /dev
rmdir /tmp/dev
fonte
Como o @Klox mencionou, ao copiar partições do mesmo tamanho, concordo em usá-lo
dd
.Mas quando você deseja copiar um disco para uma partição diferente com tamanho diferente, prefiro continuar
rsync
. Monte a nova partição (digamos, / mnt / new) e:Nenhuma mágica adicional para links simbólicos e não há necessidade de live cd (usuário único / init 1 funcionará perfeitamente).
fonte
rsync
o tempo todo e perdi o óbvio. Gostodd
pelas razões expostas, masrsync
é mais adequado às necessidades do OP.A variante mais ideal de
dd
uso épartimage
, ela copiará apenas a seção usada da partição, tornando mais fácil a cópia de grandes partições não utilizadas.Observe a ressalva importante:
Uma cópia conveniente está incluída na distribuição do CD do System Rescue .
fonte
Ao mover instalações do Linux entre discos rígidos, sempre inicializo a partir de um Live CD e uso
dd
para copiar toda a partição. Reconheço que isso não lida com alterações no tamanho do disco (inevitavelmente, o novo disco é maior, o que simplifica as coisas), mas eu gosto da técnica exatamente pelos motivos pelos quais você se preocupa em usarcpio
: algo pode dar errado. Usando add
técnica, é tudo ou nada: o novo disco é inicializado e tudo é igual, ou o disco não é inicializado. Não há risco de surgir problemas à espreita mais tarde.Agora, é claro, há o problema da partição não preencher o novo disco, mas prefiro criar uma nova partição para preencher o espaço extra e contar com links simbólicos para mover os diretórios. (Tenho certeza de que também existem ferramentas para redimensionar partições, mas não as usei.)
fonte
xfs_grow
), e a partição raiz também é XFS; Pior ainda, é um Gentoo bem estabelecido, que é quase a mesma gordura. Pior ainda, a mudança deve ser feita sem adicionar mais armazenamento e, atualmente, não é possível fazer backup de mais de 60 GB - portanto, nenhuma operação de partição. Precisa colocar o Win 'nessa máquina para testar algumas coisas.