Estou tentando emular janelas com bochs no meu dispositivo Android. Eu tenho as seguintes unidades: uma imagem de disco vazia para instalar o Windows, uma unidade vvfat virtual com os arquivos de configuração e uma unidade de cdrom com a versão mais recente do DOS. Bochs reconhece todas as unidades corretamente.
O problema é que quando inicializo no DOS, a imagem do disco não é reconhecida. Usei o comando vol para identificar as unidades. A foi atribuído ao cdrom, B deu um erro de leitura, C foi atribuído ao drive virtual vvfat e os outros não foram atribuídos. O erro de leitura que B deu, entretanto, não tem nada a ver com o arquivo de imagem. Se eu desconectasse todas as unidades, exceto o cdrom, o erro ainda estaria lá. Provavelmente é um disquete emulado.
Acho que o problema está no arquivo de imagem. Eu fiz isso usando dd no terminal. Usei a seguinte configuração:
dd if=/dev/zero of=/sdcard/Win.img bs=64k count=8192
E formatei com:
mkfs.vfat /sdcard/Win.img
Não funcionou. Então descobri que versões antigas do Windows suportam apenas blocos ou tamanho de cluster de até 4 kB, então criei um novo:
dd if=/dev/zero of=/sdcard/Win.img bs=4k count=131072
E novamente formatei-o com mkfs.vfat.
Como ainda não funcionou, comecei a fazer experiências nos sistemas de arquivos e partições. Eu usei o fdisk para particionar a imagem:
fdisk /sdcard/Win.img, n, p, 1, 1, 65
Mas ainda sem resultado. Talvez eu tenha feito algo errado aqui porque quando imprimi a tabela de partições dizia linux no final.
Minha dúvida é: alguém sabe como formatar uma imagem de disco com terminal para que ela seja reconhecida pelo DOS?
Responder1
mkfs.vfat -F você pode usar12ou16SOMENTE.(32 é incompatível com DOS)
mkfs.vfat -F 16 -f 2
Você precisa evitar o método automático, pois ele usará um sistema de arquivos de 32 bits e será incompatível com qualquer programa DOS.
O sistema de arquivos de 12 bits é tradicionalmente reservado para disquetes. Embora possa ser usado, seu tamanho MÁXIMO é 1/4 ou 512 MB de FAT16.
No DOS, os discos rígidos são normalmente FAT16. É especificamente por isso que eu disse para usar 16 bits e letras minúsculas-f2indica 2 cópias, que é a forma como o DOS funciona.
Responder2
Você pode agilizar todo o processo usando o mkdosfs
, especialmente se precisar de compatibilidade estrita com o DOS. mkdosfs
tem o -C
sinalizador que permite pular a dd
etapa. Para criar uma imagem de disquete de 1,44 MB chamada Win.img
, digite mkdosfs -C /sdcard/Win.img 1440
.
No entanto, duvido que a imagem do disco com problema seja do tipo disquete. Até o Windows 3.0 ocupa entre 6 e 8 MB de espaço em disco quando instalado.
Responder3
Você pode baixar discos rígidos prontos da Internet, inclusive os vazios. As pessoas os usam como imagens de inicialização para cdroms.
O DOS tem um tamanho de setor de 512 bytes e, se o Windows 9x tiver inicialização dupla com um DOS anterior, torne as partições menores que 126 MB. Esta é uma partição fat16 que o win9x não converte para fat32.
Ao iniciar uma partição, você deve usar o DOS fdisk para criar partições e formatar para formatar as partições. Você pode fazer isso a partir do disquete. vol vê apenas as partições criadas. Você deve definir uma partição primária como 'ativa', caso contrário ela não inicializará.
Uma vez formatado, você pode sys
instalar a unidade e instalar DOS, Windows.
Responder4
Por padrão, o fdisk cria partições do tipo "Linux". Você precisa alterá-lo para "Windows". Volte para o fdisk e digite (depois do que você já digitou) "t", "1", "b". Salvar e sair.