Nobody about something

Извлечение данных из образа vmware

Написано 14 августа 2010 в 1:17 - Рубрики: *nix

Нашёл у себя на винте образ vmware. Поставил vmware-player и нашёл там винду и сэйвы от diablo. Терять сейвы ой как не хотелось, потому решил их оттуда забрать, а образ нафиг удалить. (26 гигов занимает). Точнее, там 2 образа на одну виртуальную машину.
Для начала решил скачать по smb, но vmplayer отчего-то не хотел поднимать сеть, а разбираться мне влом было.

Тут я решил провести операцию удаления гланд через анус.

Инструменты:

  • qemu-img В gentoo входит в пакет app-emulation/qemu (точнее в любой из qemu. У меня это app-emulation/qemu-kvm)
  • kpartx В gentoo это пакет sys-fs/multipath-tools
  • Поддержка loop и device-mapper в ядре

Приступаем к операции.
Вот я в диркетории с файлами данной виртуальной машины:

 ~/vmware/test $ ls -l
итого 45155048
-rw-r--r-- 1 tuupic tuupic       61679 Авг 13 20:55 vmware-0.log
-rw-r--r-- 1 tuupic tuupic       31135 Авг 13 21:18 vmware-1.log
-rw-r--r-- 1 tuupic tuupic       75825 Авг 13 20:55 vmware-2.log
-rw-r--r-- 1 tuupic tuupic       27936 Авг 13 21:18 vmware.log
-rw------- 1 tuupic tuupic 18817286144 Авг 13 21:16 Windows XP Professional-0.vmdk
-rw------- 1 tuupic tuupic        8684 Авг 13 20:58 Windows XP Professional.nvram
-rw------- 1 tuupic tuupic  2141782016 Авг 13 21:00 Windows XP Professional-s001.vmdk
-rw------- 1 tuupic tuupic  2141126656 Авг 13 21:02 Windows XP Professional-s002.vmdk
-rw------- 1 tuupic tuupic  2146762752 Авг 13 21:18 Windows XP Professional-s003.vmdk
-rw------- 1 tuupic tuupic  2140012544 Авг 13 20:58 Windows XP Professional-s004.vmdk
-rw------- 1 tuupic tuupic       65536 Авг 13 20:58 Windows XP Professional-s005.vmdk
-rw------- 1 tuupic tuupic         603 Авг 13 20:55 Windows XP Professional.vmdk
-rw------- 1 tuupic tuupic           0 Авг 13 20:58 Windows XP Professional.vmsd
-rwxr-xr-x 1 tuupic tuupic        2088 Авг 13 20:58 Windows XP Professional.vmx
-rw------- 1 tuupic tuupic         278 Авг 13 20:58 Windows XP Professional.vmxf
 ~/vmware/test $

Дисков в данном случае 2. Один из них разбит на файлы по 2 гигабайта
~/vmware/test $ ls Windows\ XP\ Professional-s00*
Windows XP Professional-s001.vmdk Windows XP Professional-s003.vmdk Windows XP Professional-s005.vmdk
Windows XP Professional-s002.vmdk Windows XP Professional-s004.vmdk

другой цельный.
Windows XP Professional-0.vmdk
Какой из них какой, можно было бы понять по размеру, но я не посмотрел размер дисков внутри системы, потому искать стал методом тыка.

Итак, конверчу диск
qemu-img convert -f vmdk -O raw Windows\ XP\ Professional-s00*.vmdk disk.raw
Операция долгая, сходил поел.

Сконвертилось. Теперь нужны привелегии рута, делаю su.
«Смотрю» на файл, и вижу
# kpartx -l disk.raw
loop0p1 : 0 16755732 /dev/loop0 63
home test #

вижу, что там один раздел. Создаю на него ссылку
# kpartx -av disk.raw
add map loop0p1 (252:0): 0 16755732 linear /dev/loop0 63

Монтирую…
mount /dev/mapper/loop0p1 /mnt/test/
…и получаю облом, так как это оказался диск C:
Неудача, отмонтирую диск, отключаю ссылку:
# kpartx -dv disk.raw
del devmap : loop0p1
loop deleted : /dev/loop0
#

Повторяю то же самое ещё раз над вторым диском
qemu-img convert -f vmdk -O raw Windows\ XP\ Professional-0.vmdk disk1.raw

Тут есть было уже нечего, потому тупо ждал
# kpartx -l disk1.raw
loop0p1 : 0 41929587 /dev/loop0 63
# kpartx -av disk1.raw
add map loop0p1 (252:0): 0 41929587 linear /dev/loop0 63
#

Смонтировал через ntfs-3g (простой mount русские имена сожрал, и мне лень было man читать)
# mount.ntfs-3g /dev/mapper/loop0p1 /mnt/test/
The disk contains an unclean file system (0, 0).
The file system wasn't safely closed on Windows. Fixing.
#

И вуаля, я вижу диаблу 🙂

 # ls -l /mnt/test/
итого 71200
drwxrwxrwx 1 root root    24576 Дек  3  2008 bfe
drwxrwxrwx 1 root root    24576 Янв 11  2010 Diablo II LoD  v1.10
-rwxrwxrwx 2 root root 72829472 Ноя  5  2008 directx_mar2008_redist.exe
drwxrwxrwx 1 root root        0 Ноя  5  2008 gracia
drwxrwxrwx 1 root root     4096 Ноя  6  2008 System Volume Information
drwxrwxrwx 1 root root    24576 Ноя 10  2008 Копия Diablo II LoD  v1.10
 # 

Да, всё это можно было сделать гораздо проще, другими методами, но я хотел именно «удалить гланды через анус» и это вполне получилось.

Метки: , ,

Комментирование закрыто.