Перейти к содержимому

Как уменьшить размер образа img

  • автор:

Форум русскоязычного сообщества Ubuntu

Страница сгенерирована за 0.078 секунд. Запросов: 23.

  • Сайт
  • Об Ubuntu
  • Скачать Ubuntu
  • Семейство Ubuntu
  • Новости
  • Форум
  • Помощь
  • Правила
  • Документация
  • Пользовательская документация
  • Официальная документация
  • Семейство Ubuntu
  • Материалы для загрузки
  • Совместимость с оборудованием
  • RSS лента
  • Сообщество
  • Наши проекты
  • Местные сообщества
  • Перевод Ubuntu
  • Тестирование
  • RSS лента

© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.

Уменьшение размера образов qemu

Linux в связке с qemu является отличной платформой для виртуализации, в том числе Windows-систем. Ключевой особенностью виртуализации в случае «инородных» систем является использование под эту систему файла-образа или отдельного блочного устройства. И то и другое обычно занимает достаточно много места. Попробуем минимизировать используемое место в этом случае.

Среди поддерживаемых qemu форматов образов есть как обычные бинарные образы (img), так и сжатые и несжатые qcow/qcow2. Последний формат в сжатом варианте показывает очень хорошие результаты по использованию места: его образы занимают мало места и при этом размер «внутреннего» жесткого диска в виртуальной системе может быть очень большим. Использоавать этот формат можно изначально, при создании виртуальной машины с помощью qemu-img, или конвертацией образа другого формата в qcow2

qemu-img convert -O qcow2 -c win10.img win10.qcow2

Сжатие в формате qcow2 используется в режиме «только для чтения», т.е. если что-то из образа переписывается, то перезапись происходит уже в несжатом формате. Получается, что сжатой будет статичная часть системы и данных в образе, которые в зависимости от задачи вируталки могут занимать основную часть данных. Для таких машин это формат будет наиболее подходящим.
Руководство qemu-img также предупреждает, что при использовании сжатия несколько уменьшается производительность. Однако, субъективно разницы между несжатым и сжатым форматом мне заметить не удалось.

При конвертации в qcow2 и сжатии следует заранее позаботиться о «чистоте» образа: занулить всё неиспользуемое на нём пространство. В Руководстве Proxmox подробно описываются способы, которыми это можно сделать. Наиболее короткий — очистить диск с помощью майкросовтовской утилиты sdelete, например:

sdelete -z C:

В последней версии утилиты 2.0 есть баг — она зависает на 100%. В этом случае имеет смысл использовать более старую версию 1.6. Есть также вариант использовать графическую Eraser, но это обычно более длинный путь.

В ходе использования образ понемного увеличивается в размере. После длительного использования образ можно сократить в размере тем же самым способом: занулив свободное места и переконвертацией его в qemu-img:

qemu-img convert -O qcow2 -c win9.qcow2_backup win9.qcow2

Естественно, как и перед очисткой образа, так и его пережатием крайне желательно сделать бэкап.

В результате перечисленных выше нехитрых операций можно уменьшить размер образов на порядок, т.е. в 10 раз и более.

unixforum.org

Здравия!
Имеется у меня образ в виде файла, для прошивки андроида, ext4. Я его преобразовал из sparse в нормальный, смонтировал, отредактировал, отмонтировал. Назад в sparse — а он на 500Мб меньше, понятно, я много чего там выкинул. Так вот, вопрос такой: чем или как можно уменьшить размер нормального образа, например, с 2 до 1.5Гб? gparted файл не видит, только реальные диски, resize2fs, по прочтению man, тоже вроде device требует. Есть способ?

Спасибо сказали:
/dev/random Администратор Сообщения: 5256 ОС: Gentoo

Re: Изменить размер образа раздела диска

Сообщение /dev/random » 17.02.2020 10:52

17.02.2020 10:36
resize2fs, по прочтению man, тоже вроде device требует

Нормально он работает с образами. Причём даже размер файла меняет, а не только размер файловой системы в нём.

Спасибо сказали:
olecya Сообщения: 896 ОС: debian, fedora (i3-wm)

Re: Изменить размер образа раздела диска

Сообщение olecya » 17.02.2020 10:56

Есть утилита с опцией

qemu-img resize

Можно привязать к устройству. Я так понимаю на образе несколько разделов

losetup /dev/loop0 /images/sles11sp1_base.raw kpartx -a /dev/loop0 mount /dev/mapper/loop0p1 /mnt/p1 umount /mnt/p1 losetup -d /dev/loop0

Щас я помотрю в своих заметках я когдато много занималась и запускала
образа linux в чейндж руте на андроиде

Добавлено (10:59):

Вот вариант монтирования

modprobe nbd max_part=63 qemu-nbd -c /dev/nbd0 название_образа.img partprobe /dev/nbd0 sudo fdisk -l /dev/nbd0 mount /dev/nbd0p1 /mnt/qemu

По завершению работы с диском отключаем

sudo umount /mnt/qemu sudo qemu-nbd -d /dev/nbd0
Добавлено (11:02):

Где то был вариант losetup с выводом используемого луп устройства

Добавлено (11:06):
losetup --find --show image

Простой способ сжать образ raspberry pi под microSD меньшего размера

Всем привет, недавно мне понадобилось перенести образ raspberryPi с 32гб microSD на microSD размером 16гб. Для этого на просторах интернета было найдено множество различных решений типа PiShrink с dd, но в итоге был найден, на мой взгляд более простой способ не требующих работы с консолью и каких-то особых навыков.

Для этого достаточно двух простых программ с графическим интерфейсом:

  1. GParted (для уменьшения раздела на microSD)
  2. win32diskimager ( для записи образа с только размеченной области microSD)

Внимание! Прежде чем приступать к уменьшению основного раздела, крайне рекомендую сделать полный образ microSD для избежания потери данных.

Уменьшаем раздел microSD при помощи GParted

  1. подключаем к ПК картридер с нашей microSD;
  2. открываем gparted;
  3. в выпадающем списке, в правом верхнем углу выбираем наш диск;
  4. кликаем правой кнопкой мыши по разделу который необходимо сжать и выбираем пункт меню “resize/move”;
  5. в открывшемся окне перемещаем правый ползунок влево тем самым сдвигая занятое пространство в начало раздела.

Важно сдвинуть занятое пространство в начало раздела, тогда неразмеченная (unallocated) область диска окажется в конце списка разделов и не попадёт в образ. В ином случае размер образа не уменьшится.

GParted список разделов microSD

Нажимаем зелёную галочку, подтверждаем свои намерения и дожидаемся окончания работы GParted по ужиманию раздела диска.

Записываем образ размеченной области microSD при помощи win32diskimager

Устанавливаем приложение, например отсюда.

Следующим шагом создаём образ с размеченной области microSD:

win32diskimager создание образа игнорируя неразмеченную область в конце диска

  1. Открываем win32diskimager;
  2. выбираем адрес и прописываем имя imageFile (например c:/pi_image.img);
  3. выбираем диск;
  4. Ставим галку в чекбокс “Read Only Allocated Partitions”;
  5. Нажимаем Read.

Дожидаемся конца записи образа, если вы проделали всё правильно, в результате должны получить образ размером с размеченную область диска. В моём случае образ получился размером 4.34гб вместо 29.8гб.

В дальнейшем такой образ можно накатить на любой диск равного или большего размера и при необходимости увеличить размер системного раздела через GParted.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *