Невозможно резервирование содержание виртуального жесткого диска к моему физическому диску

У меня есть изображение человечности VMware на моей машине, которая я хочу перезаписать свой текущий раздел.

Когда я работаю:

sudo qemu-img convert my-image.vmdk -O raw /dev/sda1 

Я заканчиваю с ниже ошибки:

qemu-img:/dev/sda1: ошибка при преобразовании сырых данных: Никакое пространство не оставлено на устройстве

Есть ли так или иначе, я могу перезаписать свой существующий раздел HD без ошибки выше?

2
задан 29 June 2011 в 02:45

1 ответ

Файл VMDK является в основном изображением жесткого диска, обернутого в формате, который может распознать VMware виртуальные решения и теперь VirtualBox.

VMware виртуальные жесткие диски ESX с форматом имени "somefilename-flat.vmdk" является в основном прямым представлением байта для байта нормального жесткого диска. Решение 2 как таковое ниже могло использоваться, чтобы считать и смонтировать такой диск.

Для файлов VMDK, хотя, я думаю, что Вы были на корректном образе мыслей с помощью qemu, но я верю, необходимо пойти один этап далее, как продемонстрировано в решении 1.

решение 1

Создайте необработанную версию образа своего vmdk и отобразите разделы в vmdk, использующем kpartx

qemu-img convert -O raw somefilename.vmdk rawimagefilename.raw
sudo apt-get install kpartx
sudo kpartx -av rawimagefilename.raw

Это произведет отображения цикла (/dev/mapper/loopXpY) на раздел в vmdk, например.

loop0p1 : 0 15952482 /dev/loop0 63
loop0p2 : 0 819315 /dev/loop0 15952545
loop0p5 : 0 819252 loop0p1 63

Затем создайте папку в / медиа, где мы смонтируем один из разделов, представленных показанным отображением цикла

sudo mkdir /media/partitionimage

Смонтируйте раздел, который должен быть в конечном счете восстановлен в/dev/sda1

sudo mount /dev/mapper/loop0p2 /media/partitionimage -o loop,ro

Необходимо смочь теперь просмотреть раздел/media/partitionimage использование наутилуса

Скопируйте раздел цикла с помощью tar:

cd /media/partitionimage
sudo tar cvpzf /home/somewhere/backup.tgz

Необходимо действительно загрузиться с живого CD, чтобы гарантировать, что/dev/sda1 не используется.

Вы восстановили бы резервное копирование с чем-то как

sudo mount /dev/sda1 /media/backup
sudo tar xvpfz /home/somewhere/backup.tgz -C /media/backup/

решение 2

Так как xxx-flat.vmdk является действительно просто жестким диском, скрытым, можно смонтировать и проверить содержание следующим образом:

sudo losetup /dev/loop0 <full path to the xxx-flat.vmdk file>
sudo losetup -o 32256 /dev/loop1 /dev/loop0
sudo mkdir /media/diskimage
sudo mount /dev/loop1 /media/diskimage
fdisk -l /dev/loop0

где 32256 смещение, вычисленное путем умножения размера сектора (чаще всего 63 [посмотрите здесь для получения дополнительной информации]) с размером сектора VMDK (предполагаемый быть 512 байтов)

Если fdisk завершается успешно затем, можно продолжить. Необходимо смочь просмотреть vmdk файл с помощью Наутилуса и просмотрев к/media/diskimage.

копирование содержания vmdk к жесткому диску

Первая начальная загрузка от живого диска

затем скопируйте содержание VMDK прямо к Вашему разделу

sudo dd if=<path to vmdk file> of=/dev/sda1 bs=512 skip=63

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

источник

2
ответ дан 2 December 2019 в 04:28

Другие вопросы по тегам:

Похожие вопросы: