A ferramenta de particionamento de disco no Ubuntu (geralmente GParted) é capaz de redimensionar partições Windows e Linux.
Pode ser necessário inicializar a partir de uma caneta USB ou de um CD, mas uma vez que o SO é inicializado, você pode executar a ferramenta de parititoning para reduzir a partição do Windows e aumentar o tamanho da partição linux.
É fundamental fazer backup dos dados dos dois sistemas primeiro, pois é possível que as coisas corram mal, resultando em perda de dados.
Mover a instalação do Ubuntu para outro disco é mais complicado, já que você terá que ajustar os pontos de montagem, bem como a configuração do GRUB.
No passado, tentei migrar o SO, mas agora sou a favor de uma abordagem mais simples.
Primeiro, faça um backup completo dos seus dados (usei o Back In Time com sucesso).
Em segundo lugar, limpe a sua antiga partição do Ubuntu e recrie uma para o novo syste,
Em terceiro lugar, reinstale o Ubuntu.
Por fim, restaure seu backup.
O Back In Time manterá seus dados de usuário e pacotes armazenados e funciona no nível do sistema de arquivos. Não importa onde estavam as partições no disco, desde que você tenha espaço suficiente para realizar a restauração.
Existem maneiras de mover as partições sem ter que reinstalar o sistema operacional, mas tive sucesso limitado usando essa abordagem com o Ubuntu.