como colocar o gerenciador de inicialização personalizado na imagem de disquete

0

Então, estou criando um gerenciador de inicialização personalizado:

nasm -f bin boot.asm -o boot.bin

São 512 bytes. Como faço para colocar isso em uma imagem de disquete e inicializar com o qemu?

Eu tentei:

dd if=boot.bin of=floppy.img bs=512 count=2880
dd if=floppy.img of=floppy2.img bs=512 count=1
qemu-system-i386 -fda floppy2.img

Mas o floppy2.img é redimensionado para 512 bytes em vez do tamanho normal de 1.44MB. Esta é a maneira correta? Eu preferiria não usar nenhuma ferramenta sofisticada, se isso puder ser feito com dd , isso seria ótimo.

    
por sprocket12 06.10.2017 / 11:37

1 resposta

0

Se o único problema é que o arquivo de imagem é muito curto, você pode tentar anexar 2879 * 512 zero bytes ao arquivo floppy.img :

dd if=/dev/zero count=2879 bs=512 >> floppy.img

Por outro lado, se você precisar armazenar algo mais do que apenas o setor de inicialização na imagem de disquete, será necessário criar um sistema de arquivos FAT. A maneira de fazer isso é usar um dispositivo de loop.

sudo losetup /dev/loop0 floppy.img
sudo mkfs -t fat /dev/loop0
sudo mount /dev/loop0 somedir

em que somedir é um diretório vazio em que /dev/loop0 está montado. Agora você pode copiar os arquivos necessários para este diretório.

    
por 06.10.2017 / 13:19