Сегодня научимся распаковывать VIB файл. Работать будем в Linux, или, как я, в WSL2 под Windows.
VIB файл — это установочный пакет, используемый VMware vSphere. Он содержит пакет программного обеспечения, который может быть установлен в гипервизоре ESXi.
Зачем распаковывать VIB файл?
Я вижу как минимум два случай, когда это нужно сделать.
Первый случай, когда вы скачали VIB пакет с сомнительного ресурса и хотите посмотреть, что он там вам поставит в гипервизоре.
Второй случай, как у меня, когда вы хотите модифицировать VIB пакет. Естественно, сначала нужно этот пакет распаковать.
Распаковываем VIB файл
Для распаковки будем пользоваться стандартными инструментами Linux. Дополнительно нам понадобится утилита VMware с именем vmtar. Её можно скачать из любого гипервизора ESXi, для которого предназначен VIB пакет. Я взял из /sbin/vmtar гипервизора ESXi 7.0. Добавил с Сборку для системного администратора.
Имеем:
- BCM_bootbank_BCM-vmware-lsa_008.002.016.000-01.vib — VIB пакет, который нужно распаковать.
- vmtar — утилита VMware
Посмотрим что у нас за файл:
file BCM_bootbank_BCM-vmware-lsa_008.002.016.000-01.vib
BCM_bootbank_BCM-vmware-lsa_008.002.016.000-01.vib: current ar archive
А это у нас AR архив.
Распакуем его:
ar x BCM_bootbank_BCM-vmware-lsa_008.002.016.000-01.vib
Получаем три файла:
- lsa — архив с содержимым пакета
- descriptor.xml — XML файл с перечислением всех файлов пакета и дополнительной информацией о пакете.
- sig.pkcs7 — цифровая подпись
Нас интересует файл с архивам, в данном случае он называется lsa. Посмотрим что это:
file lsa
lsa: gzip compressed data, max compression, original size modulo 2^32 80031766
Нам говорят, что это GZIP, однако, это не совсем так. Обычные архиваторы на этом месте спотыкаются и не могут полностью вытащить данные архива.
Для распаковки архива нам понадобится утилита vmtar. В результате получим TAR файл:
./vmtar -v -x lsa -o lsa.tar
Получили файл:
- lsa.tar
Посмотрим что это за файл:
file lsa.tar
lsa.tar: POSIX tar archive (GNU)
А это у нас обычный TAR архив.
Распаковываем его:
tar -xvf lsa.tar
Да, распаковалось прямо в текущую папку. Можно было сделать аккуратнее. В любом случае, мы получили то что хотели.