Копирование таблицы разделов linux

fdisk (Русский)

Состояние перевода: На этой странице представлен перевод статьи fdisk. Дата последней синхронизации: 1 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

fdisk из пакета util-linux — интерактивная консольная утилита, которая может создать таблицу разделов и разделы на жестком диске и управлять ими. В таблице разделов описано разбиение жесткого диска на разделы.

Эта статья объясняет fdisk(8) и связанную с ней утилиту sfdisk(8) .

Совет: Для базовых функций разметки можно использовать cfdisk(8) с текстовым пользовательским интерфейсом.

Установка

fdisk и связанные с ним утилиты входят в состав пакета util-linux , который является частью мета-пакета base .

Список разделов

Чтобы просмотреть таблицы разделов и разделы на блочном устройстве, вы можете запустить fdisk, указав устройство (например: /dev/sda ), /dev/nvme0n1 , /dev/mmcblk0 , и т.д.):

Примечание: Если устройство не указано, fdisk покажет все разделы из /proc/partitions .

Резервное копирование и восстановление таблицы разделов

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

Вы можете использовать sfdisk для таблиц разделов GPT и MBR, чтобы сохранить разметку разделов вашего устройства в файл с параметром -d / —dump . Выполните следующую команду для устройства /dev/sda :

Файл должен выглядеть примерно так для одного раздела ext4 размером 1 ГиБ:

label: gpt label-id: AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE device: /dev/sda unit: sectors first-lba: 34 last-lba: 1048576 /dev/sda1 : start=2048, size=1048576, type=0FC63DAF-8483-4772-8E79-3D69D8477DE4, uuid=BBF1CD36-9262-463E-A4FB-81E32C12BDE7

Чтобы позже восстановить эту разметку, вы можете выполнить:

Создание таблицы разделов и самих разделов

Первый шаг в разметке диска — создание таблицы разделов. После этого создаются собственно разделы в соответствии с желаемой схемой разметки. Смотрите статью Разметка диска, чтобы решить, что выбрать для использования: MBR или GPT.

Перед началом вы можете сделать резервную копию вашей текущей таблицы разделов и схемы.

В недавних версиях fdisk отказались от устаревшей системы использования цилиндров в качестве стандартной единицы измерения, как и от совместимости с MS-DOS по умолчанию. fdisk автоматически выполняет выравнивание по 2048 512-байтовым секторам (1 МиБ), что должно быть совместимо со всеми расширенными форматами HDD и подавляющим большинством SSD. Это означает, что с настройками по умолчанию вы получите правильное выравнивание.

Читайте также:  Install ifconfig on linux

Чтобы использовать fdisk, запустите программу с именем блочного устройства, которое вы хотите изменить. В этом примере используется /dev/sda :

Это откроет интерактивный режим fdisk, где вы можете вводить команды.

Создание новой таблицы

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

Чтобы создать новую таблицу разделов и удалить всю текущую информацию о разделах, введите o для таблицы разделов MBR или g для таблицы разделов GUID (GPT). Пропустите эти шаги, если необходимая таблица уже была создана.

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

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

Примечание: Рекомендации по размеру и расположению разделов можно почитать в статье Разметка дисков#Схема разметки.

Тип раздела

При исплоьзовании MBR fdisk спросит тип раздела. Введите p для создания первичного раздела или e для создания расширенного. Может быть до четырёх основных разделов.

fidsk не спрашивает ID типа раздела и по умолчанию использует ‘Linux filesystem’; вы сможете изменить его позже.

Номер раздела

Номер раздела — это номер, присвоенный разделу, например, раздел с номером 1 на диске /dev/sda будет /dev/sda1 . Номера разделов могут не совпадать с реальным порядком разделов на диске, в этом случае их можно отсортировать.

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

Первый и последний сектор

Первый сектор должен быть указан в абсолютном выражении с использованием номеров секторов. Последний сектор может быть задан с использованием абсолютного положения в секторах или в виде позиций, измеряемых в кибибайтах ( K ), мебибайтах ( M ), гибибайтах ( G ), тебибайтах ( T ) или пебибайтах ( P ).

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

  • в абсолютном выражении от начала диска. Например, 40M в качестве первого сектора указывает позицию 40 МиБ от начала диска.
  • в относительном выражении, предваряя размер символами +размер или размер . Например, +2G указывает на позицию через 2 ГиБ после начального сектора, а -200M указывает на позицию 200 МиБ перед последним доступным сектором.
Читайте также:  Get all permissions linux

Нажатие Enter без ввода значения использует значение по умолчанию, которое является началом самого большого доступного блока для первого сектора и концом того же блока для последнего сектора.

  • При разметке всегда рекомендуется использовать значения по умолчанию для первого и последнего секторов раздела. Кроме того, стоит указывать относительные размеры разделов с помощью нотации +размер и не использовать разделы меньше 1 МиБ. Такие разделы всегда будут выровнены в соответствии со свойствами устройства.
  • На диске MBR оставьте неразмеченными как минимум 33 512-байтовых сектора (16,5 КиБ) в конце диска на случай, если вам понадобится преобразовать MBR в GPT.
  • Системный раздел EFI требует тип EFI System .
  • GRUB требует раздел загрузки BIOS с типом BIOS boot при установке GRUB на диск с разметкой GPT.
  • Рекомендуется использовать Linux swap для любого раздела подкачки, так как systemd будет автоматически монтировать его.

Повторяйте эту процедуру, пока не получите желаемые разделы.

Изменение типа раздела

У каждого раздела есть определённый тип. MBR использует partition ID; GPT использует GUID типов разделов.

Нажмите t , чтобы изменить идентификатор типа раздела. Используемое по умолчанию значение Linux filesystem должно быть подходящим для большинства случаев.

  • Введите L для просмотра списка внутренних кодов fdisk.
  • При использовании GPT рекомендуется следовать Discoverable Partitions Specification, поскольку systemd-gpt-auto-generator(8) будет монтировать их автоматически.

Загрузочный раздел

Вы можете отметить раздел как загрузочный, введя a .

Запись изменений на диск

Для записи новой таблицы на диск и выхода используйте команду w .

Перемещение разделов

Важно: Разделы нельзя использовать в процессе их перемещения. Поскольку перемещение требует перезаписи всего раздела на диске, это медленная и потенциально опасная операция. Настоятельно рекомендуется создавать резервные копии! Согласно man-странице sfdisk, «эта операция рискованна и не является атомарной».

Чтобы переместить раздел, необходимо иметь свободное пространство в том месте, куда будет перемещён раздел. При необходимости можно освободить место, уменьшив разделы и файловые системы на них. Смотрите Parted (Русский)#Сжатие разделов. Чтобы переместить раздел:

# echo '+секторы,' | sfdisk --move-data устройство -N номер 

Где секторы — количество секторов для перемещения раздела ( + означает перемещение вперёд), устройство — устройство, на котором находится раздел, а номер — номер раздела. Обратите внимание, что если вы добавляете новый раздел в середине или в начале диска, вам, скорее всего, потребуется изменить нумерацию разделов. Смотрите #Сортировка разделов или режим «extra functionality» в fdisk.

Читайте также:  Astra linux сменить пароль администратора

Советы и рекомендации

Сортировка разделов

В ситуации, когда, например, новый раздел создаётся между двумя существующими или раздел удаляется, нумерация разделов может перестать соответствовать их реальному расположению на диске, и для исправления можно выполнить сортировку. В этом примере используется /dev/sda .

Если вы не используете постоянные имена для блочных устройств, то вам может понадобиться обновить файлы конфигурации, в которых используется нумерация разделов, в частности /etc/fstab и/или /etc/crypttab .

Примечание: Перед использованием новых разделов ядро должно перечитать обновлённую таблицу. Перезагрузитесь или попросите ядро перечитать таблицу разделов.

Смотрите также

Источник

How can I quickly copy a GPT partition scheme from one hard drive to another?

On a non GPT partition table I can do sfdisk -d /dev/sda | sfdisk /dev/sdb . But sfdisk doesn’t support GPT partition tables. What can I use instead? I’m looking for a one or two command solution, not just using GNU parted to output the partition sizes and then manually making them again.

The util-linux partitioning tools (including sfdisk ) were rewritten to include GPT support for util-linux 2.26. sfdisk differs from gdisk in that it doesn’t support putting a small boot partition before 1MiB, though, so it choked on my config. (bug reported upstream already.)

When I clone a MBR disk to a smaller disk, in addition to sfdisk -d I also edit the dump and modify start/end sectors. How do I do this with sgdisk for GPT disks? -R clones without intermediary backup file and -b creates a binary backup, not human readable/editable like sfdisk does!

update on this: sfdisk now accepts whatever you give it when used this way, including a small boot partition following the GPT, ending at 1MB. unix.stackexchange.com/a/12988/79808

5 Answers 5

Install gdisk which is available in the Ubuntu Universe repositories.

Then use the sgdisk command (man page here) to replicate the partition table:

sgdisk /dev/sdX -R /dev/sdY sgdisk -G /dev/sdY 

The first command copies the partition table of sdX to sdY (be careful not to mix these up). The second command randomizes the GUID on the disk and all the partitions. This is only necessary if the disks are to be used in the same machine, otherwise it’s unnecessary.

Источник

Оцените статью
Adblock
detector