Depende das duas tabelas de partição: são do mesmo tipo (MS-DOS / GPT), ou de tipo diferente?
Se você está feliz em transferir do seu antigo sistema uma tabela de partições do MS-DOS, então o dd'ing do disco está bom; Apenas certifique-se que o novo BIOS do sistema sabe que você está usando o modo de compatibilidade para discos antigos.
A mesma coisa se você estiver migrando do sistema GPT para o GPT (duvido que esse seja o seu caso, mas escrevo isso para outros possíveis leitores).
Se, em vez disso, você decidiu migrar do MS-DOS para as tabelas de partição GPT, não é possível inserir o disco. O motivo é que a tabela de partição GPT armazena informações após o MBR (protetor) (e no final do disco, mas isso apresenta pouco problema). Assim, para acomodar a nova estrutura da GPT após o MBR de proteção, você deve mover ou redimensionar sua primeira partição, o que consome muito tempo e é perigoso para a integridade de seus dados. Neste caso, rsync'ing os discos é de longe a sua melhor solução.
Quanto à compatibilidade de hardware, deve haver alguns problemas. Em geral, o udev cuida de tudo, exceto que você pode ter alguns componentes que requerem cuidados especiais. Por exemplo, você pode passar de um sistema onde o driver do Wi-Fi é de código aberto, para outro onde, em vez disso, requer software proprietário. Por exemplo, você pode ter que instalar o firmware para o seu driver. Ou, você pode ter que instalar os drivers proprietários da NVidia para a sua nova placa NVidia.
Também é possível que você precise reconfigurar seu servidor X para adaptá-lo ao novo hardware. Isto é certamente verdade se você tiver introduzido um novo cartão, com aceleração 2D / 3D, porque isso exigirá algo diferente do habitual driver vesa.
sudo Xorg :0 -configure
cuidará disso.
Ocasionalmente, até conexões ethernet podem exigir um driver incomum. Embora incomum, isso é especialmente irritante, pois pode deixá-lo sem conexões. Para permitir isso, eu sugiro que você dê uma olhada em como o novo PC fará no Linux com uma distro ao vivo antes de mover o sistema antigo para ele. Apenas tome nota de quais drivers a distribuição ao vivo está usando para conexões ethernet e wifi, faça o download então no sistema antigo, e você terá um bom passeio.
Quanto à possibilidade de mover o Windows para um novo sistema desta forma, eu nunca tentei (nunca uso o Windows). No entanto, o Windows é um software proprietário, e o tipo de movimentação que você está considerando equivale, essencialmente, ao aumento do número de sistemas executados sob a mesma licença. Para a FOSS, isso não é problema, mas tenho certeza de que os proprietários de software proprietário (Windows e Apple, por exemplo; mas também os proprietários de todos os aplicativos pagos) tomaram medidas para evitar isso. Pode ser diferente se você pretende transferir sua licença e, nesse caso, tenho certeza de que parte desse software concede uma considerável margem de manobra (mas, mais uma vez, não posso falar pelo Windows por experiência própria).