Você claramente não pode clonar uma partição maior para uma partição menor (usando dd
e similares), pois simplesmente não há espaço suficiente.
No entanto, se os arquivos que estão na partição maior também couberem na partição menor, você poderá usar rsync
para copiar esses arquivos. As opções exatas a serem usadas dependem do seu caso de uso específico, mas basta copiar todos os arquivos que o seguinte deve fazer:
rsync -av /mount/point/of/large/partition/ /mount/point/of/small/partition
Editar: Mais uma vez: Você não pode clonar uma partição maior em uma partição menor . (Mas leia, seu problema pode ser resolvido ainda.)
O motivo é simples: sua partição de origem é maior que sua partição de destino. O que você espera? Alguns blocos devem ser descartados? Quais? E como deve dd
saber? É claro, você poderia usar as opções dd
e bs=
de count=
para copiar apenas os primeiros blocos da sua partição de origem, de modo que ela caiba na sua partição de destino, mas você acabará com uma partição quebrada. Isso certamente não é o que você quer.
Assim, como você não pode clonar uma partição maior em uma partição menor, a única coisa que você pode fazer é reduzir o tamanho da partição de origem para um tamanho. menor ou igual ao da sua partição de destino com algo como gparted
, que está ciente das especificidades do sistema de arquivos, de modo que você não perca dados. E somente então você poderia usar dd
para clonar a partição. Idealmente, o novo tamanho de sua partição de origem deve ser igual ao tamanho de sua partição de destino (e não apenas menor ou igual a ), caso contrário você terminará com alguma espaço não alocado em sua partição de destino após a clonagem.
Por favor note também que você deve não simplesmente copiar um MBR de uma unidade maior para o MBR de uma unidade menor (ou vice-versa, para essa questão). O MBR, que tem um tamanho de 512 bytes e é a primeira seção do seu disco rígido, contém informações sobre o layout do disco rígido:
- 446 bytes - Bootstrap.
- 64 bytes - Tabela de partições.
- 2 bytes - assinatura.
(Observe que 446+64+2=512
.)
Se você insistir em clonar o MBR, apenas clone os primeiros 446 bytes assim:
dd if=/dev/source of=/tmp/mbr.bak bs=512 count=1
dd if=/tmp/mbr.bak of=/dev/target bs=446 count=1
... substituindo /dev/source
e /dev/target
pelos nomes dos dispositivos dos discos rígidos de origem e de destino, por exemplo, /dev/sda
e /dev/sdb
, respectivamente. ( Mais informações estão disponíveis aqui. )
No entanto, a maneira correta de fazer isso seria fazer uma reinstalação limpa do Grub (ou qualquer outra coisa que você tenha no seu MBR) no novo disco rígido.
Em suma, se você quiser clonar uma unidade maior em uma unidade menor, faça o seguinte:
-
Coloque uma tabela de partição na unidade de destino com tantas partições quanto na unidade de origem. Deve haver uma correspondência de um para um entre as partições na unidade de origem e as partições na unidade de destino, exceto que (algumas) as partições na unidade de destino podem ser menores que as partições correspondentes na unidade de origem. Use uma ferramenta como
fdisk
oucfdisk
para isso. -
Para cada partição na unidade de destino menor que a partição correspondente na unidade de origem, reduza o tamanho dessa partição correspondente na unidade de origem para corresponder ao tamanho da partição na unidade de destino. Use uma ferramenta como
gparted
para isso. -
Para cada partição na unidade de origem, emita o comando
dd if=/dev/sdaX of=/dev/sdbY
... para clonar a partição
/dev/sdaX
da unidade de origem para a partição correspondente/dev/sdbY
na unidade de destino (substitua os nomes dos dispositivos apropriadamente, é claro). -
Se você insistir em clonar também o MBR, use os dois comandos
dd
escritos mais acima neste post (aqueles com o/tmp/mbr.bak
stuff). No entanto, lembre-se de que uma reinstalação limpa do Grub seria melhor.