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/sdy1
montada em/boot
no sistema final comext3
filesystem - A partição raiz será
/dev/sdy2
montada em/
no sistema final comext4
filesystem - A partição dos usuários será
/dev/sdy3
montada em/home
no sistema final comext4
filesystem - 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 ousu
em um terminal - Existe um diretório
dupe_mnt
no 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.