4

Я хочу использовать sgdisk для удаления всех определений разделов и данных с устройства хранения, а затем создать GPT и два раздела на нем. Лучшее решение, которое я нашел, это использовать опции -Z и -o .

sgdisk -Zo \
    -n 1::16M -t 1:EF00 -c 1:ZNX_BOOT \
    -N 2 -t 2:8300 -c 2:ZNX_DATA /dev/[device]

Это, однако, дает сбой, если диск был создан с таблицей разделов MBR или если на него был записан образ диска. Как я могу заставить эту команду стереть любой диск независимо от используемого на нем стиля таблицы разделов?

3 ответа3

3

Я знаю, что это меняет вопрос, но возможно ли для вас использовать wipefs (который входит в пакет util-linux )? wipefs понимает, как очистить метаданные всех типов разделов (ing), и правильно избавится от MBR, GPT (вместе с резервным GPT), сигнатур файловой системы и т. д.

Примеры из раздела ПРИМЕРЫ внизу справочной страницы wipefs показывают, как вы можете это сделать:

wipefs /dev/sda*

Печатает информацию о sda и всех разделах на sda.

wipefs --all --backup /dev/sdb

Удаляет все подписи с устройства /dev/sdb и создает файл резервной копии подписи ~/wipefs-sdb-<offset>.bak для каждой подписи.

ВНИМАНИЕ: Как следует из названия, wipefs уничтожает данные ! Пожалуйста, будь осторожен...

2

Полагаю, я не вижу способа сделать это исключительно в sgdisk, но, к счастью, любезные ребята из Virtualhelp.me предложили сначала использовать dd , т.е.

dd if=/dev/zero of=/dev/sda bs=512 count=1

который предназначен для перезаписи того надоедливого раздела носителя MBR, который выбрасывает и sgdisk, и gdisk для цикла.

0

Эти команды сделали работу:

wipefs -af $DEVICE

sgdisk -Z \
    -n 1::132M -t 1:EF00 -c 1:ZNX_BOOT \
    -N 2 -t 2:8300 -c 2:ZNX_DATA $DEVICE

Команда firs очищает метаданные раздела, а вторая очищает данные.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .