Можно ли записать MBR флешки любым шестнадцатеричным редактором?

После создания загрузчика, если я скопирую байты загрузчика и вставлю его на 1-е 512 байт флешки с помощью шестнадцатеричного редактора, будет ли это работать? (На самом деле я хочу научиться создавать операционную систему с нуля.)


person Nafis    schedule 30.08.2012    source источник


Ответы (2)


Я не совсем уверен, что понимаю ваш вопрос, но отвечаю на заголовок: да. Вы можете писать в любую часть диска с помощью шестнадцатеричного редактора с соответствующим дизайном и соответствующими разрешениями (обычно в Linux требуется доступ «sudo»).

Например, запись в загрузочный сектор флешки необходима для автоматизации загрузки системы CHDK. .

Не все шестнадцатеричные редакторы предназначены для доступа к дискам, некоторые могут работать только с файлами. Например, NCurses Hexeditor обычно работает только с файлами, но может диски как файлы в среде Linux/Unix, используя флаг -d.

Команда Linux dd также включает низкоуровневую запись на диски. Это может быть полезно в вашем случае, так как его можно использовать для побайтового копирования содержимого диска, включая разделы MBR.

person Richard    schedule 30.08.2012
comment
Привет Ричард, спасибо за ваш ответ. На самом деле мне больше интересно работать с Windows, чем с Linux, хотя я знаю, что Linux лучше подходит для разработки ОС. И я также знаком с командой dd, хотя никогда не пробовал ее. В Windows у меня есть опыт работы с бесплатным шестнадцатеричным редактором с именем [HxD]: mh-nexus.de/en/ ххд. Было бы более полезно, если бы вы сказали мне, могу ли я сделать это в Windows и какая файловая система подходит для этого (NTFS или FAT32). Любая ссылка на учебник будет предпочтительнее. - person Nafis; 31.08.2012
comment
Извините, @NafisAbdullahKhan, я не очень хорошо знаком с инструментами разработки для Windows. - person Richard; 31.08.2012

Не знаю насчёт HEX-редакторов, но похоже в Windows можно попробовать CreateFile с таким именем \\.\PHYSICALDRIVE0 или просто \\PHYSICALDRIVE0. И измените их с помощью WriteFile (осторожно!!! иначе вы можете повредить установку ОС или другие данные).

Вероятно, вы можете определить имя устройства с помощью WinObj. Также взгляните на этот проект и этот вопрос.

person denis-bu    schedule 04.12.2012