LINUX.ORG.RU

ASM OS Определение Дисков, Теория


0

1

Всем доброе утро!

Задача следующая. Есть флешка, на которую записан свой загрузчик и некоторое специфичное ПО. После того, как ПО выполнило все свои действия, оно начинает искать на текущем диске (флешке) все разделы, которые помечены как активные, и, если такой раздел существует, то его MBR грузится в память и туда передается управление. Диск, на котором ищутся активные разделы определяется из регистра dl (который заполнил BIOS). В доках сказано, что 0x00, 0x01 - это floppy А и B, 0x80 и 0x81 - это соответственно 1-й и 2-й хард (Primary и Secondary).

Необходимо сделать так, чтобы мое ПО искало активные разделы не только на диске, указанном в регистре dl но и на всех жестких дисках. Что будет если у меня несколько дисков, какие у них будут номера?

Еще пробовал установить grub (который в свою очередь уже бы загрузил ОС с других дисков) на primary раздел флешки (/dev/sdb3), но у меня не получилось его туда закатить...

Странная задача

его MBR грузится в память и туда передается управление

Ты чем читаешь MBR? 13h-прерыванием в real mode?

0x80 и 0x81 - это соответственно 1-й и 2-й хард
Что будет если у меня несколько дисков, какие у них будут номера?

Тебе нужно их просто перебрать? Если с помощью bios int 13h то читай mbr начиная с dl=0x80 и увеличивай dl. Когда вернет ошибку диски закончились

Еще пробовал установить grub но у меня не получилось его туда закатить...

Настойчивее пробуй

anonymous
()
Ответ на: комментарий от anonymous

Тебе нужно их просто перебрать? Если с помощью bios int 13h то читай mbr начиная с dl=0x80 и увеличивай dl. Когда вернет ошибку диски закончились

Да, 13h. Т.е. все диски будут пронумерованы начиная с 0x80 с шагом в 1?

Настойчивее пробуй

grub-install /dev/sdb2

...
Встраивание невозможно ...
energyclab
() автор топика
Ответ на: комментарий от energyclab

все диски будут пронумерованы начиная с 0x80 с шагом в 1?

Скорее всего да. Сейчас так не принято делать, хз что там всплывет, но может и получится

Встраивание невозможно ...

А что там где точки? Наверное пишет что не знает тип ФС?

В очередной раз порекомендую osdev.org, там все это разжевано

http://wiki.osdev.org/GRUB_2

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.