Я лично предпочитаю добавлять, используя dd
.
Я предполагаю, что 512-байтовые сектора здесь. Там может быть случай для 2048-байтовых секторов, так что просто поменяйте местами числа и сделайте математику.
В каждом случае я использую тестовый файл 512 МБ, например:
dd if=/dev/zero of=testfs.img bs=512 count=1M
mkfs.ext4 testfs.img
MBR
Составление изображения
Я лично предпочитаю добавить первый MB (2048 секторов) в его начало:
dd if=testfs.img skip=2048 bs=512 of=full.img
Наконец, запустив fdisk, чтобы создать таблицу разделов (или скопировать ее самостоятельно), я создал 1 раздел, используя значения по умолчанию.
Проверка
Чтобы проверить, создайте разделы цикла и автоопределите:
sudo losetup -fP full.img
И запустить file
на результирующем многораздельном кольцевом устройстве:
sudo file -s /dev/loop2p1
/dev/loop2p1: Linux rev 1.0 ext4 filesystem data, UUID=ae2945fd-54b5-486f-8dd0-9b18d6ae01b4 (extents) (large files) (huge files)
GPT
Составление изображения
Лично я предпочитаю добавить первый МБ (2048 секторов, поскольку gdisk по умолчанию будет указывать это число, так как он выровнен на 1 МБ) к его началу для начала MBR и 34 сектора к его концу (или 2048 для полного МБ) для конца GPT (конечный сектор может отличаться). Пропуск конечного GPT может привести к потере данных:
dd if=testfs.img skip=2048 bs=512 of=full.img
dd if=/dev/zero seek=1050624 bs=512 of=full.img count=34
Наконец, запустив gdisk, чтобы создать таблицу разделов (или скопировать ее самостоятельно), я создал 1 раздел, используя значения по умолчанию.
Проверка
Чтобы проверить, создайте разделы цикла и автоопределите:
sudo losetup -fP full.img
И запустить file
на результирующем многораздельном кольцевом устройстве:
sudo file -s /dev/loop2p1
/dev/loop2p1: Linux rev 1.0 ext4 filesystem data, UUID=ae2945fd-54b5-486f-8dd0-9b18d6ae01b4 (extents) (large files) (huge files)
Этот метод гарантирует отсутствие угадывания, изменения размера или выравнивания вручную.