Eu encontrei uma solução.
Descobri que o Windows XP pode ser carregado quando o bootloader está em uma partição diferente da partição em que estão os arquivos do sistema operacional. Eu pensei que o FreeDOS é capaz de fazer os mesmos truques, mas não é capaz de fazer isso.
Em outras palavras, o ntldr deve estar em ambas as partições e o conteúdo do boot.ini não pode ser idêntico em partições diferentes. 'boot.ini' no sdc1 pode carregar ambos os sistemas operacionais, e o ntldr no sdc2 pode carregar apenas o XP, pois o FD não permite essa cadeia de chamadas.
Para não confiar strongmente no GRUB, fiz duas instâncias de arquivos de carregamento. O sdc1 e o sdc2 possuem o seguinte conjunto de arquivos:
boot.ini,
Bootfont.bin,
NTDETECT.COM,
ntldr.
O 'boot.ini' em / dev / sdc1 tem conteúdo:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect
C:\="FreeDOS 1.2"
O 'boot.ini' em / dev / sdc2 tem conteúdo:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional RU" /noexecute=optin /fastdetect
Obrigado por definir a marca "-3" para a pergunta. Eu fiz tudo sozinho e me sinto muito melhor agora. FreeDOS rulez.