Развертывание образа qcow2

Образы дисков в формате qcow2 популярны не только для использования с гипервизорами виртуальных машин, но и как средство распространения преднастроенных операционных систем. В последнем случае, зачастую, возникает необходимость развернуть образ в формате qcow2 на том тонкого пула LVM, либо на устройство iSCSI, поддерживающее команду unmap. В обоих случаях рационально требовать не записывать на устройство нулевые области, которые в самом образе диска сохранены с использованием разреженного адресного пространства. В противном случае, том тонкого пула окажется заполнен на 100%, а так же будет затрачено дополнительное время на физическую запись данных. К счастью, утилита распаковки формата qcow2 имеет параметры, позволяющие исключить запись нулевых областей: -n — отключает создание и инициализацию целевого тома, --target-is-zero — интерпретирует целевой том, как состоящий из нулей:
qemu-img convert -f qcow2 -O raw -n --target-is-zero image.qcow2 /dev/system/lvm_thin_volume
При работе с существующими томами тонкого пула LVM или устройствами iSCSI такая команда вероятнее всего будет предворяться вызовом blkdiscard, выполняющим операцию trim (она же unmap, она же discard) для данного устройства. В общем случае, формально, не гарантируется, что после выполнения этой команды чтение целевого устройства будет возвращать нули, однако, в частных случаях (особенно при использовании LVM), такое поведение очевидно детерминировано и может быть заранее проверенно.