Назад | Перейти на главную страницу

qcow2 image: блок 69 счетчика ошибок ERROR находится вне образа

У меня есть этот образ backup.qcow2, который раньше отлично работал на моей виртуальной машине kvm / qemu.

Когда я подключаю его к другой виртуальной машине, Windows распознает диск, но не может прочитать разделы. Диск появится в начальном состоянии в управлении дисками.

Формат файла - qcow2 Версия 2:

# qemu-img info backup.qcow2
 file format: qcow2
 virtual size: 246G (263704281088 bytes)
 disk size: 137G
 cluster_size: 65536
 Format specific information:
    compat: 0.10
    refcount bits: 16

Обратите внимание на формат совместимость: 0,10. Я не уверен, имеет ли это значение в данном случае.

Я запускаю другие изображения, которые работают нормально, но имеют параметр compat: 1.1, который является версией 3 qcow2.

Часть конфигурации vm на диске:

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  <source file='/opt/libvirt/backup.qcow2'/>
  <target dev='vdc' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</disk>

Hexeditor на этом изображении показывает заголовок qcow2, видны некоторые маркеры NTFS и соответствующие пользовательские данные, поэтому я предполагаю, что изображение имеет действительные данные.

Просмотр изображения говорит мне:

#qemu-img check backup.qcow2
**ERROR refcount block 69 is outside image**
Leaked cluster 3 refcount=1 reference=0
...
1 errors were found on the image.
Data may be corrupted, or further writes to the image may corrupt it.

1966018 leaked clusters were found on the image.
This means waste of disk space, but no harm to data.
Image end offset: 147866845184

и

#virt-rescue --ro -a backup.qcow2
...
><rescue> fdisk -l /dev/sda
Disk /dev/sda: 245.6 GiB, 263704281088 bytes, 515047424 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

><rescue> gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.4

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Я не уверен в гостевом разделении, но предполагаю, что это была файловая система GPT и NTFS.

Я преобразовал изображение в необработанный формат, но оно заканчивается за одну секунду, и я вижу только 00 байтов.

qemu-img convert -f qcow2 -O raw backup.qcow2 backup.raw

Как мне подойти к этому делу? Это может быть просто неправильная конфигурация хоста vm.

Или мне сначала нужна действующая таблица разделов, прежде чем я смогу получить доступ к каким-либо данным. Как мне это восстановить?

Хост-система: Linux (Fedora 28), диспетчер виртуальных машин, гостевая система: Windows 7, Windows 2016

Обновить

# dnf history info 92
Packages Altered:
Upgraded ethtool-2:4.17-1.fc28.x86_64                 @updates
Upgrade          2:5.0-1.fc28.x86_64                  @updates
Upgraded fuse-common-3.4.2-2.fc28.x86_64              @updates
Upgrade              3.4.2-6.fc28.x86_64              @updates
Erase    kernel-4.20.16-100.fc28.x86_64               @updates
Install  kernel-5.0.16-100.fc28.x86_64                @updates
Erase    kernel-core-4.20.16-100.fc28.x86_64          @updates
Install  kernel-core-5.0.16-100.fc28.x86_64           @updates
Upgraded kernel-headers-5.0.9-100.fc28.x86_64         @updates
Upgrade                 5.0.16-100.fc28.x86_64        @updates
Erase    kernel-modules-4.20.16-100.fc28.x86_64       @updates
Install  kernel-modules-5.0.16-100.fc28.x86_64        @updates
Erase    kernel-modules-extra-4.20.16-100.fc28.x86_64 @updates
Install  kernel-modules-extra-5.0.16-100.fc28.x86_64  @updates
Upgraded libqb-1.0.3-4.fc28.x86_64                    @fedora
Upgrade        1.0.5-1.fc28.x86_64                    @updates
Upgraded libxcrypt-4.4.4-2.fc28.x86_64                @updates
Upgrade            4.4.6-1.fc28.x86_64                @updates
Upgraded libxcrypt-devel-4.4.4-2.fc28.x86_64          @updates
Upgrade                  4.4.6-1.fc28.x86_64          @updates
Upgraded libzstd-1.3.8-1.fc28.x86_64                  @updates
Upgrade          1.4.0-1.fc28.x86_64                  @updates
Upgraded mediawriter-4.1.2-1.fc28.x86_64              @updates
Upgrade              4.1.4-1.fc28.x86_64              @updates
Upgraded microcode_ctl-2:2.1-26.fc28.x86_64           @updates
Upgrade                2:2.1-29.fc28.x86_64           @updates

Я подозреваю следующее:

  • размер (в первом выводе отображается 16 проверок другого узла, который используется по умолчанию для этой машины)

может быть b (8 бит), h (16 бит), w (32 бит) или g (64 бит). В x86 можно указать h или w с форматом i, чтобы выбрать размер инструкции кода 16 или 32 бит соответственно.

  • compat (могут быть обе версии разные)

    Определяет версию qcow2 для использования. compat = 0.10 использует традиционный формат изображения, который может быть прочитан любым QEMU, начиная с 0.10. compat = 1.1 включает расширения формата изображения, которые понимают только QEMU 1.1 и новее (это значение по умолчанию). Среди прочего, сюда входят нулевые кластеры, которые обеспечивают эффективное копирование при чтении для разреженных изображений.

попробуйте сделать источник и назначение идентичными.