Created attachment 18493 [details] Ошибка при попытке импорта pve-storage 8.3.6-alt1 Шаги воспроизведения: 1) настроить файловое хранилище с допустимым типом содержимого import; 2) загрузить файл OVA в хранилище: выбрать хранилище, перейти на вкладку Импорт, нажать кнопку Отправить, выбрать файл и нажать кнопку Отправить. 3) импортировать ВМ: выбрать файл OVA в хранилище, нажать кнопку Импорт Ожидаемый результат: Открывается окно импорта, где на вкладке "Дополнительно" отображаются диски импортируемой ВМ Получаемый результат: Ошибка (см.скриншот): could not get absolute path of WinDev2407Eval-disk001.vmdk: No such file or directory (500) (или, в некоторых случаях, диски просто не отображаются, как-будто их нет) Если в хранилище отдельно загрузить файл vmdk, то окно открывается и ВМ успешно импортируется. На первый взгляд кажется, что файл ovf из ova извлекается (распаковывается), а файлы vmdk - нет: судя по /usr/share/perl5/PVE/GuestImport/OVF.pm файл vmdk ожидается в каталоге /mnt/nfs-vol/import (для хранилища NFS).
Created attachment 18494 [details] Успешный импорт, при наличии файла vmdk
Столкнулся с этой же проблемой при проверке документации. Для решения данной проблемы помогло следующее изменение: --- a/usr/share/perl5/PVE/GuestImport/OVF.pm +++ b/usr/share/perl5/PVE/GuestImport/OVF.pm @@ -363,8 +363,14 @@ ovf:Item[rasd:InstanceID='%s']/rasd:ResourceType", $controller_id, # and die if the diskimage is not somewhere under the $ovf path my $ovf_dir = realpath(dirname(File::Spec->rel2abs($ovf))) or die "could not get absolute path of $ovf: $!\n"; - my $backing_file_path = realpath(join('/', $ovf_dir, $filepath)) - or die "could not get absolute path of $filepath: $!\n"; + my $backing_file_path = $ovf; + if ($isOva) { + $backing_file_path = $ovf; + } + else { + $backing_file_path = realpath(join('/', $ovf_dir, $filepath)) + or die "could not get absolute path of $filepath: $!\n"; + } if ($backing_file_path !~ /^\Q${ovf_dir}\E/) { die "error parsing $filepath, are you using a symlink ?\n"; } С таким изменением работает импорт из .ova файла без предварительной распаковки вручную, так и продолжает работать импорт из .ovf файлов. Поведение будет соответствовать нашей документации (https://docs.altlinux.org/ru-RU/alt-server-v/11.1/html/alt-server-v/ch33s03s02.html).
(Ответ для Vladislav Glinkin на комментарий #2) > Столкнулся с этой же проблемой при проверке документации. Версия: pve-storage-9.0.13-alt1
(Ответ для Vladislav Glinkin на комментарий #2) > + my $backing_file_path = $ovf; > + if ($isOva) { > + $backing_file_path = $ovf; > + } > ... Здесь опечатался, в первой строке достаточно просто объявить переменную backing_file_path: my $backing_file_path;
При обновлении pve в p11 из task, поведение не поменялось. Все также не дает произвести импорт через веб-интерфейс файла формата *.ova. https://packages.altlinux.org/ru/tasks/405588/
Дополнительно нельзя выполнить импорт файла формата ovf через веб-интерфейс PVE. Отображается ошибка "Неверное расширение файла". Импорт возможно произвести только через командную строку. https://docs.altlinux.org/ru-RU/alt-server-v/11.1/html/alt-server-v/ch33s03s03.html
pve-storage-9.1.0-alt2 -> sisyphus: Tue Feb 10 2026 Sergey Konev <darisishe@altlinux> 9.1.0-alt2 - Use OVA file itself as path to diskimage (Closes: 54360)