LINUX.ORG.RU

Ошибка grub 13 Invalid or unsupported executable format


0

1

Добрый вечер! Делал я доопреационный запуск программ вот по этой статье http://habrahabr.ru/company/neobit/blog/173263/. Установлена была Ubuntu 14.10 32-х битная. Все работало все грузилось, в общем я был рад.

Понадобилось мне сделать тоже самое на 64-х битной версии. Соответственно поменял : cp /usr/lib/grub/i386-pc/stage1 ./grub/ cp /usr/lib/grub/i386-pc/stage2 ./grub/ cp /usr/lib/grub/i386-pc/fat_stage1_5 ./grub/

на

cp /usr/lib/grub/x86_64-pc/stage1 ./grub/ cp /usr/lib/grub/x86_64-pc/stage2 ./grub/ cp /usr/lib/grub/x86_64-pc/fat_stage1_5 ./grub/

И при тестировании на qemu, да и при загрузке с флешки получаю ту самую ошибку 13, после выбора в меню grub моей mini_os. Линукс был переустановлен на место предыдущего, разделы не менялись. Версия grub 0.97. Буду признателен за любую помощь. От мануала ни в чем, кроме как в пути до файлов grub, изменений не делал.


Если собираешься писать ОС, то советую почитать http://wiki.osdev.org. Особенно статьи Beginner mistakes, Required Knowledge, Bare Bones.

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

результат запроса $ objdump -f ./kernel.bin

./kernel.bin: формат файла elf64-x86-64 архитектура: i386:x86-64, флаги 0x00000112: EXEC_P, HAS_SYMS, D_PAGED начальный адрес 0x000000000010000c

В этом направлении копать? Спасибо за возможную зацепку! Есть ли методы решения? Пока уплыл сервить инет самостоятельно.

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

с разметкой что то не так?

0 .multiboot    00000028  0000000000100000  0000000000100000  00100000  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .text         000012b2  0000000000101000  0000000000101000  00101000  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .rodata       0000042c  0000000000103000  0000000000103000  00103000  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  3 .eh_frame     000001f8  0000000000103430  0000000000103430  00103430  2**3
                  CONTENTS, ALLOC, LOAD, READONLY, DATA
  4 .data         00000208  0000000000104000  0000000000104000  00104000  2**6
                  CONTENTS, ALLOC, LOAD, DATA
  5 .bss          0000400a  0000000000104208  0000000000104208  00104208  2**3
                  ALLOC
EfYak
() автор топика
Ответ на: комментарий от EfYak

Кстати, ядру контроль всегда передаётся в 32-битном защищённом режиме независимо от формата и кода.

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

или же попробую переконвертировать. Действительно спасибо! до этого искал совсем не там ошибку!

EfYak
() автор топика
Ответ на: комментарий от Deleted

установил GRUB2 в 40_customs прописал

menuentry "mini_os" {
  set root='hd0,msdos1'
  multiboot /home/linux/hello/kernel.bin
  boot
}

в cfg появляется запись, при grub-update/grub-update2 в списке не появляется новый пункт

EfYak
() автор топика
Ответ на: комментарий от Deleted

Похоже на шаманство. Не знаю с чем связано, но меню, таки появилось,стоило выключить ноут полностью и включить(до этого только перезагружал) . mini_os появилась. Но там уже совсем другие ошибки повылазили. Не находится multiboot header. Вероятно, что из за того, что мой хедер написан по другому стандарту, но увы, не разобрался.

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

Попробуй использовать Pure64. В документации написано, как его использовать.

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