Очистка главной загрузочной записи (MBR)

Экспериментировать — это увлекательное занятие. В конце концов, одна из вещей, которая делает Linux столь интересным для ряда людей — это возможность «крутить» параметры настройки и наблюдать: а что же получится. Признаюсь, что и для меня — это решающий фактор. Одна из трудностей, тем не менее, заключается в том, что некоторые типы таких «кручений-верчений» могут привести к серьезным проблемам. Фактически, это несколько напоминает подпиливание сука на котором сидишь…
Ряд людей обращается в Answer Gang с вопросом, похожим на этот:
«Dear TAG (The Answer Gang): Я примотал динамитную шашку к своему CPU и не боюсь использовать его. Теперь, когда я безраздельно владею вашим вниманием, слушайте: Я столкнулся с проблемой, когда пытался переинсталировать…»
Что же оказывается — после того как полиция, пожарное подразделение, большие люди в белых халатах приедут и уедут — оказывается они (не пожарные-полиция, а экспериментаторы :) столкнулись с классической проблемой«жареный MBR»: установите Linux, представьте себе, что Windows испортит главную загрузочную запись, сотрите раздел с Linux, попробуйте первой установить Windows… и ОБА-НА. Установка Windows натыкается на проблему и останавливается.
Причина — забыли деинсталировать LILO, который был записан поверх первоначального MBR; так что, загрузочный код в MBR пытается передать управление ядру Linux, которого больше не существует.
Ничто не помогает. Недокументированная опция «fdisk/mbr», которая, как предполагается, записывает чистый MBR, кажется, не производит никакого эффекта; «fdisk» в диалоговом режиме отказывается удалять «не-DOS» раздел; даже детонатор не в состоянии взорваться. Что делать, что делать…
Кстати, причиной первых двух проблем могла быть команда Windows «lock» — по умолчанию «сырая запись» ('raw writes') на диск запрещена, а «lock c:» блокирует диск от записи на него. (Что касается детонатора — то рекомендую пользоваться детонаторами Dynamit Nobel, сделанными по проверенной технологии bridge-wire; разумеется, обращайтесь с ними поаккуратней :)
 


    * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    Учтите: Руководствуясь нижеследующим советом,Вы полностью сотрете 

    Ваш MBR, который содержит всю информацию 

    о разбиении диска на разделы. НЕ ДЕЛАЙТЕ ЭТОГО до тех пор, пока Вы точно 

    не будете знать, что это тот результат, который Вам нужен — это оставит Ваш

    HD без возможности загрузки с него, в действительности возвращая его в 

    «фабрично-чистое» состояние, то есть свободным от данных и требующим 

    разбиения на разделы и форматирования.

    * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *



Решение для Linux
Если Вы еще можете как-нибудь запустить Linux — скажем, с помощью Tom's Root-Boot дискетки — Вы можете просто дать команду «dd», примерно так:
dd if=/dev/zero of=/dev/hda bs=512 count=1
Да, это то, что нужно. Тот MBR пропал. Очевидно, у Вас должны быть права рута, чтобы сделать это.
Решение для DOS
Загрузитесь с DOS дискетки на которой есть «debug»; запустите «debug». Заполните 512 байтовый кусок памяти нулями, введя на приглашение '-' команду:
f 9000:0 200 0
Перейдите в режим ассемблера командой 'a', и введите следующий код:
mov dx,9000
mov es,dx
xor bx,bx
mov cx,0001
mov dx,0080
mov ax,0301
int 13
int 20
Нажмите <Enter>, чтобы выйти из режима ассемблера, глубоко вдохните — и давите на «g» для исполнения кода, потом «q» для выхода из «debug». Ваш HD девственно чист и готов к разбиению на разделы и установке.
Разумеется, у Вас должны быть права… о, опа. Любой, кто придет с досовской дискеткой, может сделать это на Вашей системе примерно за минуту, включая время загрузки. Нуте-с посмотрим; куда же опять завалилась та самая статья о безопасности Вашего компьютера?…

Ссылки

«dd» man page.
DOS решение: Первоначальная идея и код Марка Минаси (Mark Minasi), использовались для очистки инфeцированных/поврежденных MBR-ов и с его согласия использованы мной для обучения; все изменения в коде/командах — мои.