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