Richard W.M. Jones в своем блоге опубликовал интересный пост
(http://rwmj.wordpress.com/2010/01/06/examine-vmware-esx-with-libguestfs/) о
работе при помощи утилит libguestfs с образами VMware ESX4. Немного дополнив,
напишу, в чем суть.
Во-первых нам понадобятся пакеты fuse-sshfs и guestfish. Первый позволяет
монтировать при помощи FUSE удаленную файловую систему по SSH FTP, а второй
установит в систему интерактивную командную оболочку, из которой можно получать
доступ к образам дисков виртуальных машин, в том числе и vmdk. Естественно, в
системе должны присутствовать стандартные компоненты виртуализации Fedora, в
частности, работающий демон libvirtd.
Для начала проверяем, какие присутствуют на хосте ESX виртуальные машины:
$ virsh -c esx://192.168.1.12?no_verify=1 list --all
Enter username for 192.168.1.12 [root]:
Enter root password for 192.168.1.12:
ID Имя Статус
----------------------------------
208 www выполнение
224 mail выполнение
- 2RHEL5_DS отключить
- 2W2003_DC отключить
- RHEL5_IPA отключить
- RHEL5_Satellite53 отключить
- RHEL5_Server1 отключить
- RHEL5_Station отключить
- RHEL5_Station2 отключить
- RHEL5_Zimbra отключить
Далее смонтируем через FUSE соответствующую директорию файловой системы vmfs:
$ mkdir esx
$ sshfs root@192.168.1.12:/vmfs/volumes esx
root@192.168.1.12's password:
$ cd esx/
$ ls
4ac343f6-500e2828-d805-0022640793d2 LocalStorage1
Естественно, мы ничего нового по сравнению с тем, что нам покажет vCenter
client, не увидели. Далее переходим в директорию с нужной нам виртуальной машиной:
$ cd LocalStorage1/RHEL5_IPA/
$ ls
RHEL5_IPA-flat.vmdk RHEL5_IPA.vmdk RHEL5_IPA.vmx vmware.log
RHEL5_IPA.nvram RHEL5_IPA.vmsd RHEL5_IPA.vmxf
При помощи новой утилиты virt-list-filesystems (в версии libguestfs репозитория
Fedora 12 пока ее нет, зато есть в Rawhide) смотрим какие разделы доступны
внутри образа:
$ virt-list-filesystems -al RHEL5_IPA-flat.vmdk
/dev/sda1 ext3
/dev/vol0/home ext3
/dev/vol0/root ext3
/dev/sda3 swap
И, наконец, запускаем интерактивную командную оболочку:
$ guestfish --ro -a RHEL5_IPA-flat.vmdk -m /dev/vol0/root
Welcome to guestfish, the libguestfs filesystem interactive shell for
editing virtual machine filesystems.
Type: 'help' for help with commands
'quit' to quit the shell
> ll /
total 192
drwxr-xr-x. 22 root root 4096 Oct 24 07:47 .
dr-xr-xr-x 29 root root 0 Jan 8 12:59 ..
drwxr-xr-x. 2 root root 4096 Oct 7 15:07 bin
drwxr-xr-x. 2 root root 4096 Oct 7 13:45 boot
drwxr-xr-x. 4 root root 4096 Oct 7 13:45 dev
drwxr-xr-x. 93 root root 12288 Oct 24 07:47 etc
drwxr-xr-x. 2 root root 4096 Oct 7 13:45 home
....
Ну, а дальше man guestfish и help для списка команд оболочки. Для виртуальных
машин с включенным SELinux крайне желательно использовать ключ --selinux, иначе
при попытке записи файлов вы можете создать при монтировании образа r/w файлы
без меток SELinux.
|