Primeiro, FAÇA BACKUP DOS SEUS DADOS. Eu realmente quero dizer isso.
Como as partições têm que ser contíguas, você terá que mover o espaço livre para qualquer um dos finais de sda4 (você realmente quis dizer sda4 , a partição do Win 95?
Inicialize a partir de um Live CD contendo gparted e execute gparted . NÃO tente inicializar a partir do disco e execute gparted no mesmo disco.
Use gparted para mover a partição sda9 para 20 GB (até o final do espaço livre). Isso colocará seu espaço livre de 20 GB entre sda8 e sda9 .
Repita a movimentação de sda8 , depois de sda7 , depois de sda6 e, finalmente, de sda5 até 20 GB. Isso colocará os 20 GB livres entre sda4 e sda5 .
Usando gparted , estenda sda4 para incluir os 20 GB.
Agora, tudo o que resta é informar ao Windows que o disco cresceu. Eu não sei como fazer isso, e este é o lugar errado para perguntar.
Tendo o disco particionado da maneira que você faz é sub-ótimo. Leia o particionamento How-Tos, etc. no Projeto de Documentação do Linux , at IBM Developer Works , at ccfl.edu e na LinuxQuestions .
A maneira 'boa' (IMHO) para particionar um disco é ter algumas partições, não muito grandes, no começo do disco ( /boot , swap, sistemas operacionais estrangeiros), então uma partição "Extended" cobrindo o resto do disco, com o resto das partições alocadas dentro dele.
BACKUP SEUS DADOS!