Извлечение данных из образа vmware
Нашёл у себя на винте образ 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 #
Да, всё это можно было сделать гораздо проще, другими методами, но я хотел именно “удалить гланды через анус” и это вполне получилось.


