Удалить mbr с диска linux

Обновлено: 05.07.2024

Экспериментировать - это увлекательное занятие. В конце концов, одна из вещей, которая делает 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 байтовый кусок памяти нулями, введя на приглашение '-' команду:

Перейдите в режим ассемблера командой 'a', и введите следующий код:

Нажмите <Enter>, чтобы выйти из режима ассемблера, глубоко вдохните - и давите на "g" для исполнения кода, потом "q" для выхода из "debug". Ваш HD девственно чист и готов к разбиению на разделы и установке.

Разумеется, у Вас должны быть права. о, опа. Любой, кто придет с досовской дискеткой, может сделать это на Вашей системе примерно за минуту, включая время загрузки. Нуте-с посмотрим; куда же опять завалилась та самая статья о безопасности Вашего компьютера.

Ссылки

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

Как удалить все разделы на устройстве из командной строки в Linux (в частности, в Ubuntu)? Я попытался посмотреть на fdisk, но он представляет интерактивную подсказку. Я ищу одну команду, которую я могу указать путь к устройству (например, / dev / sda), и он удалит ext4, linux-swap и все остальные разделы, которые он найдет. По сути, это было бы так же, как если бы я должен был открыть GParted, а также вручную выбрать и удалить все разделы. Это кажется довольно простым, но, к сожалению, я не смог найти что-либо через Google.

Будет ли этого достаточно?

Это не удалит разделы. Удаляя разделы, он хотел сохранить MBR и просто очистить таблицу разделов. Нет, похоже, это именно то, что мне нужно. Мне все равно, если данные все еще там. GParted показывает, что разделы исчезли после запуска этого, и это то, что я хотел. Мирча Вутковичи говорил не о ваших данных, а о загрузочном коде в вашей MBR. Теперь этого нет, потому что вы удалили его вместе с 4 первичными записями из таблицы разделов в стиле MBR. Не забудьте отключить драйвер, иначе он не будет работать. Это также прекрасно работает, если вы использовали ZFS на диске и перенастроили его для чего-то другого. Ни стандартные разделы и форматы Windows или Linux не избавят от ярлыков ZFS, которые могут вызвать серьезные проблемы.

wipefs Программа позволяет легко удалить раздел стола подпись:

wipefs может стереть подписи файловой системы, raid или таблицы разделов (магические строки) с указанного устройства, чтобы сделать подписи невидимыми для libblkid.

wipefs не удаляет ни файловую систему, ни другие данные с устройства. При использовании без каких-либо параметров, wipefs перечисляет все видимые файловые системы и смещения их основных сигнатур.

wipefs вызывает BLKRRPART ioctl, когда стирает подпись таблицы разделов, чтобы сообщить ядру об изменении.

Быстро и грязно: используйте gparted для удаления разделов, или если вы спешите:

Это уничтожит MBR диска (данные все еще не повреждены).

В качестве альтернативы:

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

Смотрите man sfdisk , это не интерактивный вариант fdisk. Кроме этого, вы можете удалить всю таблицу разделов с помощью dd, как написал pk.

Вы должны быть в состоянии использовать parted для этого, но это может потребовать некоторых сценариев для циклического прохождения разделов.

Если мы говорим о разделах в стиле MBR .

Эта стандартная команда копирует байты из источника и записывает их в место назначения. Это самый простой гибкий инструмент для этой работы.

Здесь мы указываем, что мы читаем /dev/zero , это специальное устройство, которое излучает NUL байты - нули.

Здесь мы указываем, на какое устройство мы пишем.

dd думает с точки зрения блоков . Размер блока по умолчанию может быть 512 байт, 1024 байт или 4096 байт, в зависимости от вашей системы. Однако нам нужно обратиться к вещам более точно, поэтому мы советуем dd использовать размер блока 1 байт.

Здесь мы говорим dd записать 64 блока (или байта из-за нашего bs=1 параметра), так как основная таблица разделов состоит из 4 16-байтовых записей разделов, в общей сложности 64 байта.

Основная таблица разделов в MBR (то есть, не говоря уже о GPT) расположена в 446 байтах, поэтому мы просим dd искать 446 байтов до записи.

Расширенные разделы обычно создаются с использованием основного слота раздела, чтобы указывать на расширенную таблицу разделов, поэтому, если мы удалим 4 основных раздела, мы также эффективно очистим расширенную таблицу разделов; ОС не сможет найти его, поэтому не сможет прочитать и интерпретировать его. (Если вы хотите стереть расширенную таблицу разделов, вам нужно больше узнать об операционной системе; разные операционные системы делают расширенные разделы по-разному.)

Я хотел сделать то же самое (за исключением Slackware 14.2), но обнаружил, что не могу повлиять на большинство предложенных здесь решений, поскольку наиболее тщательно продуманное и хорошо документированное решение создает новые проблемы для создания замещающих разделов. Это привело к удалению раздела, но некоторые программы создания разделов, по-видимому, автоматически находили резервные копии разделов.

fdisk — общее название системных утилит для управления разделами жёсткого диска. Широко распространены и имеются практически в любой операционной системе, но работают по-разному. Используют текстовый интерфейс пользователя.

Предупреждение: Не создавайте, не удаляйте и не изменяйте разделы, если вы не знаете, что вы делаете!

Утилита FDISK в Unix/Linux

С FDISK утилитой можно просматривать, создавать, изменять размер, удалять, копировать и перемещать разделы на жестком диске. И я приведу наглядные примеры по использованию.

Просмотр разделов в Unix/Linux

И так, запустим команду:

Вывод получаем следующий:

fdisk -l

Можно узнать некоторую полезную информацию по конкретному блочному устройству. Например, следующая команда отобразит все разделы для /dev/sda:

fdisk -l /dev/sda

Если у Вас есть разные названия устройств, простое имя устройства записи как /dev/sdb или /dev/sdc и так далее.

Вывод доступных команд по FDISK

Если вы хотели бы просмотреть все команды, которые доступны для FDISK, то просто используйте следующую команду, упомянув название жесткого диска, например /dev/sda, как показано ниже:

вывод все доступных команд для FDISK

вывод все доступных команд для FDISK например для /dev/sda

список команд FDISK

Допустимые опции при работы с fdisk

Вывод всех партиций (разделов) в Unix/Linux

Чтобы вывести таблицу разделов вашего блочного устройства, используйте:

таблица разделов fdisk

Создать таблицу разделов ( disklabel) в Unix/Linux

Если имеется пустое блочное устройство и вы хотите на нем сделать разметку для установки будущей ОС, то для начала, стоит выбрать будущую разметку.

Приеду основные таблицы для разметки:

Чтобы создать таблицу разделов вашего блочного устройства, используйте:

Данным действием было выбрано блочное устройство /dev/sda и чтобы создать на нем новую таблицу разделов, используем одну из опций:

И переходим к созданию разделов.

Создать новый раздел в Unix/Linux

И так, допустим у вас есть свободное место на одном из устройств ( у меня это /dev/sda) и вам необходимо создать новый раздел (например для установки ОС). Тогда вы должны запустить утилиту следующим образом (Введите следующую команду, чтобы войти в режим управления конкретного блочного устройства):

Как создать новый раздел в Linux fdisk

Как создать новый раздел в Linux fdisk

Можно еще создать несколько разделов. Действия будут какие же.

Форматирование разделов в Unix/Linux

После того, как разделы создали, необходимо выполнить форматирование. Но прежде чем перейти к данному действию, нужно определится с файловой системой (ФС).

Выбираем тип ФС и переходим к фармотированию.

Проверить размер раздела в Unix/Linux

Размер отображается в блоках.

Для вывода в гигабайтах (Гб), используйте:

Включение/Выключение загрузки флага (*) из раздела в Unix/Linux

При разметке, я обычно выделяю 100мб для раздела, в котором будет хранится загрузчик. И для этой цели, необходимо указать что именно с него будет выполнятся загрузка. И по этому, нужно указать нужный из разделов. Начнем:

Как отключить загрузки флага из раздела fdisk

