IMG файл — это побайтовый образ диска. Иногда, полезно создать загрузочного live img файл, чтобы протестировать его в qemu или перенести данный образ на несколько флешек.

Также:

Создание img файла

Создайте img файл размером больше на 2гб чем предполагаемые данные, но при этом размер должен быть меньше чем флешка, на которую будет записан этот образ.

_x000D_dd if=/dev/zero of=/wp-content/uploads/blinux/usb.img bs=1M count=8192 conv=fsync status=progress

Синхронизируйте файлы

_x000D_sync -f

Выполните команду создания GPT разметки для img файла

_x000D_parted /wp-content/uploads/blinux/usb.img mklabel gpt

Запустите программу управления дисками

_x000D_cfdisk /wp-content/uploads/blinux/usb.img

Создайте primary раздел на весь диск

Size Type
1 100M EFI System
2 All space Linux root (x86-64)

Выведите на экран результат

_x000D_fdisk -lu /wp-content/uploads/blinux/usb.img

Должно вывести

_x000D_Disk /wp-content/uploads/blinux/usb.img: 8 GiB, 8589934592 bytes, 16777216 sectors_x000D_Units: sectors of 1 * 512 = 512 bytes_x000D_Sector size (logical/physical): 512 bytes / 512 bytes_x000D_I/O size (minimum/optimal): 512 bytes / 512 bytes_x000D_Disklabel type: gpt_x000D_Disk identifier: EDFCC007-0E71-47D3-B6D7-031EF67843E9_x000D__x000D_Device Start End Sectors Size Type_x000D_/wp-content/uploads/blinux/usb.img1 2048 206847 204800 100M EFI System_x000D_/wp-content/uploads/blinux/usb.img2 206848 16777182 16570335 7,9G Linux root (x86-64)

Создайте loop устройства

_x000D_losetup -Pf /wp-content/uploads/blinux/usb.img

Проверьте к какому loop устройству они подключены

_x000D_losetup -a

Создайте файловую систему

_x000D_mkfs.vfat -F32 /dev/loop0p1_x000D_mkfs.ext4 -L live_usb /dev/loop0p2

Проверьте файловую систему

_x000D_fsck -fv /dev/loop0p1_x000D_fsck -fv /dev/loop0p2

Проверьте правильно ли создали разметку

_x000D_parted /wp-content/uploads/blinux/usb.img print

У меня выдало следующее:

_x000D_Model: (file)_x000D_Disk /wp-content/uploads/blinux/usb.img: 8590MB_x000D_Sector size (logical/physical): 512B/512B_x000D_Partition Table: gpt_x000D_Disk Flags: _x000D__x000D_Number Start End Size File system Name Flags_x000D_ 1 1049kB 106MB 105MB fat32  boot, esp_x000D_ 2 106MB 8590MB 8484MB ext4

Монтирование img файла образа

Создайте папку и смонтируйте root usb

_x000D_mkdir -p /media/debian/root_x000D_mount /dev/loop0p2 /media/debian/root

Создайте папку для загрузчика

_x000D_mkdir -p /media/debian/root/boot/efi_x000D_mount /dev/loop0p1 /media/debian/root/boot/efi

Смонтируйте системные папки

_x000D_mkdir -p /media/debian/root/proc_x000D_mkdir -p /media/debian/root/sys_x000D_mkdir -p /media/debian/root/dev_x000D__x000D_mount -t proc proc /media/debian/root/proc_x000D_mount -t sysfs sys /media/debian/root/sys_x000D_mount -o bind /dev /media/debian/root/dev_x000D_mount -t devpts none /media/debian/root/dev/pts

Увеличение image файла

Если у вас, в процессе копирования, не хватило места в img файле, то его можно увеличить. Добавляем 1 гб к файлу.

_x000D_truncate -s +1G /wp-content/uploads/blinux/usb.img

Проверьте новый размер

_x000D_fdisk -l /wp-content/uploads/blinux/usb.img

Если у вас выдает ошибку

_x000D_GPT PMBR size mismatch (16777215 != 62333951) will be corrected by w(rite).

То ее можно исправить запустив команду:

_x000D_gdisk /wp-content/uploads/blinux/usb.img

Выполните последовательно команды x, e, v, w

_x000D_x - extra functionality (experts only)_x000D_e - relocate backup data structures to the end of the disk_x000D_v - verify disk_x000D_w - write table to disk and exit

Примерно должно получиться следующее:

_x000D_$ gdisk /wp-content/uploads/blinux/usb.img_x000D_GPT fdisk (gdisk) version 1.0.3_x000D__x000D_Partition table scan:_x000D_ MBR: protective_x000D_ BSD: not present_x000D_ APM: not present_x000D_ GPT: present_x000D__x000D_Found valid GPT with protective MBR; using GPT._x000D__x000D_Command (? for help): x_x000D__x000D_Expert command (? for help): e_x000D_Relocating backup data structures to the end of the disk_x000D__x000D_Expert command (? for help): v_x000D__x000D_No problems found. 45558750 free sectors (21.7 GiB) available in 2_x000D_segments, the largest of which is 45556736 (21.7 GiB) in size._x000D__x000D_Expert command (? for help): w_x000D__x000D_Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING_x000D_PARTITIONS!!_x000D__x000D_Do you want to proceed? (Y/N): Y_x000D_OK; writing new GUID partition table (GPT) to /dev/sdb._x000D_The operation has completed successfully._x000D_

После выполнения этих команд таблица должна быт исправлена. Проверьте ее командой

_x000D_fdisk -l /wp-content/uploads/blinux/usb.img

Затем сделайте resize раздела 2 используя cfdisk

_x000D_cfdisk /wp-content/uploads/blinux/usb.img

Смонтируйте файл

_x000D_losetup -Pf /wp-content/uploads/blinux/usb.img

Сделайте resize ext4

_x000D_e2fsck -y -f /dev/loop0p2_x000D_resize2fs /dev/loop0p2

Также можно проверить целостность boot раздела

_x000D_fsck -fvy /dev/loop0p1_x000D_fsck -fvy /dev/loop0p2

Отмонтируйте loop

_x000D_losetup -d /dev/loop0