2009-12-12 14 views
9

Я на самом деле интересно, как работает ОС, от POST над процессом загрузки в ядро, GUI и т.д.Как я могу скомпилировать загрузочный сектор на USB-накопитель или диск?

Ну я должен начать с самого начала: бутсектор только

Большинство учебников укажите, как получить загрузочную загрузку .bin на USB-накопитель для пользователей Linux.

Но, как я использую XP, я хотел бы спросить , как мне получить 512 байт .bin на правильном положении на моем USB, и то определенно не копируя его с исследователем: D

ответ

9

Существует dd для Windows, который я использую регулярно. http://www.chrysocome.net/dd

использовать его так:

дд, если = C: \ Мои файлы \ boot.bin из = \\ \ г:. Bs = 512 Count = 1

где 'г:' это буква диска вашего подключенного USB-накопителя, «if» - это входной файл, а «of» - это устройство вывода, bs - размер блока, а число - это количество блоков для копирования

Я делаю это примерно раз в месяц, чтобы узнать, как развивается развитие Haiku. Они предлагают исходные образы дисков, которые записываются на USB-накопитель таким образом.

ПРЕДУПРЕЖДЕНИЕ. Неправильное обращение с буквой диска может привести к повреждению ВАШЕГО НОСИТЕЛЯ, поэтому убедитесь, что вы сделали резервную копию и стали удобными с помощью dd. Я потерял много данных для его власти.

+0

@Randomlnsano: Вы получаете мой +1 cos, я никогда не знал, что dd существует для Windows! Круто! :) – t0mm13b

+1

Следует учитывать, что это записывает в начало раздела, что Z: сопоставляет, а не MBR (вопрос немного неоднозначен). Если вы хотите перезаписать загрузочный сектор MBR, я думаю, вам придется использовать более новую версию chrysocome 'dd' и использовать параметр' od' для записи относительно начала физического устройства (а не только раздела) , Это заменит MBR 'dd if = c: \ my files \ boot.bin od = z: bs = 512 count = 1' –

+0

Когда вы используете Windows для форматирования USB-диска по умолчанию, он создает эквивалент жесткого диска с один раздел и метки, которые разделяют как загрузочные. Windows записывает MBR (Master Boot Record), который действует как загрузчик цепей. Когда вы загружаетесь с этого USB, BIOS загружает MBR и переходит к нему. MBR-код действует как цепной загрузчик, обнаруживает, что раздел отмечен как загрузочный, загружает первые 512 байт раздела в ячейку памяти 0x0000: 0x7C00, а затем перескакивает на него. Секционный загрузочный сектор не знает, что он загружен в цепочку, и он считает, что BIOS загрузил его напрямую, как если бы это был реальный MBR –

0

Может быть, вы могли бы использовать rawritewin, чтобы выполнить эту работу за вас?

Другой способ - использовать UNetBootIn, но из-за моего опыта общения с ним требуется, чтобы ISO был сжег на USB .., так что это может не работать в вашем случае, но вы можете попробовать создать ISO в процессе подготовки к записываться на USB ...