4

Я задал этот вопрос на SO. я пытался

dd if=kernel.sys of=/dev/fd0 bs=512 seek=1

чтобы получить этот файл для записи на дискету. Это оболочка ядра, которая должна быть записана в сектор, следующий сразу за загрузочным сектором диска, для загрузки ПК. Что бы я ни пытался, почему-то kernel.sys не пишет на дискету. Я знаю, что загрузчик начальной загрузки пишется и выполняется. Однако он не может найти ядро для загрузки оболочки.

Есть идеи, что я делаю не так? Я имею в виду, действительно, как так сложно записать этот файл на дискету?

OpenSUSE 11.2

2 ответа2

1

Чтобы загрузить загрузочный загрузчик и ядро на дискету, нам пришлось использовать qemu. Глядя на раздел об образах дисков FAT, мы написали скрипт оболочки:

# first create a raw empty floppy image
dd if=/dev/zero of=bootimage.img bs=512 count=2880

# our bootstrap contains the MBR for the floppy (i.e. it actually formats it to our specs, in this case FAT12)
dd if=bootup.bin of=bootimage.img bs=512 count=1 conv=notrunc

# mount into 'media/floppy'
losetup /dev/loop0 bootimage.img
mount -o loop bootimage.img /media/floppy

# we can actually list all files that we need to copy to disk here
cp bootsys.sys /media/floppy

# make sure we unmount, otherwise nothing gets written !!
umount /media/floppy
losetup -d /dev/loop0

# run QEmu
qemu -fda bootimage.img

Я полагаю, что если у вас нет физического дисковода, вы можете эмулировать дискету, подставив /media/floppy вместо /mnt/floppy .

0

Похоже, вы пытаетесь создать загрузочный диск DOS. Не уверен, что seek = 1 - это правильно, но я понятия не имею. Я думаю, что вы должны иметь command.com, а также kernel.sys, чтобы получить рабочую загрузочную дискету. Вы рассматривали FreeDos? Вы можете скачать его и следовать инструкциям по созданию загрузочного диска.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .