Trabalhando com as seguintes condições:
- O disco original a ser copiado é
/dev/sdx - O disco original está adequadamente particionado / rotulado / sinalizado
- O conteúdo do sistema de arquivos do disco original será ignorado
- O disco de destino, para copiar, será
/dev/sdy - A partição de troca será
/dev/sdy4 - A partição de inicialização será
/dev/sdy1montada em/bootno sistema final comext3filesystem - A partição raiz será
/dev/sdy2montada em/no sistema final comext4filesystem - A partição dos usuários será
/dev/sdy3montada em/homeno sistema final comext4filesystem - O sistema Debian que você deseja copiar foi banido e gzipado para
master_system.tar.gz - Todos os arquivos, incluindo o script, serão armazenados no diretório de trabalho
- O script será executado no mesmo diretório de trabalho
- O script será executado como
root, nãosudo, mas faça login como raiz ousuem um terminal - Existe um diretório
dupe_mntno diretório de trabalho
Para "copiar" a estrutura de partições do disco original, só é necessário uma vez, a menos que a estrutura seja alterada.
sfdisk --dump /dev/sdx > master_table
Como só você, no sistema em questão, pode determinar o que copiar do sistema Debian que serve como mestre, não vou entrar em nada disso. Eu sei que você não copiará os diretórios /proc , /dev/ e /sys , mas certamente haverá outros a serem excluídos. Crie esse archive da maneira que você escolher e nomeie-o como master_system.tar.gz . Isso deve incluir os diretórios /boot e /home . É isso aí, a configuração é feita até você alterar o sistema Debian que está copiando ou o particionamento do disco.
O script a ser criado, chamado sys_replicate.sh , é:
#!/bin/sh
target=$1;
sfdisk /dev/${target} < master_table;
# Format the swap partition
mkswap /dev/${target}4;
# Format the data partitions
mkfs.ext3 /dev/${target}1;
mkfs.ext4 /dev/${target}2;
mkfs.ext4 /dev/${target}3;
# Mount the target root filesystem and its parts
mount /dev/${target}2 dupe_mnt;
mount /dev/${target}1 dupe_mnt/boot;
mount /dev/${target}3 dupe_mnt/home;
# Copy the master system to the target
cd dupe_mnt;
tar -zxvpf ../master_system.tar.gz;
cd ..;
# Unmount the new system
cd ..
umount /dev/${target}3;
umount /dev/${target}1;
umount /dev/${target}2;
#done
O arquivo sys_replicate.sh precisa ter o execute bit definido. chmod +x sys_replicate.sh
Para usar o processo, uma vez configurado, conecte o disco de destino. Se for um USB, verifique se o sistema reconheceu que está disponível. Se for um HDD interno, obviamente será necessário reinicializar e o sistema deverá encontrá-lo automaticamente. Uma vez conectado, tenha MUITO certeza que você sabe qual /dev é, já que a adição de discos pode reorganizar as letras. Quando estiver pronto, em um root shell, execute:
./sys_replicate.sh sdy
O nome do dispositivo /dev/sdy e /dev/sdx obviamente precisará ser alterado para corresponder ao seu sistema operacional. Além disso, como acontece, sfdisk pode lidar com discos GPT e partições estendidas, então minha pergunta de comentário anterior não foi necessária. Se você usar um disco, como a cópia, maior que o original, tudo ainda funcionará. Você terá espaço desperdiçado que não pode facilmente recuperar, no entanto, leve isso em conta antes de selecionar o disco mestre para copiar.
A criação da estrutura de partição e a cópia do sistema Debian são independentes, então mudanças em uma não requerem atualização da outra.