У меня есть изображение человечности VMware на моей машине, которая я хочу перезаписать свой текущий раздел.
Когда я работаю:
sudo qemu-img convert my-image.vmdk -O raw /dev/sda1
Я заканчиваю с ниже ошибки:
qemu-img:/dev/sda1: ошибка при преобразовании сырых данных: Никакое пространство не оставлено на устройстве
Есть ли так или иначе, я могу перезаписать свой существующий раздел HD без ошибки выше?
Файл VMDK является в основном изображением жесткого диска, обернутого в формате, который может распознать VMware виртуальные решения и теперь VirtualBox.
VMware виртуальные жесткие диски ESX с форматом имени "somefilename-flat.vmdk" является в основном прямым представлением байта для байта нормального жесткого диска. Решение 2 как таковое ниже могло использоваться, чтобы считать и смонтировать такой диск.
Для файлов VMDK, хотя, я думаю, что Вы были на корректном образе мыслей с помощью qemu, но я верю, необходимо пойти один этап далее, как продемонстрировано в решении 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/
Так как 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
где бакалавр наук является числом байтов на сектор (найденный в первом шаге), и пропуск является количеством секторов (используемый в первом шаге)