Я хочу сделать резервную копию всей схемы разделов жесткого диска, включая логические диски, чтобы я мог восстановить эту схему на другой диск. Я не хочу копировать содержимое разделов, только макет. Для основного и расширенного разделов это просто:
dd if=/dev/sda of=partitiontable.bin bs=1 skip=446 count=64 # backup
dd if=partitiontable.bin of=/dev/sda bs=1 seek=446 count=64 # restore
Но когда дело доходит до компоновки логических разделов, мне интересно, существует ли среди стандартных инструментов подобный способ сохранения макета? Я предполагаю, что основная проблема заключается в поиске смещений в местоположениях EBR, потому что с этим dd
все остальное сделает. Имейте в виду, что я должен иметь возможность поместить все обратно на (возможно) чистый диск и, таким образом, восстановить тот же макет. Использование инструментов разделения вроде fdisk
или parted
хорошо, но я должен быть в состоянии автоматизировать их использование (создание сценариев), и они не должны зависеть ни от каких пакетов, связанных с X - только командная строка.
В моем плане резервного копирования это делается вручную в небольшом скрипте Python с использованием модуля struct, но я скорее надеялся, что есть более простой способ.
источник
sfdisk
не работает с большими объемами и не поддерживает GPT.sfdisk -L /dev/sda < part_table
Это зависит от того, использует ли ваш исходный диск таблицу разделов MBR (также называемый "dos" или "msdos") или GPT (также называемый "GUID").
Диски объемом более 2 ТБ не могут использовать MBR, поэтому они являются GPT.
Диски до 2 ТБ могут использовать оба, поэтому вам сначала нужно выяснить, что это такое.
Предполагая, что вы работаете в Linux, используйте любую из следующих команд, чтобы узнать, какую таблицу разделов использует ваш исходный диск:
Дано
Для MBR дисков
используйте
sfdisk
как предложено в ответе Петра Узеля, или этот вариант:Для дисков GPT
Правильный ответ был дан здесь и здесь по Kris Харпер .
Вам нужен GPT fdisk . Посмотрите на странице загрузки или запустите
sudo apt-get install gdisk
.Затем используйте команду sgdisk :
Последняя команда рандомизирует GUID на диске и всех разделах. Это необходимо только в том случае, если диски должны использоваться на одном компьютере, в противном случае это не нужно.
источник
--backup=File
для экспорта таблицы разделов с исходного диска и--load-backup=File
для восстановления на целевом диске.Старые, но все еще интересные привязки pyparted и python-lvm .
Обновить:
Предыдущий был опубликован, потому что выше не работает во многих современных ситуациях для man-страницы sfdisk.
Эта команда, однако, поддерживает> 2 ТБ разделов и LVM.
Образец вывода:
источник
sda.parted
файла на новый диск?