Очистка главной загрузочной записи (MBR)
Автор: © Ben Okopnik
|
Экспериментировать - это увлекательное занятие. В конце концов, одна из вещей, которая делает 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;
разумеется, обращайтесь с ними поаккуратней :)
Решение для 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
Нажмите <Enter>, чтобы выйти из режима ассемблера, глубоко вдохните - и давите на "g" для исполнения кода, потом "q" для выхода из "debug". Ваш HD девственно чист и готов к разбиению на разделы и установке. Разумеется, у Вас должны быть права... о, опа. Любой, кто придет с досовской дискеткой, может сделать это на Вашей системе примерно за минуту, включая время загрузки. Нуте-с посмотрим; куда же опять завалилась та самая статья о безопасности Вашего компьютера?... Ссылки"dd" man page. DOS решение: Первоначальная идея и код Марка Минаси (Mark Minasi), использовались для очистки инфeцированных/поврежденных MBR-ов и с его согласия использованы мной для обучения; все изменения в коде/командах - мои.
|
Copyright © 2001, Ben Okopnik. Copying license http://www.linuxgazette.com/copying.html Published in Issue 63 of Linux Gazette, Mid-February (EXTRA) 2001 |
Вернуться на главную страницу |