Как сбросить жесткий диск (удалить Mbr и удалить разделы) из командной строки с помощью сценария без перезагрузки?

Попробуйте это:

// Initiate the class
$className = 'Controller_' . ucfirst($controller);
if (class_exists($className)) {
     // construct the code string and evaluate it.
     $code='$controller = new ' . $className . '($this->registry);';
     eval($code);
}
8
задан 13 April 2017 в 15:14
4 ответа

Используйте улучшенную неинтерактивную версию fdisk, который является , sfdisk

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

sfdisk --delete /dev/sda
0
ответ дан 2 December 2019 в 23:04

Я всегда просто использовал для этого parted. Он хорошо работает для изменения типа метки диска и добавления / удаления разделов, тем более что он может обрабатывать современные большие жесткие диски, в отличие от fdisk.

Вы можете запустить

$ sudo parted /dev/sda

. Это запустит работу и приведет вас в разделенный терминал. Затем вы можете запустить команду справки, чтобы отобразить все доступные команды. Это очень понятно.

Я отмечу, что да, вам необходимо, чтобы все разделы диска, которые вы хотите отформатировать, были отключены. Если бы вы просто искали более быстрый способ размонтировать все разделы, я думаю, вы могли бы сделать это с помощью регулярного выражения в команде umount, но это кажется глупым.

Используя parted для управления жестким диском, мне никогда не приходилось принудительно обновлять диск или что-то подобное.

Чтобы полностью обновить диск для нового использования, я обычно делаю следующее:

1) запускаю parted, выполнив sudo parted / dev / sda

2) ищу существующие разделы, запустив print

3) удалите существующие разделы, запустив rm 1 , заменив 1 номером раздела, который вы хотите удалить. Затем повторите для всех оставшихся разделов на диске.

4) сбросьте метку диска, запустив mklabel gpt Я использую тип метки gpt, но вы можете использовать стандартный msdos или как хотите. Вот список типов меток диска

5) Создайте новые разделы, запустив mkpart Это запустит вас через мастер создания раздела. По умолчанию начальная и конечная точки соответствуют секторам. Вы можете изменить это, выполнив команду unit перед запуском mkpart Таким образом, вы можете указать его в ГБ, или ТБ, или МБ и т. Д.

6) проверьте свои результаты с помощью print для просмотра информации о новой таблице разделов

7) Затем вам нужно отформатировать разделы. Этого не следует делать через parted, хотя для этого доступны некоторые опции. Я бы предложил вместо этого запустить quit , чтобы выйти из parted терминала, а затем использовать mkfs для форматирования разделов. Не забудьте запустить mkfs на / dev / sda1 вместо / dev / sda, потому что вы форматируете раздел, а не диск в целом.

Вот и все.

Надеюсь, это ответ на ваш вопрос.

Также вот онлайн-руководство для справки: https://www.gnu.org/software/parted/manual/html_node/index.html

EDIT:

OP хотел делать такие вещи из сценария, а не из терминала. Вы можете выполнить такую ​​же процедуру с помощью сценария, запустив parted с помощью однострочных команд, а не внутри терминала parted.

Например, команда

$ sudo parted /dev/sda print

распечатает информацию о диске и таблицу разделов на консоли bash, которой затем можно управлять с помощью grep и т. Д. Для создания переменных или чего угодно в сценарии bash.

2
ответ дан 2 December 2019 в 23:04

„Wipefs“ programa leidžia lengvai ištrinti skaidinio lentos parašą:

wipefs -a /dev/sda

Vis tiek turite sustabdyti bet kokį procesą naudodami įrenginį, pvz., LVM.

Nuo žmogaus servetėlės.

servetėlės ​​gali ištrinti failų sistemą, reidus ar skaidinių lentos parašus (magija eilutės) iš nurodyto įrenginio, kad parašai būtų nematomi

wipefs neištrina nei pačios failų sistemos, nei jokių kitų duomenų iš įrenginys. Naudojant be jokių galimybių, valytuvuose pateikiami visi sąrašai matomos failų sistemos ir jų pagrindinių parašų poslinkiai.

valytuvai iškviečia BLKRRPART ioctl, kai jis ištrina skirsnio lentelės parašas, kad branduolys būtų informuotas apie pakeitimą.

4
ответ дан 2 December 2019 в 23:04

По сути, это ошибка.

Ошибка: разделы 1 на / dev / sdc были записаны, но мы не может сообщить ядру об изменении, вероятно, потому что оно / они уже используются. В результате старые разделы останутся в использовании. Вам следует перезагрузиться сейчас, прежде чем вносить дальнейшие изменения.

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

Использование: fdisk -l для проверки параметров вашего диска:

0
ответ дан 15 April 2020 в 11:59

Теги

Похожие вопросы