Задача следующая:
  • У вас есть образ раздела (скажем, sda1), но не всего диска (sda). Т.е. без таблицы разделов. Образ сделан с помощью старого доброго dd.
  • Нужно из него создать диск для VirtualBox'а (или другой виртуальной машины, например, VMware).
Решение:
  1. Создаем пока пустой файл myvm.img для будущего образа диска (всего диска, в т.ч. с разделами). Размер файла выбираем исходя из размера образа, но с запасом, чтобы поместилась еще и таблица разделов. Скажем есть образ в 99 Гб, возьмем сильно с запасом и создадим файл под образ диска в 100 Гб:
    dd if=/dev/zero of=myvm.img bs=1G count=0 seek=100
  2. Разметим файл утилитой fdisk (нужно создать раздел и не забыть сохранить изменения командой 'w'):
    fdisk myvm.img
  3. Теперь сделаем полученный образ с разделами доступным в виде устройств в /dev:
    sudo kpartx -a myvm.img
  4. Копируем образ нашего раздела поверх раздела во вновь созданном файле:
    sudo cp sda1.raw /dev/mapper/loop0p1
  5. Можно, чтобы не пропадало место (тот самый "запас"), расширить файловую систему на разделе (учтите, что утилита resize2fs работает только с системами семейства ext{2-4}!):
    sudo resize2fs /dev/mapper/loop0p1
  6. Теперь можно убрать наш файл myvm.img из /dev:
    sudo kpartx -d myvm.img
  7. Получился "сырой" образ диска с таблицей разделов и собственно нашим разделом. Осталось сконвертировать его в формат нужной виртуальной машины. Для VirtualBox:
    VBoxManage convertdd myvm.img myvm.vdi --format VDI
    Для VMware:
    VBoxManage convertdd myvm.img myvm.vmdk --format VMDK
  8. Готово.
 Если на разделе установлена система и необходимо ее загрузить, то можно для начала загрузиться с какого-нибудь Live-образа, подмонтировать раздел и стандартным для этой системы способом восстановить загрузчик.

Ссылки:
  1. Алгоритм создания образа диска из образа раздела в обсуждении на stackexchange.com;
  2. Статья о конвертации 'сырых' образов дисков в формат образов для виртуальных машин (и обратно);
  3. Про восстановление загрузчика grub в треде на askubuntu.com.


 

Copyright © 2007 DamnSmallBlog. Content is licensed under Creative Commons Attribution-Noncommercial.

Design: GeckoandFly and Blogcrowds.