Eu diria que o primeiro passo é o backup do que você tem antes que fique pior. Se você puder, digite a unidade inteira em um arquivo de imagem em outra unidade.
dd if=/dev/sda of=/mnt/another-drive-with-space.img bs=1M
se você não tem espaço, pode compactar a imagem:
dd if=/dev/sda bs=1M | gzip -9 > /mnt/another-drive-with-space.img.gz
Em seguida, o Windows realmente odeia inicializar de qualquer lugar, exceto da partição primária na unidade principal. Eu tentaria remover o seu disco win7 e, em seguida, inserir o disco de instalação do XP e selecione "instalar" e depois "reparar" Isso deve corrigir o carregador de inicialização do Windows e reinstalar os arquivos de sistema assumindo a partição é reconhecível pelo XP. Se o disco não for reconhecível, verifique as ferramentas de recuperação no Ultimate Boot CD .
Em seguida, supondo que você possa inicializar no XP agora, coloque seu disco win7 no computador como o principal hardrive. Arranque do disco de instalação do Win7 e faça "custom", "install" "repair" (acho que ainda não tentei isso com o Win7). Supondo que isso não seja muito diferente do Vista / XP, ele deve encontrar sua instalação do XP e fazer uma entrada para o carregador de inicialização. Uma vez que você é inicializado no Win7, você pode adicionar sua instalação do linux ao gerenciador de inicialização e / ou ajustar suas configurações do carregador de inicialização com EasyBCD .
Também é possível converter sua imagem de backup em uma imagem do VirtualBox e executar sua instalação do XP em uma VM, em vez da inicialização dupla, a menos que você precise do XP para jogos.
Outra opção é o Smart Boot Manager . Eu usei a versão do CD deste no passado para inicializar o sistema operacional quando o MBR é borked