1

У меня есть виртуальная машина в EXSI 6.5, и я устанавливаю на нее Ubuntu. Я пишу Bash-файл для запуска команды при запуске, как показано ниже:

#!/bin/bash

# Bash script to dvblast

sleep 10

gnome-terminal --title="foo" -x bash -c \
"printf '\e[8;13;90t'&&dvblast -a 3 -f 12596000 -s 27500000 -v 13 -c Tuner4.cfg -i 1; read line" &

Его запуск DVBLast запускается с первых 10 секунд сна. Этот файл bash работает нормально.

Но когда я экспортирую ovf template из этой виртуальной машины и снова разверну в Esxi и запускаю vm, файл bash не удалось запустить из-за отказа в разрешении. это изображение выходного окна:

выход

Когда я запускаю команду со strace вижу этот журнал:

open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
DVBlast 2.2 (release)
warning: restarting
open("/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 3
open("/usr/lib/x86_64-linux-gnu/gconv/ISO8859-1.so", O_RDONLY|O_CLOEXEC) = 3
debug: using linux-dvb API version 5
open("/dev/dvb/adapter3/frontend0", O_RDWR|O_NONBLOCK) = -1 ENOENT (No such file or directory)
error: opening device /dev/dvb/adapter3/frontend0 failed (No such file or directory)
+++ exited with 1 +++

Если я запускаю терминал и запускаю sudo -s а затем запускаю bash-файл, то он работает нормально.

Кто-нибудь знает, как я решаю эту проблему? заранее спасибо

1 ответ1

1

Как указал Симлев, ошибка на самом деле связана с проблемой доступа к устройству DVB. При экспорте OVF и повторном импорте на другом хосте в конфигурации виртуальной машины может отсутствовать DVB-тюнер или он может просто не существовать на другом компьютере. Проверьте конфигурацию скопированной виртуальной машины и убедитесь, что устройство DVB пропущено точно так же, как в исходной виртуальной машине.

Затем войдите в клонированную виртуальную машину и убедитесь, что правила udev не зарезервировали имя устройства DVB от первого esxi, или тюнер на новой виртуальной машине имеет другой адрес устройства, например /dev/dvb/adapter4/frontend0 вместо /dev/dvb/adapter3/frontend0 , или, возможно, внешний интерфейс должен быть изменен (например, не тот же INPUT на тюнере, или другое оборудование / модель оборудования)

Я полагаю, что это проблема адреса устройства, а не всего, что связано с самим BASH.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .