В данном небольшом руководстве речь пойдет о том, как создать образ диска с несколькими разделами для передачи, например, заказчику или другим заинтересованным лицам. Добиться этого не трудно с помощью команды dd, но ключевым в данном случае является несколько разделов на диске. Каким образом можно создать образ, разделы, файловые системы. Все описаные в руководстве действия выполнены в ОС GNU/Linux Debian.
Зачем это вообще нужно? В моем случае необходимость в создании такого образа возникла потому, что заказчику нужно передать образ SD-карты, который тот мог бы установить на собственную SD-карту, после чего вставить в устройство, загрузиться и далее, скриптом, развернуть софт на внутренней MMC. Делать же образ со своей рабочей SD не хотелось, так как все карты памяти разные, кроме того образ должен быть редактируемым, например, для другой версии устройства в такой образ могут быть включены дополнительные модули. А так же, для удобства хранения, он должен иметь минимальный размер.
Итак, начнём.
1) Создаём файл образа диска заданного размера:
sudo dd if=/dev/zero of=${FILENAME} bs=${BYTES} count=${NUMBER_OF_BYTES}
2) Подключаем диск к системе, разбиваем и форматируем:
sudo losetup /dev/loop0 ${FILENAME}
sudo fdisk ${FILENAME} # как делить диск личное дело каждого
# может потребоваться повторное подключение образа, чтобы ос считала разделы
sudo losetup -d /dev/loop0
sudo losetup /dev/loop0 ${FILENAME}
# подключаем разделы
sudo kpartx -v -a /dev/loop0
# форматируем разделы, например, если образ диска включает два раздела