Почему я могу выполнить grubinst.exe в человечности на 64 бита

grubinst.exe является программой консольного режима для установки загрузочного кода GRUB4DOS на MBR или загрузочном секторе раздела.

Я загрузил его со страницы grubinst_1.0.1_bin_win.zip проекта GRUB4DOS, и я думаю для окон на 32 бита.

Но я могу выполнить его в человечности на 64 бита

$ ./grubinst.exe --version
grubinst version : 1.0.1
2
задан 26.01.2010, 14:01

3 ответа

Там так называемо binfmt поддержка на Linux, который позволяет передавать произвольного двоичного файла (например, исполняемые файлы Windows) выполнение к некоторому приложению Linux, которое знает, как обработать его (например, вино).

Также bootlace.com является специально отформатированным двоичным файлом, который имеет заголовок ELF и и Linux и код DOS: ELF (исполняемый файл Linux) заголовок должен быть помещен в начале файла, и код DOS должен быть запущен в положении 0x100 (помните, COM не является PE, NE или исполняемый файл MZ, это - просто часть кода), таким образом, там это, и заголовок ELF перенаправляет загрузчик файла Linux к коду Linux, который помещается после DOS.

3
ответ дан 08.12.2019, 06:36

Вы пьете вино (или что-то подобное) установленный? Затем это, как могут ожидать, будет работать. Попробовать

sudo update-binfmts --display
1
ответ дан 08.12.2019, 06:36

Возможно, потому что Вам установили вино.

Вино выполняет второстепенного демона, чтобы позволить окнам .exe файлы быть выполненными тот же способ, которым запущены нормальные программы Linux.

Однако Вы, вероятно, нашли бы, что программа все еще не сможет записать в MBR, просто потому что вино не реализует такую вещь.

0
ответ дан 08.12.2019, 06:36

Теги

Похожие вопросы