Форум русскоязычного сообщества Ubuntu
Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!
- Форум русскоязычного сообщества Ubuntu »
- Архив »
- Архив »
- Архив тем до 2016г »
- Удаление Grub из mbr диска
Автор Тема: Удаление Grub из mbr диска (Прочитано 5659 раз)
0 Пользователей и 1 Гость просматривают эту тему.
- Форум русскоязычного сообщества Ubuntu »
- Архив »
- Архив »
- Архив тем до 2016г »
- Удаление Grub из mbr диска
Страница сгенерирована за 0.052 секунд. Запросов: 23.
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Re: удалить mbr со всех дисков
dd if=/dev/zero of=/dev/hda bs=512 count=1 эта комманда удалит только первые 512 байтов, а вся файлопомойка останется?
Re: удалить mbr со всех дисков
таблица разбиения тоже похерится. там нужно не все 512 байт переписывать. use поиск, тут уже обсуждали.
Re: удалить mbr со всех дисков
443 вроде. Или как-то так.
Re: удалить mbr со всех дисков
загрузить старый мс дос и сделать fdisk /mbr
Re: удалить mbr со всех дисков
> груб[. ]как удалить?
Re: удалить mbr со всех дисков
Re: удалить mbr со всех дисков
не забудь сначала забэкапить то что есть на всякий пожарный
куда нить на съемное устройство
dd if=/dev/диск of=/путь/my_mbr bs=512 count=1
А то вдруг че не так пойдет.
Re: удалить mbr со всех дисков
На моем 386 и на 20 мб. сеагейте низкоуровневое форматирование все сносило к чертям.
Как стереть код загрузчика в mbr linux
Экспериментировать — это увлекательное занятие. В конце концов, одна из вещей, которая делает Linux столь интересным для ряда людей — это возможность «крутить» параметры настройки и наблюдать: а что же получится. Признаюсь, что и для меня — это решающий фактор. Одна из трудностей, тем не менее, заключается в том, что некоторые типы таких «кручений-верчений» могут привести к серьезным проблемам. Фактически, это несколько напоминает подпиливание сука на котором сидишь.
Ряд людей обращается в Answer Gang с вопросом, похожим на этот:
Что же оказывается — после того как полиция, пожарное подразделение, большие люди в белых халатах приедут и уедут — оказывается они (не пожарные-полиция, а экспериментаторы 🙂 столкнулись с классической проблемой «жареный 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 байтовый кусок памяти нулями, введя на приглашение ‘-‘ команду:
Перейдите в режим ассемблера командой ‘a’, и введите следующий код:
Нажмите <Enter>, чтобы выйти из режима ассемблера, глубоко вдохните — и давите на «g» для исполнения кода, потом «q» для выхода из «debug». Ваш HD девственно чист и готов к разбиению на разделы и установке.
Разумеется, у Вас должны быть права. о, опа. Любой, кто придет с досовской дискеткой, может сделать это на Вашей системе примерно за минуту, включая время загрузки. Нуте-с посмотрим; куда же опять завалилась та самая статья о безопасности Вашего компьютера.
Ссылки
DOS решение: Первоначальная идея и код Марка Минаси (Mark Minasi), использовались для очистки инфeцированных/поврежденных MBR-ов и с его согласия использованы мной для обучения; все изменения в коде/командах — мои.
dd (Русский)
dd — это основная утилита, основной задачей которой является конвертация и копирование файлов.
Как и cp, по умолчанию dd делает точную копию файла, но позволяет контролировать параметры ввода-вывода на низком уровне.
Подробности можно почитать в dd(1) или полной документации.
Установка
dd входит в состав GNU coreutils . Другие утилиты из этого пакета описаны в статье Основные утилиты.
Клонирование диска и восстановление
Команда dd — это простой, но универсальный и мощный инструмент. Она может использоваться для копирования, блок за блоком, независимо от типа файловой системы или операционной системы. Нередко dd используется в LiveCD.
Клонирование раздела
Копирование раздела 1 на диске /dev/sda в раздел 1 на диске /dev/sdb :
Клонирование всего диска
Копирование физического диска /dev/sda в диск /dev/sdb :
Эта команда скопирует диск целиком, в том числе таблицу разделов, загрузчик, разделы, UUID и данные.
- bs= устанавливает размер блока. По умолчанию 512 байт, что является «классическим» размером блока для жёстких дисков с начала 1980-х годов, но не самым удобным. Используйте большее значение, 64K или 128K. Также прочитайте предупреждение ниже, потому что это не просто «размер блока» — это также влияет на обработку ошибок чтения. Смотрите [1] и [2] для получения подробной информации и определения наилучшего значения bs для вашего случая.
- noerror указывает dd продолжить работу, игнорируя все ошибки чтения. По умолчанию dd прекращает работу при любой ошибке.
- sync заполняет входные блоки нулями, если были ошибки чтения, чтобы смещения данных оставались правильными.
- status=progress показывает статистику передачи данных, которая позволяет оценить время завершения.
Утилита dd технически имеет «размер входного блока» (IBS) и «размер выходного блока» (OBS). Когда вы устанавливаете bs , вы фактически устанавливаете и IBS, и OBS. Обычно, если размер блока, скажем, 1 МиБ, dd считывает 1024×1024 байт и записывает столько же байт. Но если произойдет ошибка чтения, всё пойдет не так. Многие думают, что dd «заполнит ошибки чтения нулями», если вы используете опции noerror,sync , но это не так. dd, согласно документации, дополнит размер OBS до размера IBS после завершения чтения, что означает добавление нулей в конце блока. То есть, весь 1 МиБ будет испорчен из-за одной ошибки чтения в 512 байт в начале чтения: 12ERROR89 станет 128900000 вместо 120000089.
Если вы уверены, что ваш диск не содержит ошибок, вы можете использовать больший размер блока, что увеличит скорость копирования в несколько раз. Например, изменение bs с 512 до 64K изменило скорость копирования с 35 МБ/с до 120 МБ/с на простой системе Celeron 2,7 ГГц. Но имейте в виду, что ошибки чтения на исходном диске будут в конечном итоге выглядеть как ошибки блоков на целевом диске, то есть одна ошибка чтения 512 байт испортит весь выходной блок размером 64 КиБ.
- Чтобы сделать UUID файловых систем ext2/3/4 снова уникальными после копирования, используйте tune2fs /dev/sdXY -U random для каждого раздела. Для разделов подкачки используйте mkswap /dev/sdXY .
- Если вы копируете GPT-диск, вы можете использовать sgdisk для рандомизации GUID диска и разделов и восстановления их уникальности.
- Изменения таблицы разделов, которые внёс dd на целевом диске, не регистрируются ядром. Чтобы попросить ядро перечитать таблицы разделов без перезагрузки, можно использовать утилиту partprobe (часть GNU Parted).
Резервное копирование таблицы разделов
Создание образа диска
Загрузитесь в LiveCD и убедитесь, что разделы исходного диска не примонтированы.
Затем смонтируйте целевой диск и запишите на него резервную копию:
При необходимости (например, если результирующие файлы будут храниться в файловой системе FAT32) можно разделить образ диска на несколько частей (смотрите также split(1) ):
Если не хватает свободного места на локальном диске, можно отправить образ через ssh:
Наконец, сохраните дополнительную информацию о геометрии диска, необходимую для интерпретации таблицы разделов, хранящейся в образе. Наиболее важной из них является размер цилиндра.
Восстановление системы
Чтобы восстановиться из такой резервной копии:
Если образ был разделён на несколько частей командой split, используйте другую команду (обратите внимание на звёздочку):
Патчинг бинарных файлов
Если нужно заменить заменить три байта FF C0 14 по смещению 0x123AB , это можно сделать с помощью такой команды:
Резервное копирование и восстановление MBR
Перед внесением изменений на диск можно создать резервную копию таблицы разделов и схемы разделов диска. Также можно использовать резервную копию для копирования одной и той же схемы разделов на несколько дисков.
MBR хранится в первых 512 байтах диска. Она состоит из 4 частей:
- Первые 440 байт содержат загрузочный код (загрузчик).
- Следующие 6 байт содержат сигнатуру диска.
- Следующие 64 байта содержат таблицу разделов (4 записи по 16 байт каждая, по одной записи на каждый основной раздел).
- Последние 2 байта содержат сигнатуру загрузки.
Сохранение MBR в mbr_file.img :
Также можно извлечь MBR из полного образа диска dd:
Для восстановления (будьте осторожны, это уничтожит существующую таблицу разделов, а вместе с ней и доступ ко всем данным на диске):
Если вы хотите восстановить только загрузчик, но не информацию о разделах, просто восстановите первые 440 байт MBR:
Восстановление только таблицы разделов без затрагивания загрузчика и сигнатуры:
Удаление загрузчика
Чтобы стереть загрузочный код MBR (может быть полезно, если вам нужно сделать полную переустановку другой операционной системы), можно обнулить первые 440 байт:
Решение проблем
Partial read
Файлы, созданные с помощью dd, могут иметь меньший размер, чем запрошено, если полный входной блок недоступен и системный вызов read(2) завершается раньше времени. Это может произойти при чтении из pipe(7) или при чтении с /dev/random и недостаточной энтропии[3], или с /dev/urandom при чтении более 32 МиБ[4].
Возможно, но не гарантировано, что dd предупредит вас об этой проблеме:
Решается это так, как и предлагает предупреждение: добавлением iflag=fullblock к команде dd:
Для /dev/urandom также можно задать большее число копируемых блоков:
При чтении из pipe альтернативой для для iflag=fullblock может быть прописывние для bs значения PIPE_BUF , которое определено в /usr/include/linux/limits.h [5]. Например: