IMG файл — это побайтовый образ диска. Иногда, полезно создать загрузочного live img файл, чтобы протестировать его в qemu или перенести данный образ на несколько флешек.
Также:
- Видеоинструкция установки Ubuntu через IMG файл и создание USB флешки
- Установка Debian 12 и Ubuntu 22.04 через debootstrap
Создание 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