Как отключить загрузки флага из раздела fdisk

Удалить раздел в Unix/Linux

Как удалить раздел в Linux fdisk

Как удалить раздел в Linux fdisk

Использование fdisk в bash скриптах

Если хорошо знаешь команды, то можно написать небольшой баш-скрипт или просто использовать данную конструкцию в шеле оболочки, который эмулировал бы работу пользователя:

Я не буду объяснять что делает данные буквы, т.к я описывал все опции выше.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Это очень полезный инструмент для выделения пространства для новых разделов, организации пространства на новых дисках, реорганизации старых дисков, а также копирования или перемещения данных на новых дисков. Он позволяет создавать до четырех первичных разделов и некоторое количество логических (расширенных) разделов в зависимости от размера жесткого диска в вашей системе.

Мы рассмотрим ряд базовых команд fdisk для управления таблицей разделов в Linux. Для запуска команды fdisk нужно обладать root-привилегиями (или использовать sudo), иначе будет выведена ошибка “command not found”.

Просмотр всех разделов диска


Просмотр разделов заданного диска

Для просмотра всех разделов заданного жесткого диска укажите опцию -l с именем устройства. Например, следующая команда отобразит все разделы диска /dev/sda :


Командный режим

Чтобы войти в командный режим, просто введите fdisk с именем жёсткого диска, например, /dev/sda , как показано ниже:


Для получения списка команд, которые fdisk может выполнить на диске, введите “m”. Рассмотрим значение этих команд.

Удаление раздела

Допустим, нам нужно удалить определенный раздел, например, /dev/sda4, с определенного жёсткого диска, например, /dev/sda. Сначала нужно зайти в командный режим:

Затем введите d для удаления раздела. После этого у вас будет запрошен номер раздела для удаления с диска /dev/xvdb. Для удаления раздела номер 2 (то есть, /dev/xvdb2) нужно ввести соответствующую цифру, 2. Затем нужно ввести команду w, чтобы записать таблицу на диск и выйти.



Как мы видим раздел /dev/xvdb2 был удален.

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

Создание нового раздела

Войдите в командный режим и введите “n”:


При создании нового раздела нужно выбрать одну из двух опций: extended для логического раздела или primary для первичного и нажать, соответственно, e или p . Затем потребуется ввести номера первого и последнего цилиндра раздела (либо смещение в цилиндрах или размер). Лучше всего оставить заданное по умолчанию значение первого цилиндра и ввести нужный размер раздела, например, “+5000M”, что означает размер 5000 мегабайт. После создания раздела нужно нажать w для сохранения изменений в таблице разделов.


Теперь мы видим на диске /dev/xvdb два раздела.

Также при создании раздела можно указать размер раздела с помощью опции +size. Т.е если нужно создать раздел размером 2 Гб, в качестве последнего сектора можно указать +2G


Форматирование раздела

После создания нового раздела не забудьте отформатировать его командой mkfs. Для этого выполните следующую команду:

где в ключе -t указываем тип файловой системы в которую мы хотим отформатировать наш раздел.


Проверка размера раздела

Когда раздел отформатирован, проверьте его размер при помощи опции -s (размер отображается в блоках). Так можно узнать размер любого заданного устройства:


Исправление нумерации в таблице разделов

Если вы удалили логический раздел, возможны ошибки вида ‘partition out of order‘ (нарушение порядка разделов) или ‘Partition table entries are not in disk order‘ (записи таблицы разделов не соответствуют порядку дисков). Допустим у нас диск со следующими разделами


Флаг загрузочного раздела

Чтобы включить или отключить на заданном разделе флаг загрузочного раздела (отображается символом ‘*’ в таблице разделов), нужно выполнить следующие действия.

fdisk -l /dev/xvda

Вы увидите на диске /dev/sda1 флаг загрузочного раздела (звёздочка ‘*’)



Заключение

Мы рассмотрели базовые возможности команды fdisk, необходимые для работы с разделами. Более подробную информацию, в том числе об экспертных командах, доступ к которым осуществляется командой x , можно получить на соответствующей man-странице ( man fdisk ).

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: