Создание образа GPT-диска с несколькими разделами без loop-устройств
Всем привет.
Возникла следующая задача: создать образ диска с GPT и двумя разделами (EFI/FAT32 и ext4), чтобы его можно было сразу заливать на блочное устройство.
Я быстро родил тривиальное решение:
- создать болванку образа нужного размера с помощью
truncate
sgdisk
’ом разметить образ в GPT с двумя разделами нужных типов- создать
loop
-ноды для образа диска черезlosetup
- примонтировать
loopNpM
, залить данные, отмонтировать и убратьloop
-ноды
Тем не менее, я хотел бы допилить это решение так, чтобы оно работало и на системах без возможности создания loop
-нод (в ограниченных контейнерах, например).
В голову пришла мысль создать болванку с GPT-таблицей и cat
’ом или dd
’шкой присобачить в конец этой болванки образы разделов (создаваемые условными mkfs.XXX part_XXX.img
). Попытался реализовать - не вышло, образ диска превращается в кашу, хоть я вроде и указывал отступ на 2048 байт от начала. Скорее всего я просто не осилил что-то в используемых утилитах, либо не вкурил матчасть.
Итак, вопрос: как в болванку образа GPT-диска добавить разделы из своих образов без использования loop-устройств?
UPD: вот так.