sfdisk для MBR и sgdisk для GPT являются предпочтительными для работы с таблицами разделов, обеспечивая гибкость и контроль.scp) и восстановление таблицы на целевом диске.Копирование таблицы разделов — это процесс переноса информации о структуре разделов (их размеры, типы, порядок) с одного жесткого диска на другой. Важно понимать, что этот процесс не копирует сами данные, хранящиеся в этих разделах, а только их "карту". Это может быть полезно при настройке новых дисков с идентичной разметкой, при миграции конфигурации системы, или для восстановления структуры диска после сбоя.
Операция требует внимательности, особенно при работе с удаленными хостами, так как необходимо обеспечить корректную передачу данных и правильное применение изменений на целевой системе. Мы рассмотрим методы для двух основных типов таблиц разделов: MBR и GPT.
Концептуальное изображение таблицы разделов диска.
Прежде чем приступить к копированию, важно разобраться с основными типами таблиц разделов и инструментами, которые мы будем использовать.
Существует два основных стандарта для схем разметки дисков:
Упрощенная структура диска с MBR.
Упрощенная структура диска с GPT, показывающая основную и резервную таблицы.
Эта таблица поможет вам лучше понять различия между MBR и GPT, что важно при выборе инструментов и методов копирования таблицы разделов.
| Характеристика | MBR (Master Boot Record) | GPT (GUID Partition Table) |
|---|---|---|
| Максимальный размер диска | Обычно 2 ТБ (с 512-байтными секторами) | Очень большой (теоретически зеттабайты) |
| Максимальное число разделов | 4 основных (или 3 основных + 1 расширенный, который может содержать логические разделы) | 128 разделов по умолчанию в Windows (стандарт позволяет больше) |
| Хранение таблицы разделов | В первом секторе диска (Master Boot Record) | В начале диска (Primary GPT Header) + резервная копия в конце диска (Backup GPT Header) |
| Отказоустойчивость | Низкая (одна копия таблицы, повреждение MBR может сделать диск недоступным) | Выше (наличие резервной копии таблицы и CRC для проверки целостности) |
| Идентификаторы разделов | 32-битные сигнатуры диска, типы разделов задаются байтом | Глобально уникальные идентификаторы (GUID) для каждого раздела и для самого диска |
| Загрузка ОС | Традиционный BIOS | UEFI (Unified Extensible Firmware Interface), может поддерживать загрузку через BIOS Compatibility Support Module (CSM) |
sfdisk: Мощная утилита для работы с таблицами разделов MBR. Позволяет создавать дамп (текстовое представление) таблицы разделов, а также восстанавливать ее из такого дампа. Новые версии могут иметь ограниченную поддержку GPT.sgdisk (часть пакета gdisk): Современный инструмент, предназначенный для работы с таблицами разделов GPT. Позволяет создавать бинарные резервные копии таблицы GPT и восстанавливать их, а также выполнять множество других операций с GPT-разделами, включая изменение GUID диска и разделов.dd: Утилита для побайтового копирования данных. Может использоваться для копирования первых секторов диска (где находится MBR), но это крайне рискованный метод, особенно для GPT, так как он не учитывает всю структуру GPT (включая резервную таблицу в конце диска) и легко может привести к повреждению данных при малейшей ошибке. Для копирования только таблицы разделов лучше использовать специализированные инструменты.ssh (Secure Shell): Протокол и утилита для безопасного удаленного доступа к командной строке другого компьютера. Необходим для выполнения команд на удаленном хосте.scp (Secure Copy): Утилита для безопасного копирования файлов между хостами по сети, использующая протокол SSH.Процесс копирования таблицы разделов на удаленный хост можно разбить на несколько этапов. Внимание: все операции с дисками требуют прав суперпользователя (sudo). Будьте предельно осторожны и убедитесь, что вы указываете правильные имена дисков (например, /dev/sda, /dev/sdb), чтобы не повредить существующие данные.
/dev/sdx). На удаленном хосте определите имя целевого диска (например, /dev/sdy). Используйте команды lsblk или sudo fdisk -l для просмотра списка дисков и их разделов.sudo fdisk -l /dev/sdx. В выводе обратите внимание на строку "Тип метки диска" (Disklabel type) – это будет dos (для MBR) или gpt./dev/sdy на удаленном хосте нет важных данных, так как они будут уничтожены при записи новой таблицы разделов. Также желательно, чтобы целевой диск был не меньше исходного. Если он меньше, не все разделы могут быть скопированы корректно.sfdisk это обычно пакет util-linux (часто установлен по умолчанию). Для sgdisk – пакет gdisk.
# Пример установки gdisk на Debian/Ubuntu-подобных системах
sudo apt update
sudo apt install gdisk util-linux
Этот шаг выполняется на машине, где находится диск-источник.
sfdisk):Команда создаст текстовый файл partition_table_mbr.sfdisk, содержащий описание таблицы разделов.
sudo sfdisk -d /dev/sdx > partition_table_mbr.sfdisk
Замените /dev/sdx на имя вашего исходного диска.
sgdisk):Команда создаст бинарный файл partition_table_gpt.gpt, содержащий резервную копию таблицы GPT.
sudo sgdisk --backup=partition_table_gpt.gpt /dev/sdx
Замените /dev/sdx на имя вашего исходного диска.
Используйте утилиту scp для копирования созданного файла (partition_table_mbr.sfdisk или partition_table_gpt.gpt) на удаленный хост. Например, в домашнюю директорию пользователя на удаленном хосте:
# Для MBR
scp partition_table_mbr.sfdisk пользователь@удаленный_хост:/путь/к/папке/
# Для GPT
scp partition_table_gpt.gpt пользователь@удаленный_хост:/путь/к/папке/
Замените пользователь@удаленный_хост и /путь/к/папке/ на ваши реальные данные.
Сначала подключитесь к удаленному хосту по SSH:
ssh пользователь@удаленный_хост
Затем, на удаленном хосте, выполните следующие команды для восстановления таблицы разделов на целевой диск (например, /dev/sdy). Будьте предельно осторожны, выбирая целевой диск!
sfdisk):sudo sfdisk /dev/sdy < /путь/к/папке/partition_table_mbr.sfdisk
Замените /dev/sdy на имя вашего целевого диска и укажите правильный путь к файлу.
sgdisk):sudo sgdisk --load-backup=/путь/к/папке/partition_table_gpt.gpt /dev/sdy
Замените /dev/sdy на имя вашего целевого диска и укажите правильный путь к файлу.
После восстановления таблицы GPT рекомендуется сгенерировать новые GUID для диска и разделов, чтобы избежать конфликтов, если исходный и целевой диски когда-либо окажутся в одной системе:
sudo sgdisk -G /dev/sdy
partprobe:
sudo partprobe /dev/sdy
В некоторых случаях может потребоваться перезагрузка удаленного хоста (sudo reboot).
sudo fdisk -l /dev/sdy
lsblk /dev/sdy
parted или gparted, для изменения размера раздела. Например, для расширения последнего раздела GPT с помощью parted (предположим, это раздел номер 3):
sudo parted /dev/sdy resizepart 3 100%
Это расширит раздел 3 до конца диска. После этого необходимо будет изменить размер файловой системы внутри этого раздела (например, с помощью resize2fs для ext2/3/4).
Этот радарный график сравнивает различные утилиты по нескольким критериям, важным при копировании таблиц разделов. Оценка от 2 (минимально) до 10 (максимально).
Как видно из графика, sfdisk и sgdisk являются более предпочтительными и безопасными инструментами для работы с таблицами разделов MBR и GPT соответственно, по сравнению с dd, который менее гибок и более рискован для этой конкретной задачи.
Эта ментальная карта иллюстрирует общий процесс копирования таблицы разделов с одного диска на другой, включая шаги на исходном и удаленном хостах.
Эта схема помогает наглядно представить последовательность действий и ключевые моменты, на которые стоит обратить внимание.
Для MBR-таблиц существует возможность передать дамп таблицы разделов напрямую через SSH, без создания промежуточного файла. Это более "продвинутый" метод и требует особой осторожности.
sudo sfdisk -d /dev/sdx | ssh пользователь@удаленный_хост "sudo sfdisk /dev/sdy"
Замените /dev/sdx на исходный диск, пользователь@удаленный_хост на ваши данные, и /dev/sdy на целевой диск на удаленном хосте.
Внимание: Этот метод менее нагляден, и любая ошибка в команде может иметь серьезные последствия. Для GPT такой прямой метод с sgdisk сложнее реализовать из-за бинарного формата бэкапа и необходимости отдельных команд для загрузки и генерации GUID.
Хотя это видео не посвящено исключительно копированию таблицы разделов на удаленный хост, оно демонстрирует работу с утилитами dd и GParted, которые являются мощными инструментами для управления дисками и разделами в Linux. Понимание принципов их работы может быть полезно. Обратите внимание, что dd следует использовать с крайней осторожностью.
В данном видео автор показывает, как можно использовать dd и GParted для клонирования дисков различных размеров. Хотя прямое копирование таблицы разделов на удаленный хост требует специфических шагов с sfdisk/sgdisk и scp, общие концепции работы с разделами, представленные здесь, могут расширить ваше понимание.
dd хорошей альтернативой для этой конкретной задачи?